Replies: 7 comments 2 replies
-
When it comes to ropes code quality, I think it's generally pretty good, it's just they very often follow very old practices and some of the string processing that it does can look a bit like C-style thinking translated into Python syntax. But they're nonetheless still quite well written and structured. Rope's codebase predates the existence of many of the modern tools and standard library improvements that we often nowadays take for granted, and so there are a lot of things it does that are just well written, but old school. For example, there are many parts of the code that probably should've been using list comprehension, generators, context manager, or pathlib. Back then those aren't features that are available nor you can take for granted will be available on the version of Python on the user's machine. The oldest commit in rope repository dates back to 2006. At that time the state of the art was Python 2.5, Git was only in the early days, GitHub didn't even exist yet. It's actually quite a wonder that back when I picked the project up a couple years ago, most of Rope still worked fairly well despite nearly a decade of very little development activities. |
Beta Was this translation helpful? Give feedback.
-
No issue with that, it's your fork so you can do whatever you want or need. Though I'm just wondering why you created a new git repo for that, instead of just using the actual GitHub fork feature. If you used a fork, GitHub would've linked your repo with the main repo, and provide some useful features around that. A fork is still a fully independent GitHub repository, so it still has basically all the Git and Github features. The git history is probably one of the best tool to study code, I used |
Beta Was this translation helpful? Give feedback.
-
Another thing to be aware about, removing the authorship information (as recorded in git history) and license file, and then putting it out publicly accessible is technically violating the terms for LGPL. Personally, I don't see too much issue with it. Considering what you're intending to use this repo for, it's not intended to be a distribution. But putting it somewhere publicly accessible necessarily implies that it could be a distribution, whether intended or not, so the license terms would applies. However, whether see it as an issue isn't very important, as I'm not the copyright owner of the entire codebase, each author of a patch to the project retains copyright ownership of their contribution (even if they just fixed a single typo somewhere and never come back to rope), so I can't really speak for all the other people who've contributed code to rope. So, while I don't really see it as a problem, other people that's a stickler for open source licensing might take issue with it. |
Beta Was this translation helpful? Give feedback.
-
@lieryan Many thanks for your comments. You've convinced me to try using ekr-fork-rope2 again. The problems I have had with ekr-fork-rope2:
My new plan
|
Beta Was this translation helpful? Give feedback.
-
@lieryan Great idea. Thanks. |
Beta Was this translation helpful? Give feedback.
-
@lieryan Your workflow makes sense, if I understand it correctly. My plans: I am about to delete the duplicate ekr-study-rope repo. I'll do all further work in ekr-rope-fork2. The ekr-devel branch will be the base of all my experiments. I have merged PR #580 and PR #602 into ekr-devel. Merging these PRs allows me to ignore the present controversies. PR #600 records diffs between master and ekr-devel. I won't update PR #600 unless I do something significant. |
Beta Was this translation helpful? Give feedback.
-
@lieryan I've thrown away this throw-away repo :-) Thanks for your guidance. |
Beta Was this translation helpful? Give feedback.
-
ekr-study-rope let's me:
As soon as I created this repo my concerns about code squabbles vanished :-)
Hehe. I immediately realized that I had no idea what Rope's code does or how it does it! (This is a statement of my ignorance, not a comment on Rope's code quality.) I'll discuss the way forward in another discussion.
Summary
I'm happy to be a subordinate Rope dev, but I must control my own experiments.
These experiments will be both public (because they're in a public repo) and private (because they will never affect Rope directly).
Beta Was this translation helpful? Give feedback.
All reactions