Open pmeier opened 2 months ago
I also noticed that currently, it is essential to build ragna-base
before ragna
& that's just because so that pip can locate ragna-base
dependency.
Would we want to do the same on the CI workflow as well? (However more experimentation is yet to be done)
I did some workaround on a branch on my fork with this one as the base. And also opened a PR on the fork to run workflow.
You can also download & test build artifacts from here:
Currently, one cannot install ragna-dist
directly without installing ragna-base-dist
I think the failure here can be used as a breaking point which should prevent us from going ahead to publish the meta-package until & unless pip has the access to the dependent ragna-base
version.
However I noticed one thing that the version that is being checked in
setup.py
looks locally something like0.3.0.dev31+g7743725.d20240704
& say we've publishedragna-base==0.3.0
on pip. Would it still be going to give error sayingERROR: Could not find a version that satisfies the requirement ragna==0.3.0.dev31+g7743725.d20240704
?
This has nothing to do with ragna-base
being published. If you want to install ragna
locally, and there is really no need for it, you'll first have to install ragna-base
. For this to work, both packages have to be build on the same commit.
I also noticed that currently, it is essential to build
ragna-base
beforeragna
& that's just because so that pip can locateragna-base
dependency.Would we want to do the same on the CI workflow as well? (However more experimentation is yet to be done)
We'll never install ragna
in CI other than in one dedicated workflow that makes sure the wheel we build is correct.
I think the failure here can be used as a breaking point
This is just a failing docker build, because I haven't updated the Dockerfile yet. Let me do that today.
which should prevent us from going ahead to publish the meta-package until & unless pip has the access to the dependent
ragna-base
version.
Yes, of course. We'll only ever publish them together. The first release for both of them will be v0.3.0 assuming we can get this done by then.
This has nothing to do with
ragna-base
being published. If you want to installragna
locally, and there is really no need for it, you'll first have to installragna-base
. For this to work, both packages have to be build on the same commit.
Sorry to ask again, I just want to confirm that when releasing & publishing wheels, For example v0.3.0, ragna would have ragna-base==0.3.0
as a dependency instead of something like ragna==0.3.0.dev31+g7743725.d20240704
as this extra version identifier string makes it hard for pip
or conda
to identify the package.
We'll never install ragna in CI other than in one dedicated workflow that makes sure the wheel we build is correct.
Right, that makes sense. But just to make a note again that installation of wheels will only pass either if ragna-base is already installed in the environment or that specific version of ragna-base could be found on Pypi. It's not an issue but a checkpoint type of a thing.
This is just a failing docker build, because I haven't updated the Dockerfile yet. Let me do that today.
😬 I reffered to the another linked failure here on my fork, this is the one I refer to as checkpoint.
Sorry to ask again, I just want to confirm that when releasing & publishing wheels, For example v0.3.0, ragna would have
ragna-base==0.3.0
as a dependency instead of something likeragna==0.3.0.dev31+g7743725.d20240704
as this extra version identifier string makes it hard forpip
orconda
to identify the package.
I see where the confusion is coming from now. We are using setuptools_scm
as versioning tool.
It looks at the current state of git and produces a version number from it. So your string ragna==0.3.0.dev31+g7743725.d20240704
translates to
0.3.0
: estimated next release.dev31
: 31 commits since the last release+g
: git used as SCM7743725
: first 7 characters of the commit hash.d
: project was in a dirty state when it was built / installed, i.e. there were non-commited changes20240704
: project was built / installed on 4th of July, 2024You can check the version it produces with python -m setuptools_scm
. If you commit everything in your local copy, the .d...
part will disappear. And finally, if you add a git tag, e.g. git tag v1.2.3
, you'll see that the output is 1.2.3
(make sure to delete the tag again with git tag -d v1.2.3
to avoid future clashes).
Long story short: since we'll add a git tag before each release, all the extra version information that we have during development will be gone.
But just to make a note again that installation of wheels will only pass either if ragna-base is already installed in the environment or that specific version of ragna-base could be found on Pypi.
I'm aware, but again this is not an issue. For development, we'll never install ragna
and for published packages, the corresponding ragna-base
will be available.
It's not an issue but a checkpoint type of a thing.
I don't understand what you mean by "checkpoint".
Long story short: since we'll add a git tag before each release, all the extra version information that we have during development will be gone.
That makes sense, thanks a lot on confirming this.
I don't understand what you mean by "checkpoint".
I mean just a checkpoint to see corresponding ragna-base
availability. Please see this error.
This looks promising, Please do let me know if I can assist you with anything related 🚀
I don't know why I explicitly need to set
--sdist --wheel
for the meta-package build. If I don't, the build errors. This seems to be a bug in thebuild
package. Will look into it.
The failure means that the wheel cannot be build by the sdist, i.e. the sdist is broken. This needs to be fixed before moving forward.
@arjxn-py If you are still eager to help with this, could you check why we cannot build a wheel from the sdist on this branch, i.e. find out what is broken with the sdist? From the error we get when running python -m build --output-dir ./dist ./meta-package
is seems the pyproject.toml
file is missing. We might just need to add a MANIFEST.in
file and link the pyproject.toml
there.
This is an alternative to #405. With this we have a new folder
meta-package
that contains apyproject.toml
and asetup.py
:pyproject.toml
is minimal version of the one we have in our project root. We should have a CI job that makes sure both are in sync.setup.py
does nothing but injects the optional dependencies andragna_base
as requirements for the meta package.Here is how you do a development install
To release you can do
I don't know why I explicitly need to set
--sdist --wheel
for the meta-package build. If I don't, the build errors. This seems to be a bug in thebuild
package. Will look into it.