Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Official Ubuntu PPA? #191

Closed
iirelu opened this issue Feb 8, 2015 · 9 comments
Closed

Official Ubuntu PPA? #191

iirelu opened this issue Feb 8, 2015 · 9 comments
Assignees
Labels
type.Project Issue is important for a milestone

Comments

@iirelu
Copy link
Contributor

iirelu commented Feb 8, 2015

It might be a good idea to have. The usual faire is having a stable branch and a nightly branch, which seems like it'd be good for us as it lets less technology-proficient people find bugs and stay up to date.

I believe PPAs have a system where they can automatically compile new builds regularly, so in theory we should just be able to set things up and not have to put much effort into maintaining things.

I'll investigate further and see if I can't figure things out.

@iirelu iirelu added the type.Project Issue is important for a milestone label Feb 8, 2015
@achadwick
Copy link
Member

We do have https://launchpad.net/~achadwick/+archive/ubuntu/mypaint-testing which could be resurrected. I tailed it off at the start of the gtk3 work, but it could be resurrected.

I'm also responsible for a bit of Debian porting, and the Ubuntu packaging should probably stem from that naturally.

The PPA repository doesn't have to share too much Debian build kit (or even a changelog) with the "trunk" stable line that goes into Debian testing then Ubuntu stable.

@achadwick
Copy link
Member

If PPA maintenance can be made a team effort on Launchpad, we could maintain the debian/ tree here on github and update the Debian stuff from that as needed.

Quick-and-dirty PPA-style build goal: clone a hypothetical https://github.com/mypaint/ppa (or mypaint/debian) into a working tree's debian, fakeroot debian/rules binary, test, make source debian bundles the same way, upload them to the PPA ftp thingy and watch their autobuilder break.
Initially I'd stop short of something like this being a submodule because it's not a true dependency of MyPaint itself - but that said, the scripted release tarball stuff can be told to omit a debian tree, I guess.

It's better to have the debian tree live somewhere it can be forked usefully. Locking it up in Debian's crummy old SVN repo is probably a bad idea.

Potential annoyances: version number requirements for PPA builds. Maybe keep the version in the repo ~ppaN-agnostic, and write a script to decorate debian/changelog with the right suffixes for whatever build we're doing?

@iirelu
Copy link
Contributor Author

iirelu commented Feb 8, 2015

It would be nice to have the ability to tell people "Just add ppa:mypaint/stable or ppa:mypaint/nightly".

I tried looking at how automated PPAs work from the documentation and how other automated PPAs work, but I couldn't figure it out. The documentation doesn't give any higher-level picture of what's going on, and Launchpad is a pain to navigate.

This is more a long-term goal anyway, we don't strictly need a PPA, after all.

@achadwick achadwick self-assigned this Feb 10, 2015
achadwick added a commit to achadwick/mypaint that referenced this issue Feb 10, 2015
* Configure with real option processing rather than environment vars;
* We don't (shouldn't) have bashisms, so use a /bin/sh shebang;
* Headless option for skipping GUI tests;
* Optional Debian-style tarball naming scheme, for PPA making;
* Configurable output location, again for PPAs;
* Make .tar.gz/.tar.bz2 outputs optional;
* Better tempfile management;
* Add a help option.

Addresses part of mypaint#191: any PPA debianization will be
reliant on tarballs with special names. Plus I want to make the script
nicer.
@achadwick
Copy link
Member

I have something of a plan in my head:

  • Make a mypaint/debian repository to house our debianization
    • Purposes of this: scripting our PPA releases, ad-hoc packages anyone can build, feeding the Debian packaging effort
    • Make sure its versioning plays nice with Debian and Ubuntu efforts (version numbers will look like 1.1.1~alpha``-0dev1``ppa1``~utopic1 and similar; tildes make things sort earlier than their prefix in Debianland)
      • In short: official Debian releases (which start at <upstream>-1) override our <upstream>-0dev[...] stuff, and our alphas and betas all get superseded by real releases from anyone.
    • Test build and upload, hope my signing credentials are still up to date
    • Document, and make it clear that this isn't the one true source of Debian's efforts
    • It will track our master, and Debian's policy too, so it can be a source of patches for them
    • Should be version-tagged to match MyPaint releases, but it won't be a submodule. At least, initially. I see it as more of a floating thing where its changelog will detail changes to the packaging only as our master evolves.
  • Close down my debian SVN branch, since I'm not really maintaining it and it's my toy
  • Keep the debian SVN trunk, since the python-apps-team maintain that, and that trunk is the real Debian packaging tree
    • I'll feed any changes back to the debian SVN trunk provided they're not too Ubuntu-specific. Given I'm comaintainer, it's only polite.

Trick with automated PPAs is signing the source uploads.

achadwick added a commit to achadwick/mypaint that referenced this issue Feb 10, 2015
* Configure with real option processing rather than environment vars;
* We don't (shouldn't) have bashisms, so use a /bin/sh shebang;
* Headless option for skipping GUI tests;
* Optional Debian-style tarball naming scheme, for PPA making;
* Configurable output location, again for PPAs;
* Make .tar.gz/.tar.bz2 outputs optional;
* Better tempfile management;
* Add a help option.

Addresses part of mypaint#191: any PPA debianization will be
reliant on tarballs with special names. Plus I want to make the script
nicer.
achadwick added a commit to achadwick/mypaint that referenced this issue Feb 10, 2015
* Configure with real option processing rather than environment vars;
* We don't (shouldn't) have bashisms, so use a /bin/sh shebang;
* Headless option for skipping GUI tests;
* Optional Debian-style tarball naming scheme, for PPA making;
* Configurable output location, again for PPAs;
* Make .tar.gz/.tar.bz2 outputs optional;
* Better tempfile management;
* Add a help option.

Addresses part of mypaint#191: any PPA debianization will be
reliant on tarballs with special names. Plus I want to make the script
nicer.
@achadwick
Copy link
Member

Well, the packaging is up: https://github.com/mypaint/debian. It compiles, installs, and runs on my system, and I can crank out signed source uploads with it which the PPA uploadbot seems to like.

Waiting on the trusty autobuilder results to see how well it does before trying any other Ubuntu releases.

@iirelu
Copy link
Contributor Author

iirelu commented Feb 10, 2015

Exciting! It seems like this will make releases easier, which is good.

@achadwick
Copy link
Member

It even builds! Admittedly it took three retries without source changes to get the amd64 one built (with no explanation or buildlog, thanks Launchpad!) whereas i386 did fine, but there you go.

Uploading utopic and vivid now.

@achadwick
Copy link
Member

Closed down my "master" branch in the Debian SVN: http://anonscm.debian.org/viewvc/python-apps?view=revision&revision=11751, all done here. Packaging stuff which will be good for the next stable MyPaint release can now be sourced from https://github.com/mypaint/debian, and is itself derived from Gürkan Sengün's original packaging for Debian.

@iirelu
Copy link
Contributor Author

iirelu commented Feb 16, 2015

Awesome!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type.Project Issue is important for a milestone
Development

No branches or pull requests

2 participants