[PureOS] Updating localechooser in landing/byzantium

Jonas Smedegaard jonas.smedegaard at puri.sm
Thu Oct 7 04:36:05 PDT 2021


Quoting Carsten Schoenert (2021-10-06 14:32:00)
> I've looked at localechooser as it's mentioned currently in the 
> synchronization issues for landing.
> 
> https://master.pureos.net/sync/landing
> 
> Last time the package was touched was in 2018 by Matthias and shortly 
> later by Chris [1].
> As Matthias choose to start with a standalone branch back in 2018 I 
> now merged the Debian tag 2.93 from the upstream repository on Salsa 
> into a derived branch pureos/latest based on the standalone branch 
> named master within the Purism tree. That's how I see future work will 
> be manageable, merging the required Debian tag into the derived PureOS 
> tree as done in other forked repos.
> I managed to get the merge conflicts solved so far.
> 
> I also added a configuration for gbp and also a CI controlling file.
> 
> So why I'm posting here?
> Simply because there is no target branch on the destination tree I can 
> create a MR for and also because I'm currently not know much about the 
> background for this forked package.
> 
> So please have a look at the current state I prepared [2] for further 
> discussion.
> The CI pipeline succeeded so far. But as for python-apt, other things 
> might be needed to check before pushing my work to the main repo.
> 
> [1] https://source.puri.sm/pureos/core/localechooser
> [2] 
> https://source.puri.sm/carsten.schoenert/localechooser/-/commits/pureos/latest/

Interesting case, Carsten.  Thanks for bringing it up here!

Purism work can be tricky because it intermixes upstream and downstream 
work - i.e. Purism is sometimes upstream of e.g. Debian and GNOME, and 
sometimes Purism is downstream to them, even for same code projects.

Purism has an "upstream first" mantra.  To me that translates generally 
as "commit upstream work directly to upstream repos (don't wait for 
upstream to cherry-pick from some downstream repo)".

Purism customers have higher priority than the "upstream first" mantra, 
however: In cases where pushing urgent changes upstream would delay 
getting them into Purism products, Purism customers take precedence.

(sorry if above is obvious to you - took some time for me to align it)

The previous PureOS packaging of localechooser seems weakly aligned with 
upstream: It tracked upstream _tarball_ source but not upstream _git_ 
development.

Maybe the reason was to quickly serve Purism customers back then.  
Assuming we are not in a similar hurry now, this seems a good time to 
switch to use the "upstream first" mantra for this packaging work.

Personally¹ I do "upstream first" package maintenance by treating 
upstream packaging branch as the _only_ baseline, rebasing PureOS 
commits on top of that when needing to realign with Debian.

I would therefore start over from scratch, starting from upstream Debian 
git repo.  Something like this:

 1. fetch upstream Debian packaging project:

	debcheckout localechooser

    ...or if that fails then locate git and do it manually:

	git clone https://salsa.debian.org/installer-team/localechooser.git

 2. include previous work as remote branch _without_ merging:

	git remote add pureos_old https://source.puri.sm/pureos/core/localechooser.git
	git fetch pureos_old

 3. rewind to closest possible upstream commit before or at their latest release:

	git reset --hard 2.93

 4. auto-generate² boilerplate forking commits:

	~/projects/PURISM/FEATURE/package/bin/fork_at_pureos_for_byzantium.sh

 5. cherry-pick non-boilerplate commit from previous work:

	git cherry-pick 87c1922826060102a2d5a9abe968dc657630fab9

 6. finalize¹ and release:

	dch --local ~pureos .
	gbp dch -a
	DEBEMAIL="jonas.smedegaard at puri.sm" dch --vendor pureos --distribution byzantium --release
	git commit -m "prepare for release: update changelog" -a


¹ Others in Purism do differently, treating _both_ Debian and PureOS 
timelines as parallel "baselines", merging them when needing to realign 
with Debian, but I find that such "multiverse" of multiple timelines has 
higher risk of breaking in subtle maybe unnoticed ways and therefore 
less reliably tracks atomic commits to pass upstream, and find it 
cumbersome to compose a meaningful changelog for our users from such 
multiverse structure.  See https://tracker.pureos.net/T1049 for 
discussion on changelog style (which often reflects underlying git 
structure as well).

² My approach is also documented - with details on steps 4 and 6 - at 
https://source.puri.sm/-/snippets/1165#fork-for-pureos


 - Jonas

-- 
 * Jonas Smedegaard - idealist & Internet-arkitekt
 * Tlf.: +45 40843136  Website: http://dr.jones.dk/

 [x] quote me freely  [ ] ask before reusing  [ ] keep private
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: signature
URL: <http://lists.puri.sm/pipermail/pureos-project/attachments/20211007/f8d16c16/attachment.sig>


More information about the PureOS-project mailing list