lab-cosmo / sphericart

Multi-language library for the calculation of spherical harmonics in Cartesian coordinates
https://sphericart.readthedocs.io/en/latest/
MIT License
70 stars 12 forks source link

Register Julia Package #86

Open cortner opened 10 months ago

cortner commented 10 months ago

To register the Julia package with the General Registry one needs to

cortner commented 8 months ago

@Luthaf @ceriottm -- I'd like to finally register the Julia package in the Julia registry. Can one of you please setup the registrator bot? If you prefer to not manage any part of the Julia implementation, then we should consider moving this implementation out into a separate repository that could still be linked from your repo. Let me know what you prefer.

ceriottm commented 8 months ago

Hi @cortner we should definitely do this from the repo. Sorry if this lagged behind, we were trying to also get a CUDA+JAX version up and running. Perhaps we could do this at the same time as we release the version 0.4.0 of the Python package. Actually, do you think it'd make sense to keep the two packages in sync version-wise? I think it'd be nice if moving forward we tried as far as possible to share some material (even if just the boilerplate documentation stuff) between Julia and python.

cortner commented 8 months ago

I dont see a rationale for delaying. In Julia you Register new versions basically everyone you merge a PR. I'm relying on that mechanism and right now I can't tag updates in other packages because they depend on have sphericart registered.

ceriottm commented 8 months ago

OK. @luthaf will look into it!

Luthaf commented 8 months ago

The registrator bot should be installed! I'm not sure what syntax to use with it to register a package in a sub-folder though; but the online page in https://juliahub.com/ui/Registrator supports it.

cortner commented 8 months ago

Thank you - I will give it a try. If it is not possible for me to trigger it I'll let you know. Worst case I make a manual PR to General.

cortner commented 8 months ago

Unless you have a different idea I will register as 0.0.3 the reason being that there is a possible future thread-safety issue in how I manage memory. We are looking into changing this and once we've settled I would then go to 0.1.x

ceriottm commented 8 months ago

Good for me. Moving forward I think we should try to harmonize a bit the APIs. I like a lot that we are converging on a central place to develop this kind of low-level libraries across platforms (and very grateful you decided to contribute to this repo rather than making a separate one) but I think we are not making the most of it if we don't try to share some of the boilerplate stuff to lower maintenance costs.

cortner commented 8 months ago

That's fine of course and another reason to not yet tag 0.1

cortner commented 8 months ago

@JuliaRegistrator register subdir=julia

JuliaRegistrator commented 8 months ago

Error while trying to register: Register Failed @cortner, it looks like you are not a publicly listed member/owner in the parent organization (lab-cosmo). If you are a member/owner, you will need to change your membership to public. See GitHub Help

cortner commented 8 months ago

@ceriottm / @Luthaf - so this is what I was afraid of. If I can't tag new versions then I'm not sure it is practical to keep the package here. I have to be able to make quick bugfixes, so I'll need somebody to review & merge PRs rapidly, but also I have to be able to manage the Julia package as I need to. So there are three options:

You need to think about what you want. As a general rule, I think if you want to have code shared broadly you need to open up participation. As a matter of principle I normally do not contribute code to repos owned by other research groups. This was an exception and given the brain-space overhead this is causing me I'm now regretting it a bit.

I wonder whether option 3 will be the most practical for everybody. I can still commit to maintaining compatibility, keeping documentation in your repo, etc.

Just let me know what you think - I certainly don't have any agenda here.

ceriottm commented 8 months ago

Made you a member. I don't see any issue with that, nor to give you write or maintainer permissions to this repo. Usually when projects grow into something substantial I like to spin then into a separate org, but I think we're fat from that here

cortner commented 8 months ago

ok thank you, that will certainly make life easier. I just didn't want to presume anything. Also agreed about not having to "spin it out" quite yet.

cortner commented 8 months ago

@JuliaRegistrator register subdir=julia

JuliaRegistrator commented 8 months ago

Error while trying to register: Register Failed @cortner, it looks like you are not a publicly listed member/owner in the parent organization (lab-cosmo). If you are a member/owner, you will need to change your membership to public. See GitHub Help

cortner commented 8 months ago

@JuliaRegistrator register subdir=julia

JuliaRegistrator commented 8 months ago

Registration pull request created: JuliaRegistries/General/98788

Tip: Release Notes

Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text "Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the release that TagBot creates. i.e.

@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.

Tagging

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a julia-v0.0.3 -m "<description of version>" 451b051ab8be7f8b38140d54f6f9ddc1f3b36dae
git push origin julia-v0.0.3

Also, note the warning: This looks like a new registration that registers version 0.0.3. Ideally, you should register an initial release with 0.0.1, 0.1.0 or 1.0.0 version numbers This can be safely ignored. However, if you want to fix this you can do so. Call register() again after making the fix. This will update the Pull request.

cortner commented 8 months ago

@ceriottm -- sorry to ping you again Friday evening.

nor to give you write or maintainer permissions to this repo

There are a few things I need to fix that will possibly require a succession of merged commits. If I can get push access then I can do this relatively quickly.

ceriottm commented 8 months ago

Done, you're added with write access, you def should have it if you keep looking after the Julia part, no questions. I think it'd be still good to avoid direct commits to master, but I am not sure of what you exactly need to do and you probably are more git-savy than I ^_^

cortner commented 8 months ago

thank you - I'll try to do the registration on a branch. Let's see how this goes.

cortner commented 8 months ago

@JuliaRegistrator register subdir=julia branch=co/jlreg

JuliaRegistrator commented 8 months ago

Registration pull request updated: JuliaRegistries/General/98788

Tip: Release Notes

Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text "Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the release that TagBot creates. i.e.

@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.

Tagging

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a julia-v0.0.3 -m "<description of version>" 25b7e05507add26bc262c87e7ada004183a862b1
git push origin julia-v0.0.3

Also, note the warning: This looks like a new registration that registers version 0.0.3. Ideally, you should register an initial release with 0.0.1, 0.1.0 or 1.0.0 version numbers This can be safely ignored. However, if you want to fix this you can do so. Call register() again after making the fix. This will update the Pull request.

cortner commented 8 months ago

looks like this is finally happening. The julia version will be registered after a standard waiting period of 3 days. (because it is a new package) I will now merge the registration branch into main.

cortner commented 8 months ago

Just for information to avoid confusion: by tagging the registered Julia version I created a release (I was unaware this would happen). I deleted this release again. Apologies for the noise.

cortner commented 4 months ago

I will keep this open and use it to register future versions of the Julia package.

cortner commented 4 months ago

@JuliaRegistrator register subdir=julia branch=julia

JuliaRegistrator commented 4 months ago

Registration pull request created: JuliaRegistries/General/107465

Tip: Release Notes

Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text "Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the release that TagBot creates. i.e.

@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.

Tagging

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a julia-v0.1.0 -m "<description of version>" 222bfda0e4935fd77db7e62d79799a10023dd580
git push origin julia-v0.1.0
cortner commented 3 months ago

@JuliaRegistrator register subdir=julia branch=julia

JuliaRegistrator commented 3 months ago

Registration pull request created: JuliaRegistries/General/108509

Tip: Release Notes

Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text "Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the release that TagBot creates. i.e.

@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.

Tagging

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a julia-v0.1.1 -m "<description of version>" f551cdb018f039d0dbad9b7432524647a59fd35f
git push origin julia-v0.1.1
cortner commented 3 months ago

@Luthaf -- I can no longer autoregister new package versions. The auto merging guidelines require the following:

Would you be happy to rename one of the license files to LICENSE.md?

Not being able to run CI on just the Julia code makes developing in this repo a huge pain for me. Not merging regularly into main isn't great either. Not being able to automerge new versions kills it.

We may need to revisit this. I wonder if it is simpler for everybody if I move the code into a separate repo afterall, but keep Julia in the docs, link to the Julia repo, maybe even add a CI task to your repo that checks compatibility. (which we really shoudl do anyhow...)

cortner commented 3 months ago

@JuliaRegistrator register subdir=julia branch=julia

JuliaRegistrator commented 3 months ago

Registration pull request updated: JuliaRegistries/General/108509

Tip: Release Notes

Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text "Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the release that TagBot creates. i.e.

@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.

Tagging

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a julia-v0.1.1 -m "<description of version>" 34458c2140e6e3182c8903f190f3920746bff2f5
git push origin julia-v0.1.1
cortner commented 3 months ago

@JuliaRegistrator register subdir=julia branch=julia

JuliaRegistrator commented 3 months ago

Registration pull request updated: JuliaRegistries/General/108509

Tip: Release Notes

Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text "Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the release that TagBot creates. i.e.

@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.

Tagging

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a julia-v0.1.1 -m "<description of version>" 30634f00ef269824379e931119788f68163f8b05
git push origin julia-v0.1.1
cortner commented 3 months ago

@Luthaf and @ceriottm -- I can no longer autoregister new package versions. The auto merging guidelines require the following:

Would you be happy to rename one of the license files to LICENSE.md?

Not being able to run CI on just the Julia code makes developing in this repo a huge pain. Not merging regularly into main isn't great either. Not being able to automerge new versions kills it.

We may need to revisit this. I wonder if it is simpler for everybody if I move the code into a separate repo afterall, but keep Julia in the docs, link to the Julia repo, maybe even add a CI task to your repo that checks compatibility. (which we really shoudl do anyhow...)

ceriottm commented 3 months ago

Hi @cortner I def see no issue renaming the license file - actually it looks like there is already a file called LICENSE.md. What would make it easier for you to work here? I see no issue for you to merge often to main, and if you don't have already admin access to the repo you def should have.

cortner commented 3 months ago

I don't think I should merge into main since I am insufficiently aware of what is happening in the other languages. If maintainers (@Luthaf etc) are willing to commit merging the julia branch regularly into main fairly regularly, then that should simplify things a bit. The LICENCE.md is the one I created. I hadn't noticed this was already merged into main and I'm now confused why the registration didn't go through. Back to me to figure this out.

cortner commented 3 months ago

@JuliaRegistrator register subdir=julia branch=julia

JuliaRegistrator commented 3 months ago

Registration pull request updated: JuliaRegistries/General/108509

Tip: Release Notes

Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text "Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the release that TagBot creates. i.e.

@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.

Tagging

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a julia-v0.1.1 -m "<description of version>" 30634f00ef269824379e931119788f68163f8b05
git push origin julia-v0.1.1
cortner commented 3 months ago

@JuliaRegistrator register subdir=julia branch=julia

JuliaRegistrator commented 3 months ago

Registration pull request updated: JuliaRegistries/General/108509

Tip: Release Notes

Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text "Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the release that TagBot creates. i.e.

@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.

Tagging

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a julia-v0.1.1 -m "<description of version>" 309b614189c096f035707c21f0425f5ef915599b
git push origin julia-v0.1.1
cortner commented 3 months ago

@ceriottm -- Thanks. I've solved the current problem. I'll try over the course of the summer to solve the remaining ones as well.

Luthaf commented 3 months ago

If maintainers (@Luthaf etc) are willing to commit merging the julia branch regularly into main fairly regularly, then that should simplify things a bit.

I'm happy to merge PR from the julia branch to the main branch! My main concern there is making sure CI keeps working, hence the delay when merging the previous one. But in general if the only changes concern the julia code, I can try to merge PR quickly!