[Slackbuilds-users] important info regarding python3-hatchling update
Tim Dickson
dickson.tim at googlemail.com
Thu Sep 12 08:35:12 UTC 2024
On 12/09/2024 09:14, Jeremy Hansen wrote:
>
>
> On Thu, Sep 12, 2024, 12:57 AM Tim Dickson via SlackBuilds-users
> <slackbuilds-users at slackbuilds.org> wrote:
>
> On 12/09/2024 06:29, Jeremy Hansen wrote:
>>
>>
>> On Wed, Sep 11, 2024 at 4:23 AM fourtysixandtwo
>> <fourtysixandtwo at sliderr.net> wrote:
>>
>> On Tue, Sep 10, 2024 at 12:55 PM Jeremy Hansen
>> <jebrhansen+SBo at gmail.com
>> <mailto:jebrhansen%2BSBo at gmail.com>> wrote:
>> > export SETUPTOOLS_SCM_PRETEND_VERSION=$VERSION
>> >
>> > and a few
>> >
>> > export PDM_BUILD_SCM_VERSION=$VERSION
>> >
>> > to fix some issue with versions not being detected properly
>> during build time (although, I believe several are due to me
>> choosing GitHub tarballs instead of PyPi, which are packaged
>> differently). If those hacks were to be fixed by these
>> updates, I'd remove them.
>>
>> I use the pypi tarballs solely because I can also grab the
>> MD5SUM they provide with my update script.
>>
>>
>> This isn't an issue for me as my update script will generate
>> MD5SUM automatically no matter how many source files there are.
>> It will just download everything in the DOWNLOAD or
>> DOWNLOAD_X86_64 variables in the .info (if they don't already
>> exist) and then generate MD5s for all of them and update the
>> .info file.
>>
>> It is a bonus that I haven't had to use those methods above
>> with any builds I maintain.
>>
>>
>> This is a minor inconvenience for a handful of packages that
>> prefer downloads from PyPi or a git clone (rather than an archive
>> download from a tag/release). Luckily, out of the 150+ packages I
>> maintain, there's probably less than a dozen that I had to add
>> this tweak/hack. I think my preference to GitHub was many python
>> packages I took over that used PyPi as their source location used
>> hashed download links, which prevented my update script from
>> using the right download link (although, I suppose I could add
>> the functionality to switch to links that simply require updating
>> the version -- future me will worry about that :D). This led me
>> to prefer GitHub links and then outta sheer stubbornness, when
>> problems arose from it, I found hacks to continue using GitHub
>> over PyPi.
>>
>> I just checked with python3-tox and python3-pyproject-api
>> tarballs from pypi and they both include a
>> "src/*/*version.py". One does have to watch for the change
>> in source from say pyproject-api to pyproject_api in both
>> download and SRCNAM though.
>>
>> Have you come across this for troubleshooting?
>> export SETUPTOOLS_SCM_DEBUG=true
>>
>>
>> I was not aware of that flag, however, it led to either a similar
>> or the same issue (too lazy to investigate further right now).
>>
>> "mAke sURe yoU're EitHer bUildINg frOM A FulLy iNTAcT git
>> RepOsiToRY oR PyPi taRbaLLs."
>>
>> Error, meet stubbornness (my hack) :D
>>
>> While we are on the topic of setuptools_scm, I have a method
>> using
>> venv to upgrade it to 8.1.0, but unfortunately the newer
>> versions do
>> not honour PYTHONPATH precedence and import the older
>> slackware 15.0
>> version. One would have to remove the older system package
>> or use the
>> venv hack on every slackbuild that requires the newer
>> setuptools_scm
>> in /opt.
>>
>>
>> I mean, we currently have to add hacks in SlackBuilds to use
>> newer python packages residing in /opt/ (which are mostly, if not
>> entirely, packages you maintain). This has opened up the ability
>> to upgrade a lot of python packages further than would be allowed
>> if we solely used the packages from 15.0. They've been very
>> helpful in allowing upgrades without additional hacks.
>>
>> If the newer version offers something severely lacking on
>> Slackware or SBo today, I (and I can only speak for myself), have
>> no issues adding a line or few to my SlackBuilds that require
>> that newer version.
>>
>> Upstream is aware of this issue but don't have any interest
>> in fixing it currently.
>>
>>
>> That sucks.
>>
>> > Go for it! It's easier than me trying to merge your changes
>> and submit a PR this week.
>>
>> Done!
>>
>>
>> Thanks!
>>
>> _______________________________________________
>> SlackBuilds-users mailing list
>> SlackBuilds-users at slackbuilds.org
>> https://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
>> Archives -https://lists.slackbuilds.org/pipermail/slackbuilds-users/
>> FAQ -https://slackbuilds.org/faq/
>>
> i found that for some python builds github archives/tags were
> missing some of the source, which was included in pypi source
> download, so have to use pypi for those. it's a bit more
> inconvenient, as the url's have the hashes as you mentioned, but
> it's not too awkward.
> regards, Tim
>
>
> You can change the PyPi URLs to not have hashes, but you can also
> usually bypass the missing source files when getting it from GitHub
> with variables passed during the build process.
>
> I usually choose the latter out of spite for PyPi not defaulting to
> non-hashed source links.
>
> However, if you're interested in bypassing the hash-based sources with
> PyPi, it is based on the following URL layout:
>
> https://files.pythonhosted.org/packages/source/${PROJECT::1}/${PROJECT}/${PROJECT}-${VERSION}.tar.gz
> <https://files.pythonhosted.org/packages/source/$%7BPROJECT::1%7D/$%7BPROJECT%7D/$%7BPROJECT%7D-$%7BVERSION%7D.tar.gz>
>
> The ${PROJECT::1} being the first letter of the project/package name.
>
> So if it was tox (which is python3-tox on SBo) the url would be
> (replacing ${VERSION} with the actual version):
>
> https://files.pythonhosted.org/packages/source/t/tox/tox-${VERSION}.tar.gz
> <https://files.pythonhosted.org/packages/source/t/tox/tox-$%7BVERSION%7D.tar.gz>
>
> I have a bash function that can find the non-hashed URL for PyPi
> sources and will correct any download links for GitHub (since they do
> funky stuff with content disposition). You can work it into a script,
> add it to your shell using a bashrc or similar, or make it its own
> script.
>
> https://github.com/bassmadrigal/scripts/blob/master/check-source-download.sh
>
> Jeremy
>
> (I don't know what the crap is going on with the below section of
> quoted email. I couldn't delete it using Gmail's android app. It
> really frustrated me, but not enough to go to my computer and see if I
> can fix it there.)
>
thanks, that's really useful info. It looks similar to sourceforge
upload urls in that respect. It would be useful to have all these sort
of tips for slackbuild maintainers in a central place. maybe
https://www.slackwiki.com/Writing_A_SlackBuild_Script ,or is there a
better place?
regards, Tim
--
This email has been checked for viruses by AVG antivirus software.
www.avg.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.slackbuilds.org/pipermail/slackbuilds-users/attachments/20240912/a6d6629a/attachment-0001.htm>
More information about the SlackBuilds-users
mailing list