-
Notifications
You must be signed in to change notification settings - Fork 3
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
Convert Dependencies to Submodules #34
Comments
Just my two cents (as an outsider): Creating multiple repositories would be a good idea for this project, keeping the git history might be a bit annoying, however it should be possible to retain using If you go this route you may want to look into starting a Github Org for this project, which should allow you to easily manage permissions at a organization level, which allows consistent permissions. (make sure you have some kind of governance plan in place in case of emergencies). You can also make use of dependabot, to manage updates to what would (in theory) become the new meta-repository pykotor. You'd also be able to split your issue trackers (or not and keep them in the meta-repository) quite easily, as well as transfer them to the right repositories if one is made somewhere in error. As a contributor it definitely would make things a bit less crazy (no fear of breaking the entire stack) if you kept all the different tools in separate repos. As an end-user you'd be able to clone the pykotor repository and end up with what you are expecting (a folder tree of all the tools). |
Ironically this project used to be 4 different repositories
@NickHugi why did we end up combining the repositories? |
Can confirm I feel fear anytime I update code due to how much is relying on it. The real problem is the project is too big. Usually Python projects are a handful of scripts. I notice most of the bugs I end up fixing, would have been caught before run in a compiled language (e.g. Java, C/C++, c#.) In Python: The syntax errors, indentation errors, type checks, other typo's won't be discovered until the interpreter sees it during runtime. So each .py feels like a bomb that could go off at any moment. Add in Python's lack of hot editing, how often the toolset needs to load, and yes it has been becoming quite the issue. |
MyPy is a strong solution but I've spent a year going through all of the typecheck errors/warnings yet there's still thousands remaining. |
Thought I'd post here since I'm doing another large repo refactor over on my fork. I still am not sure the best pythonic way to do all of this. I would like PyKotor and its tools to at least be different pip installs or poetry dependencies. everything in 'utility' must be converted either into poetry packages unrelated to the repo, or put in a non-repo-folder-structured namespace like e.g. as part of Libraries/PyKotor. Perhaps they could all just be optional poetry packages for not until this. |
Nesting a .git in a subfolder of our main repo creates a submodule. This strategy allows us to point to another repository, enabling these repositories to connect and interact more efficiently. PyKotor has become a giant monster of a project, and it's been difficult to organize things with our current system. This is why I recommend the feature: sub-modules
Organizes Commits:
Supports Version-Specific Dependencies:
Reduces Risk of Merge Conflicts:
Allows repos to communicate:
More control over what the user is pulling:
BWM
orPyKotor.Extract.Installation
, avoiding unnecessary downloads.Improved Dependency Management:
The text was updated successfully, but these errors were encountered: