-
Notifications
You must be signed in to change notification settings - Fork 998
Move repl to a seperate repo #2009
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you need to update doc and the README as well.
Seems at least one test is also affected ImportError while importing test module '/home/runner/work/pymodbus/pymodbus/test/sub_client/test_repl_client.py'. |
I think moving pymodbus.server/client to the new repo is better than having a third directory, but I am open to ideas. |
Interesting idea. Would it make more sense for REPL to be a separate package that depends on |
@janiversen are you suggesting move the entire server and client to a new repo or are you talking about the REPL server and client ? |
The idea would be to have it installed as stand-alone package and also as part of |
Having it as a new repo that depends on a specific version of pymodbus does exactly that. @dhoomakethu my idea was to move REPL client/server packages to a separate repo, that depends on pymodbus. That way updates to pymodbus does not affect the REPL packages, and REPL can have it own release schedule.
The focus is to make the REPL package resistent to changes in pymodbus !! I am not sure how you can do that if it is one repo. However I do not have a lot of experience in this, but I see the following problems:
Remark: if you mean subproject, then that is a separate repo, just present in the pymodbus tree. But that would mean all pymodbus changes would affect REPL. If a new REPL repo have pymodbus as a subproject, it decides when to use a new pymodbus version. |
As far as I can judge, this PR remove REPL client/server from the pymodbus repo...so please explain how you where/how you would add it, because it really seems we are thinking in different terms (and my thinking might very well be wrong). |
@janiversen If you check the
For more info on namespace packages refer. Now, the good thing about this is
For 3. above, There is no seperate PIP package available as of now and it needs to be installed from |
Please refer the comment above #2009 (comment) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do not fully understand git submodules, but think @dhoomakethu has come up with a plan that considers everything. In any case, we can figure it out together
side note: With Chicago, Grenada and Bengaluru we have split the world timezones pretty well so that something is always happening in pymodbus :) |
@dhoomakethu thanks for the explanation, the missing piece for me was py project.toml, because I was merely thinking about github. I will check it in a minute. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes look good, feel free to merge once CI is green.
I updated CI some days ago, and solved a pylint issue yesterday, so just rebasing on newest dev might please CI.
Ahh the culprit is documentation, you need to remove repl from there. |
@janiversen The CI failure is happening for |
Yes, we only build documentation for the newest python version, mainly because the documentation have no dependencies on python versions, so doing it for all versions will just make CI slower. Thanks for noticing. |
@janiversen so is it OK if the documentation is failing ? The error looks like a generic PYTHONPATH resolution issue and not having any thing to do with the changes introduced in this branch. |
No it's not OK, I think you need to remove a document and a reference....
index.rst contains a reference to REPL.rst The problem is the REPL.rst have a reference into pymodbus/repl, which is removed. |
The CI is failing with this error for documentation
However trying to build locally works
Will check if its specific to python3.12 |
works on
|
but it works normally as you can see on dev. I will try to checkout your PR and see what happens. |
2d3e455
to
b8e0a09
Compare
This is real strange, dev works perfectly on CI but this PR do not....something does something unexpected. |
5c9248e
to
f683f88
Compare
I will try to poke around a bit. Will try to reproduce this locally, my wild guess is this is something to do with cached env's. |
I could reproduce the issue, the issue was with the CI trying to install
With `pip install -e ".[all]"
With `pip install ".[all]"
|
good catch, I did not think of that. I just removed the aiohttp dependencies of REPL, those should be in the repl repo. |
If this one get green, then lets merge. |
This PR was one of the heavier ones, but thanks for helping making it happen. @dhoomakethu having REPL in a separate repo, means it is primarily your child....but poke me if you need help etc ...I do not want to abandon REPL, which is a very good tool. If you want the REPL documentation to be part of the pymodbus documentation (but with its own versioning), just know I am all in favor ! |
We will have the documentation moved to repl repo and link it in pymodbus. I will update the PR tomorrow |
OK, looking forward to see that PR. |
pymodbus.console
andpymodbus.server
are still available once installed as beforerepl
feature is still the samepip install ".[repl]"
This way we can keep
pymodbus
core library separate from all the helpers and utils.TODO
repl
repo to be usedconsole
andserver
commands use different approach forcommands
andhints
, to be moved to one common lib.NOTE
This is just an idea, we can discuss the best coure of action and take action with this PR accordingly,