Review for Source Package: platformdirs This goes a bit of an unusual way ...
[Rationale, Duplication and Ownership] First of all, what does platformdirs do, according to its description and interfaces: Depending on your system (Linux, Mac OS X, or Windows), you have to use different directories for storing user data. platformdirs will help you choose an appropriate: . * user data directory (user_data_dir function) * user config directory (user_config_dir function) * user cache directory (user_cache_dir function) * site data directory (site_data_dir function) * site config directory (site_config_dir function) * user log directory (user_log_dir function) According to my, surely incomplete, research I quickly identified two alternatives that seem to be the most common use cases for this. 1. There is python3-xdg which is a bit more Desktop centric, but implements https://specifications.freedesktop.org/basedir-spec/latest/ And yes - it is in main already :-/ In doing so it provides ability to load the following paths xdg_data_home, xdg_data_dirs, xdg_config_home, xdg_config_dirs, xdg_cache_home, xdg_state_home and therefore provides almost the same. Although it seems not to be a in-place alternative and using it might be quite some effort depending on how it is used from openstack code. 2. Even more interesting seems python3-appdirs It is more popular by usage counts, by project forks and all that and yes - it is also in main already :-/ But it is suspiciously close in what it does appdirs will help you choose an appropriate: * user data dir (user_data_dir) * user config dir (user_config_dir) * user cache dir (user_cache_dir) * site data dir (site_data_dir) * site config dir (site_config_dir) * user log dir (user_log_dir) And with that being too close to be an accident I found this: Note: This project has been officially deprecated. You may want to check out https://pypi.org/project/platformdirs/ which is a more active fork of appdirs. Thanks to everyone who has used appdirs. And on the platformdirs side I found: This repository is a friendly fork of the wonderful work started by ActiveState who created appdirs, this package's ancestor. Maintaining an open source project is no easy task, particularly from within an organization, and the Python community is indebted to appdirs (and to Trent Mick and Jeff Rouse in particular) for creating an incredibly useful simple module, as evidenced by the wide number of users it has attracted over the years. Nonetheless, given the number of long-standing open issues and pull requests, and no clear path towards ensuring that maintenance of the package would continue or grow, this fork was created. So in regard to our usual check, yes there is other software in main providing the same functionality - python3-appdirs. But the python3-platformdirs that you suggested is the better alternative. It is the same code but evolving. On one hand, that means that this MIR is much easier. I can skip the rest of the review here ... It is essentially a continuation of bug 1464165 which brought appdirs in. Hey James and Openstack again :-) I think changing to platformdirs is a clear win. I'm not even concerned on tests (as we otherwise so often are), it used the automatic testing at build and autopkgtest. So can we just promote platformdirs and go on then? Well ... no. This is like any other "same source new name" in which we want the usage of the old inferior to go away. I appreciate that time is scarce, but this is a better drop in replacement. OTOH The list is huge and not exclusively by openstack and also in many packages that do not yet have any delta. Reverse-Depends =============== * crossgrader * git-phab * nuitka * nvchecker * ofxstatement * ofxstatement-plugins * openlp * plover * ptpython * pydoctor * python3-cobra [amd64 arm64 armhf ppc64el] * python3-datacache * python3-datalad * python3-easydev * python3-etesync * python3-fissix * python3-fs * python3-intake [amd64 arm64 armhf ppc64el s390x] * python3-ironicclient * python3-libpysal * python3-mbed-ls * python3-miio * python3-napari * python3-npe2 * python3-openstacksdk * python3-os-client-config * python3-os-faults * python3-pako * python3-pycuda [amd64 arm64] * python3-pyopencl [amd64 arm64 armhf ppc64el s390x] * python3-pyspectral * python3-pytools * python3-requests-cache * python3-rply * python3-satpy * python3-subliminal * python3-ulmo * snakemake * sqlfluff * telegram-send * urlwatch I was tempted to say, given the time in the noble release, I'd approve that this is promoted to main but would like to have strong committment to work out before the end of 24.10. But then I saw this: root@n:~# apt-cache policy $(reverse-depends --release=noble python3-appdirs | awk '/^*/ {print $2}' | xargs) | grep -B 6 main | grep '^[a-z].*:' python3-ironicclient: python3-openstacksdk: python3-os-client-config: So the things pulling appdirs into main are very much only openstack and under your control and often have delta already. With that it seems not unfair (I hope you agree) to ask you to switch also those over to python3-platformdirs. That would allow to demote appdirs before noble is released, and that seems to be the full transition which seems doable. [Summary] MIR team ACK under the constraint to resolve the below listed required TODOs and as much as feasible having a look at Recommended TODOs. Required TODOs: - Please change dependencies in main from python3-appdirs to python3-platformdirs so we can demote appdirs when we promote platformdirs. Recommended TODOs: - Change (some day) universe packages that are Ubuntu only - Mass bug filing in Debian to switch -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2057683 Title: [MIR] platformdirs To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/platformdirs/+bug/2057683/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
