I guess I'm missing something
(Sorry if I'm repeating what we've already discussed this in the [For Ubuntu PPA Maintainers] Uploading a Stable Release topic, but I think this is a more centralized place to discuss the whole PPA scope.)
On Launchpad, what we deal with is source packages. Source packages are recipes to build binary packages, which are the *.deb packages that can be installed from the console or in a package manager.
The imported bzr branch named "master" used to build the Daily Builds PPA doesn't sync anymore due to the Git signed commit bug. It is highly unlikely this will ever be fixed by the Launchpad people (the report is 3 ½ years old). Unless I'm missing something obvious, we'll have to push updates to Lanchpad manually, just like we do on the packaging branches.
With Launchpad now supporting Git repositories (still in Beta though), I believe it may be desirable to switch to a Git-only work flow rather than to continue using bzr branches.
I see a lot of advantages in this, the main one being, the FreeCAD developers and advanced users here know Git. None of them knows bazaar. With Git we can get support if we get into trouble. The other potential advantage would be that with a package built directly from a cloned Git repo rather than a bzr repo, we may no longer require a Versioning.git branch.
As for automating builds: it would be possible on Linux to write a script that pulls from freecad's github master, then pushes it to the Launchpad Git. This script could then be automated with cron, assuming one of us decides to keep a PC on permanently. Otherwise we just have to launch the script once a day which is no big deal.
The Debian Science Maintainers use Git, and I'm sure they know their stuff. This is where they develop source packages for FreeCAD:
http://anonscm.debian.org/cgit/debian-s ... eecad.git/
I think all of this is addressed here:
https://code.launchpad.net/~freecad-maintainers/+git
There is a gitmaster branch that can be mirrored by a cron job. git pull, git push PPA master
There is a packaging branch (also a git repo), right now its a copy of the trusty packaging bzr branch converted to git, but could be generalized to be universal.
In the summary view, you can see the following branches:
experimental: the repository where they test packages. Advanced debian users can install packages from the experimental repository.
jessie-backports: the backports repository for Debian Jessie users.
master: where their own debian development happens.
upstream: contains only the original FreeCAD source code of a specific release branch minus the "package" folder. It looks like they import a DFSG tarball (there's a script to do that in FreeCAD's source code).
This looks to work against a universal debian folder. Admittedly I'm green here. The "upstream" for us is the mirror of the FreeCAD source code.
If we try to replicate this work flow on Launchpad, and based on my failed experiments of the past week
this is what I think would need to be set up:
The master branch needs to be like the Debian Science Maintainers one, with a "debian" folder at the root. Let's not make the mistake I did and get a "detached HEAD" because of a non-existent master!
Here is where the rubber meets the road.
The
https://code.launchpad.net/~freecad-mai ... /gitmaster branch is a real git repo. I cloned it and it compiles locally. I assume I could modify it locally and "git commit" and push to change it. That's not the goal. At the next commit to FreeCAD master I can test, but I think, for me
Code: Select all
git pull
git push git+ssh://clhclh@git.launchpad.net/~freecad-maintainers/+git/gitmaster master
Will update the Launchpad git repo with no version change or rewriting of git history,
All that said it doesn't build
https://code.launchpad.net/~clhclh/+rec ... usty-daily
The
"Could not be uploaded correctly" was after the
Successful build
The
https://code.launchpad.net/~clhclh/+arc ... ld/9594922successful build failed due to copying problems with version.h.
The Could not be uploaded correctly error was after this commit
https://git.launchpad.net/~freecad-main ... 607dcfedd1
The only alternative I see is to pull the debian folder from here:
https://github.com/FreeCAD/FreeCAD/tree ... age/debian, after being mirrored to Launchpad.
This may also help me [url]ttps://wiki.debian.org/git-pbuilder[/url]