pystac upstream split

Antonio Valentino antonio.valentino at tiscali.it
Tue Aug 11 21:48:30 BST 2026


Dear Bas,

Il 11/08/26 20:35, Sebastiaan Couwenberg ha scritto:
> On 8/11/26 7:41 AM, Antonio Valentino wrote:
>> * 22 extensions (each with a single python module)
> 
> If these are very small, that would be an argument to keep building 
> those from the same source as the Archive Team has complained about lots 
> of small packages (in the Node.js ecosystem) in the past.
> 
>> Everything is in a single repository and we currently get the the 
>> source tarball directly from github.
>>
>> The original idea was (the one currently implemented in salsa and 
>> still not fully working) was to generate multiple python packages from 
>> a single source but I realized that pystac(-core) and the extensions 
>> are versioned (and also released) independently.
>>
>> This is an issue for the current implementation because all the debian 
>> packages now have the same version.
>> Do you know if it is possible to control the version of the individual 
>> packages generated form the same source tarball?
> 
> Binary packages don't have to use the same version of the source 
> package, this can sometimes be used instead of an epoch.

How can I do it?
Right now I have 26 packages with version 1.15.2-1.
I guess that I could make the debian version independent from the 
upstream version but I don't know how to control the version of the 
different generated packages

E.g the pystac version is 1.15.2 but the version of 
pystac-ext-xarray-assets in the source archive is 1.0.0, and today it 
has been bumped to 1.0.1.

Please note that the version of the installed package (and the dist-info 
directory) is correct, just it does not matches the one of the debian 
binary package for the various extensions.


>> In any case the single source approach would have limitations because 
>> I would not be able to update the extensions independently.
> 
> What criteria does pystac upstream use to tag a new release?

In y understanding they have multiple project in a monorepo and they 
plan to have version the various components independently:

$ grep version $(find . -name pyproject.toml)
./pyproject.toml:version = "1.15.2"
./core/pyproject.toml:dynamic = ["version"]  # __version__ = "1.15.2"
./extensions/datacube/pyproject.toml:version = "2.2.0"
./extensions/sat/pyproject.toml:version = "1.0.0"
./extensions/xarray_assets/pyproject.toml:version = "1.0.0"
./extensions/item_assets/pyproject.toml:version = "1.0.0"
./extensions/raster/pyproject.toml:version = "1.1.0"
./extensions/pointcloud/pyproject.toml:version = "1.0.0"
./extensions/eo/pyproject.toml:version = "1.1.0"
./extensions/classification/pyproject.toml:version = "2.0.0"
./extensions/render/pyproject.toml:version = "2.0.0"
./extensions/version/pyproject.toml:version = "1.2.0"
./extensions/mlm/pyproject.toml:version = "1.4.0"
./extensions/scientific/pyproject.toml:version = "1.0.0"
./extensions/file/pyproject.toml:version = "2.1.0"
./extensions/mgrs/pyproject.toml:version = "1.0.0"
./extensions/timestamps/pyproject.toml:version = "1.1.0"
./extensions/sar/pyproject.toml:version = "1.0.0"
./extensions/view/pyproject.toml:version = "1.0.0"
./extensions/projection/pyproject.toml:version = "2.0.0"
./extensions/table/pyproject.toml:version = "1.2.0"
./extensions/label/pyproject.toml:version = "1.0.1"
./extensions/grid/pyproject.toml:version = "1.1.0"
./extensions/storage/pyproject.toml:version = "2.0.0"
./pytest-pystac/pyproject.toml:version = "0.1.0"


> If only changes to core result in a new release which then also includes 
> accumulated updates to the extensions, there is an argument for 
> splittings the extensions off.

Apparently no, they tag and release extensions independently on 
pystac-core, etc.

> Updating the extensions with cherry-picked patches is also an option, 
> but uscan won't inform you about available updates.

I didn't consider this. Indeed it is an option.
The fact that uscan would not help in this case is not a big issue for 
me, I'm registered to github release notifications in any case.

> Is the pystac repo now some kind of monorepo in which all the related 
> projects live?

yes

>> Unless you have a different advice, I think that the cleanest solution 
>> would be to have 25 independent packages and to get the source 
>> tarballs from PyPI.
> 
> My gut feeling right now is that we don't want all of these separate 
> extension packages, but I don't have enough information to formulate 
> what I think would be the best solution.

For the time being I would like to keep the single source package.
Probably it is also a good idea to have only

python3-pystac-core
python3-pystac (which includes all the extensions and depends on 
pystac-core)
python3-pystac-doc

python3-pytest-pystac would also be needed for autopkgtests
This one would be the only one with a mismatch between the debian 
package version and the python package version.

For the mime being non of the packages in debian has a direct dependency 
on the pystac extensions so they would not be impacted.

Switching to a with multiple extension packages or even multiple source 
packages would be always possible int the future if needed.

>> Of course I will need again your help for the review of the new 
>> packages and the first upload.
> 
> That's of course no problem if it comes to that.

If the above plan sounds good for you then no new repository is needed.
I will still need you to sponsor the first upload.

I will first re-organize the package to include all the extensions in 
python-pystac, and then I will introduce patches to the new versions of 
the extensions released in the meanwhile,

kind regards
-- 
Antonio Valentino




More information about the Pkg-grass-devel mailing list