coherent-oss / roadmap

A repository for garnering Coherent OSS's cross-project issues at the infrastructure level.
0 stars 0 forks source link

Decide on what to do with `jaraco.*` projects #2

Closed bswck closed 3 months ago

bswck commented 5 months ago
A number of projects lands in the jaraco/ directory of site-packages/ during installation: downloads last month jaraco's role uses skeleton?
jaraco.classes 40009617 Owner skeleton
jaraco.functools 1695144 Owner skeleton
jaraco.collections 873666 Owner skeleton
jaraco.text 855839 Owner skeleton
jaraco.context 778832 Owner skeleton
jaraco.logging 34133 Owner skeleton
jaraco.stream 21597 Owner skeleton
jaraco.itertools 7966 Owner skeleton
jaraco.env 6257 Owner skeleton
jaraco.path 4119 Owner skeleton
jaraco.envs 3813 Owner skeleton
jaraco.email 3717 Owner skeleton
jaraco.versioning 3631 Owner skeleton
jaraco.packaging 3562 Owner skeleton
jaraco.abode 3494 Owner skeleton
jaraco.docker 3134 Owner skeleton
jaraco.ui 3123 Owner
jaraco.windows 3024 Owner skeleton
jaraco.structures 2770 Owner skeleton
jaraco.develop 2470 Owner skeleton
jaraco.net 2259 Owner skeleton
jaraco.vcs 1989 Owner skeleton
jaraco.mongodb 758 Owner skeleton
jaraco.services 430 Owner skeleton
jaraco.clipboard 379 Owner
jaraco.test 376 Owner skeleton
jaraco.tidelift 297 Owner skeleton
jaraco.fabric 277 Owner skeleton
jaraco.xonsh 211 Owner skeleton
jaraco.pmxbot 196 Owner skeleton
jaraco.util 194 Owner skeleton
jaraco.postgres 188 Owner
jaraco.financial 153 Owner skeleton
jaraco.apt 129 Owner
jaraco.timing 124 Owner
jaraco.modb 119 Owner skeleton
jaraco.crypto 116 Owner skeleton
jaraco.home 107 Owner skeleton
jaraco.site 76 Owner skeleton
jaraco.compat 68 Owner
jaraco.nxt 64 Owner skeleton
jaraco.video 60 Owner
jaraco.media 54 Owner skeleton
jaraco.geo 54 Owner skeleton
jaraco.xkcd 48 Owner
jaraco.zstd 42 Owner skeleton
jaraco.translate 34 Owner
jaraco.input 29 Owner
jaraco.keyring 28 Owner
jaraco.office 26 Owner
jaraco.imaging 23 Owner
jaraco.parables 16 Owner

(Table generated with jaraco_namespace.py).

Should we (and how) change the namespace of these? @jaraco

bswck commented 5 months ago

jaraco.develop and jaraco.site can be surely excluded from the list. Assuming we migrate to coherent.*, some could be renamed on the way, e.g. jaraco.envscoherent.venvs (a better distinction from coherent.env). Some packages could be checked if they should be actually maintained by Coherent OSS, especially those that don't use skeleton or their last release was before 2023:

downloads last month jaraco's role uses skeleton?
jaraco.stream 21597 Owner skeleton
jaraco.docker 3134 Owner skeleton
jaraco.ui 3123 Owner
jaraco.clipboard 379 Owner
jaraco.test 376 Owner skeleton
jaraco.postgres 188 Owner
jaraco.apt 129 Owner
jaraco.timing 124 Owner
jaraco.compat 68 Owner
jaraco.video 60 Owner
jaraco.media 54 Owner skeleton
jaraco.xkcd 48 Owner
jaraco.translate 34 Owner
jaraco.input 29 Owner
jaraco.keyring 28 Owner
jaraco.office 26 Owner
jaraco.imaging 23 Owner
jaraco.parables 16 Owner

For each of these, let's determine whether they are still going to be maintained or not.

bswck commented 5 months ago

jaraco.stream, jaraco.docker and jaraco.ui got quite a bit of downloads last month, so I guess Coherent OSS should continue maintaining it. As for the rest, I'm concerned the migration might be an unnecessary hassle.

jaraco commented 3 months ago

Hmm. I hadn't planned on renaming the projects or their namespace anytime soon. My instinct was to start with:

This approach would allow the projects to be maintained by the organization and benefit from the uniformity of settings that can be applied at the organization level (settings relating to auto-merge, etc) and simplify custodial matters relating to bus factor and collaboration.

I was not planning to migrate anything to coherent.* yet. I'd probably start by creating the next new thing under coherent.* but not migrate anything right away. I'd want to make sure the name has legs and doesn't run into any conflicts or disputes before forcing a transition on users and downstream packagers (I'm thinking about Linux package managers and my former Google colleagues and the toil they would endure simply by migrating half a dozen packages).

For each of these, let's determine whether they are still going to be maintained or not.

My instinct is that anything that's likely to get a release anytime in the future should probably be migrated. Even if it's very personal (like jaraco.develop mostly is), it's still beneficial to share the custody of it, even if other members of coherent-oss would be largely uninterested in maintaining it. There would be no obligation to host it and the repo would likely get archived or turned down on my demise, but otherwise it would operate more or less as it had under my personal account.

There are maybe a handful of these that I might recommend for archival now (jaraco.office, jaraco.geo, jaraco.compat come to mind), and thus could be excluded, but I'd recommend if they're going to be excluded, let's archive them first and thus exclude archived repos from migration.

I'm genuinely surprised how many of those aren't using skeleton. My suspicion is that they are using skeleton, but I just haven't had the need or desire to cut a release. For example, jaraco.parables has been synced with skeleton 2024, but is so stable that it doesn't have a release in PyPI. It probably deserves a release in PyPI just to update the badge and other best practices. On the other hand, that library was extracted from pmxbot, so maybe it makes sense to migrate it to the pmxbot org (with or without a rename). Since I was looking at it, I cut a release just to give it a refresh.

All that said, I don't want to sully the name of coherent-oss by littering it with a bunch of junk. On the other hand, I do want the barrier to entry for any contribution to be incredibly low. jaraco.docker is 12 lines of code that gives StackOverflow users an easy answer to a rather mundane but impactful question.

I'm happy to adjust to your expectations. Feel free to propose a different approach, but here's what I recommend:

Let me know what you think.

bswck commented 3 months ago

Thanks!

I'm happy to adjust to your expectations. Feel free to propose a different approach, but here's what I recommend:

  • migrate everything that's maintained supported (unarchived)
  • be prepared to migrate back anything that turns out to be a nuisance

Let me know what you think.

I really like that empirical approach, it will be the most optimal for your and my time. As everything is clear now, I'll close this as completed and jump on #3.