-
Notifications
You must be signed in to change notification settings - Fork 49
Description
As discussed in #104 (comment), I'm increasingly convinced that it makes sense to port Stow to Python. Perl is a mostly dead language at this point (with no offence to the Perl community - I have a great fondness for and long history with Perl for the first chunk of my career). The reality is that despite looking for co-maintainers in #104, none have been forthcoming and I believe this is largely due to most people not knowing Perl these days.
Python is the obvious candidate for a port:
- It's a hugely popular, well-known, and approachable language.
- For the Stow use case, compiled languages are overkill. Its performance is entirely I/O-bound, not CPU-bound.
- I know Python very well.
- There are already at least two unofficial ports:
- https://github.com/isarandi/stow-python which is a fantastic start (EDIT: see more details in comments below)
- https://github.com/r-burns/stow.py
Also, AI tooling makes this increasingly easier, e.g. @isarandi managed his in about a day.
So at this point, the main thing I'm still debating is whether the port should be done:
- in a subdirectory of the
mainbranch of the current repo - in a
pythonbranch of the current repo - in a separate repo
Currently I'm leaning towards option 1, because:
- this would allow a single commit to fix the same bug or add the same feature in both versions, and
- it would allow the same test suite to test both versions.
These would be helpful because for a period of time both versions would need to be maintained in parallel to allow software distributions to migrate over.
Other considerations (added after lots of discussion below):
- Not planning any name change. It will still be GNU Stow, for many reasons.
- However, I think 3.x onwards should be the Python version only, which should avoid a lot of confusion. So 2.x would remain the Perl series which gets EOL'd at some point in time with a reasonable amount of notice.