-
Notifications
You must be signed in to change notification settings - Fork 112
doc: add PyScadeOne to official PyAnsys libraries #842
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
It looks like the dependency conflict with PyMechanical is raised by CI/CD. @jorgepiloto, do you have any advice on how to solve this kind of thing? Do we need to publish an update to PyScadeOne, or are there ways to fix the build in the PyAnsys project? |
Hi @ansfcouadau @jorgepiloto ... I had a look at the PyScadeOne dependencies and I have to raise my concerns about something: All your dependencies seem to be pinned down to specific versions, which makes it very difficult that your library is compatible with other libraries. Would it be possible to make them more flexible? |
@RobPasMue thanks for the feedback. We haven't tested for conflicting dependencies as part of developing our first version of PyScadeOne. Would you be able to add @xfornari to the contributors of this repo, so that we can loop him into this discussion? |
Hi @ansfcouadau, To expand on @RobPasMue's comment, let me describe the intended dependency versioning scheme in a bit more detail [1]: In general, PyAnsys libraries should keep their dependency version ranges open. In your case, that might mean changing the dependencies in
Only versions which are known not to be compatible should be excluded. The reason for this is simple: since there is a large number of PyAnsys libraries, coordinating on a specific version of dependencies would be an almost-impossible coordination task. Additionally, users may want to install third-party packages into their Python environment which we do not control. Since version pinning is important for reproducibility of builds, it should be done in the following ways:
Anyone can comment here! The contributors permission is only needed for pushing new branches / code. [1] I tried finding if this is documented somewhere, but couldn't find it. @RobPasMue did I just miss it, or do we need to add documentation for this? |
Thanks a lot for your detailed explanation @greschd! And yeah, we might not have documented this anywhere yet... and assumed it as common knowledge (which we shouldn't). I will put up a backlog issue on the dev guide :) |
Hi there, the problem is the following. Following Ansys rules:
Our management asked for a strict development under ADO to follow the development in the same way as other components of Scade One, with GitHub repo containing snapshots of releases. So the 2nd bullet applies, with OSS declaration. Nevertheless, we use the https://github.com/ansys/ansys-tools-repo-sync tool which helps copying from private repo to public repo. Then, at some point, the same case exists in Ansys, with a private repository requiring strict OSS process (hence the "=") and a public repository. One possibility would be to have the product version "guaranteed" ("=") and the github version more open (like X.Y. for ADO and X.Y. for GitHub), or to relax OSS rules for Python ? or found another way with our management team? I'm for the "<=", but it is currently against the OSS rules. @RobPasMue, @ansfcouadau : this is beyond the PR, in my opinion. |
How is the package consumed for the purposes of the ADO build? I think it might still be possible to use locked dependencies within the ADO build, and (matching) version ranges for consumption with It might be helpful to schedule a direct discussion with @RobPasMue and maybe others to understand the context better.
Unfortunately the current pinned dependencies are incompatible with the PyAnsys metapackage (both specifically, and in principle), so it blocks merging the PR from my point of view. It might still be okay to put it onto the documentation without including it in the [1] The PyAnsys packaging / versioning scheme also aligns with how we are evolving the internal build / versioning process. For details, we should discuss in a non-public location. |
Thank you all for the detailed answers. I concur that an internal discussion would be best as a next step. I will send an invite. @greschd: in the meantime, I would be in favor of adding PyScadeOne to the docs without including it to the |
Let's hold off until the discussion @ansfcouadau -- I haven't tested it but I'm pretty sure |
We can add it only to the docs if desired -- just remove it from the pyproject.toml if possible |
I would suggest to let the PR open for now. The better solution would be to update our dependencies with "=>" and have a new release. Then an update of the current branch would resolve everything for the PR. but let us check first with rest of the team if they agree. We go back soon. (and let's have the meeting separately for the future releases) |
Short update:
Thank you all! Stay tuned. |
Hello all, As confirmed internally, we are only integrating the PyScadeOne docs to this Pull Request. On the next release of PyScadeOne, (with solved dependency issues), we will propose a new Pull Request to integrate the library to the PyAnsys metapackage. Thank you all for your support. |
Sounds good! Thanks @ansfcouadau |
As discussed with @jorgepiloto, here is a PR to add our newly-published PyScadeOne library to the official PyAnsys docs.
What I have tested
doc/make.bat html
and confirmed that PyScadeOne tiles appear in the various pages.What I could not test locally
tox
and saw a dependency conflict error (see below). I do not know if this error is problematic or not (Mechanical and Scade One are not really used together). Here's the full trace: