lp:debian/dgit

Created by Ubuntu Package Importer and last modified
Get this branch:
bzr branch lp:debian/dgit
Members of Ubuntu branches can upload to this branch. Log in for directions.

Related bugs

Related blueprints

Branch information

Owner:
Ubuntu branches
Status:
Development

Recent revisions

29. By Ian Jackson

Bugfixes:
* Unbreak --dry-run (`exiting subroutine via next', broken in
  ac221d67, bug released in 0.22).
* When running git-add in commit-quilty-patch, properly escape
  filenames (which git-add treats as glob patterns).
* When running git-add in commit-quilty-patch, use -f and sometimes -A,
  so as to avoid being broken by any .gitignore, etc.
* When quilt linearisation fails, print the right information in
  the error message. (This has been broken forever.)
* Cope properly with `3.0 (quilt)' with single-debian-patch.
  Closes:#796016. (Still does not work with wheezy's dpkg-source, so
  no test case yet.)
* With dgit sbuild, pass our -d before the user's arguments, so that
  the user can override it. Closes:#796019.

New checks and improved behaviours:
* Detect and reject git trees containing debian/source/local-options
  or debian/source/local-patch-header.
* In --dry-run mode, _do_ actually run dpkg-source --commit so that we
  actually do construct the quilt fixup commit; instead, honour
  --dry-run by avoiding pulling it back to your HEAD.
* quilt-fixup checks that the git tree is clean, as for build-prep.

Documentation:
* In dgit(7), discuss binaries and documentation present in upstream but
  removed by rules clean.

Test suite:
* Run quilt-fixup with -wgf in distropatches-reject,
  so that we don't need build-depends.

28. By Ian Jackson

Important bugfixes:
* In option parser test `@ARGV' not `length @ARGV'. Closes:#795710.
* Properly quote package name when constructing regexp in
  complete_file_from_dsc. Closes:#795736. Also, grep the code for
  likely similar problems elsewhere and improve a (harmless) instance in
  dgit-repos-server.

Other improvements:
* If a .orig in .. is a symlink, hardlink the link target into our
  private unpack directory, rather than the link itself (since latter
  won't work if the symlink is relative). Closes:#795665.
* Test suite: Fix t-restriction-x-dgit-schroot-build in non-adt mode.
* Infrastructure: Improve an error message in dgit-repos-policy-debian.

27. By Ian Jackson

Improvements:
* Honour *.clean-mode configuration setting for --clean= mode.
* No longer require option values to be cuddled: support `--opt val' and
  `-o val'. Closes:#763332.

Manpages:
* Fix typos.
* Document that tags are in DEP-14 format, and that they
  are used for authenticating pushes.
* Correct cross-reference to point to browse.d.d.o.
* Move dgit.default.* to main CONFIGURATION section.

Administrivia:
* Add missing close of #793060 to changelog for version 1.1.

26. By Ian Jackson

Bugfixes:
* When source package contains things called .git (even files, and even
  in subdirectories), remove them. Closes:#793671.
* Work around curl -sS -I printing `HTTP/1.0 200 Connection established'
  before the actual header, so dgit works with https_proxy set (!)
* --new is needed for read access to packages in NEW, too. Document
  this, and make it work properly.
* Work around #793471 (madness with $SIG{__WARN__} and Perl's system
  builtin): move $SIG{} setting into setup_sigwarn in Dgit.pm, and
  check getppid.
* When invoking git-buildpackage via dgit gbp-build, consider our
  command line arguments when massaging the dpkg-buildpackage arguments,
  so that we don't end up giving dpkg-buildpackage contradictory
  instructions.
* Cope with new git-buildpackage which provides gbp, rather than the
  eponymous command, on PATH.

Configurability:
* Honour dgit-distros.DISTRO.cmd-CMD and .opts-CMD. Closes:#793427.
* Make configuration able to prevent dpkg-mergechangelogs setup.
* Provide dgit setup-new-tree (like dpkg-setup-mergechangelogs
  but only does it if not disabled in config).
* Set up git user.email and user.name from distro access config
  or DEBEMAIL/DEBFULLNAME. Closes:#793410.
* When key to use not specified any other way, use the debian/changelog
  trailer line. Closes:#793423.
* Honour --git= (mostly).

Documentation:
* Fix some manpage typos. [ Richard Hartmann ]
* Manpage said that --clean=check was -wn but that is --clean=none;
  correctly document that --clean=check is actually -wc.
* Document that up to -DDDD (not just -DD) is meaningfully different.
* Document that -cname=value applies only for this run.
* Improve manpage comment about defining a new distro.
* Document that --quilt=linear is the default for Debian.
* Fix a formatting problem in --build-products-dir= doc.
* In manpage, do not seem to imply that NMU should be of only one
  new commit.
* Qualify to Debian the manpage comment about how to do NMU.
* In discussion on how to start using dgit when already using git, do
  not imply/assume that existing git history will have identical trees
  to dgit history.
* Remove stray sentence in config section of manpage.
* Manpage: Clarify wording of readonly config.
* Manpage: Better cross-references for -k and keyid.
* dgit(7): No longer say that dgit-repos lives on Alioth.

Improvements:
* Introduce more sophisticated protocol negotiation for rpush.
* Do not quote `:' in shellquote.
* Print a supplementary message when push fails, giving advice to
  the user about how to retry. Closes:#793144.
* Slurp in entire git config, for better performance.
* Rename `git-build' operation to `gbp-build' to make it clearer what
  it's for. Keep the old name as an alias.
* Show `dgit sbuild' in usage message.
* When we are using dpkg-buildpackage to clean before using it to also
  do the build, let it do its cleaning thing as part of its run, rather
  than running it twice. When we are _not_ supposed to be using
  dpkg-buildpackage to clean, but we are running it to do the build,
  pass -nc.
* Also suppress spurious runs of the clean target when building using
  git-buildpackage.
* When exec fails, always print the program name in the error message.

Infrastructure:
* Infrastructure: Get mirroring right for fresh repos of existing
  packages (!)

Packaging, cleanups, debugging and test suite:
* Fix Vcs-Git and Vcs-Browse to refer to chiark. (The dgit-repos on
  alioth aren't suitable right now because the master there can
  currently only be updated with an actual upload, ie dgit push.)
* Make warnings fatal in dpkg-repos-admin-debian, dgit-ssh-dispatch
  (using setup_sigwarn).
* Make warnings fatal in tstunt/dpkg-parsechangelog (directly).
* Test suite: Honour DGIT_TEST_DEBUG=''.
* With -DDDD, print out all gitcfg references (copious!)
* Fix a debug message in the obsolete sshpsql archive access driver.
* Test suite: More automatic enumeration of tests.
* Test suite: Provide tests which check that all our various build
  operations run the right targets as expected (ie, that we are massaging
  the arguments to dpkg-buildpackage, and suppressing our clean target,
  etc., correctly).

25. By Ian Jackson

Improvements:
* Switch to new production git repositories for reading.
  (this can no longer divert to alioth). Public readonly access
  now works. Closes:#791447.
* Memoise git config lookups (big speedup!)
* Provide -wdd aka --clean=dpkg-source-d. Closes:#792433.
* Provide -wc aka --clean=check.

Manpage updates:
* Remove some obsolete caveats from BUGS.
* Reorganise and complete the configuration section.
* Remove obselete comment about DMs not being able to push.
  We have, for now, a way to add keys manually. Closes:#720173.

Access machinery:
* Remove configuration relating to alioth.
* Provide for different access mechanisms when pushing.
* Provide for configurable git url suffix.
* Allow git-url to be '' to force fallback to git-proto etc.
* Provide for checking git presence via http[s].
* Do some quoting on debug output (needed if the server might not
  be trustworthy and might send us bad stuff).
* Talk to push.dgit.debian.org, rather than the .debian.net alias.

Infrastructure:
* Provide for mirroring git updates to a different server.
* Provide cgit-regen-config command for cgi-grnet-01.
* Make dgit-ssh-dispatch not spew (harmless) warnings if caller
  tries for a shell session (ie SSH_ORIGINAL_COMMAND not set).

Cleanups:
* Remove an obsolete comment from the code.
* Improve an error message from dgit-repos-policy-debian.
* Test suite: Break out t-make-hook-link.
* Fix a manpage typo.

24. By Ian Jackson

INCOMPATIBLE CHANGES:

* Client uses new infrastructure:
  - Check for new dgit git service on dgit-git.debian.net (ie
    gideon.debian.org), with transition plan based on diversion feature.
    Closes:#720172.
  - Old versions of dgit will stop working when the server-side handle is
    pulled.

* dgit git trees no longer contain .pc for format `3.0 (quilt)' source
  packages. Closes:#764606.
  - It is deleted whenever we find it.
  - Older versions of dgit will choke on trees without .pc.
  - (When doing quilt fixup, we recreate a suitable .pc in a temporary
    directory so that we can do dpkg-source --comit.)

* All users are urged to upgrade ASAP.

Other significant improvements:

* When generating quilt patches, try to linearise the git history into a
  series of individual new patches for debian/patches. Closes:#770710.

* When receiving a push with dgit-repos-server, update the server's
  refs/heads/master if we are pushing to what the distro regards as a
  relevant branch, and the push would ff master. Closes:#728209.

* For non-Debian distros, distro version release tags contain distro
  name a la DEP-14 (rather than hardcoding `debian/').

* Set up a merge driver for debian/changelog. Closes:#769291.

* --clean=git and --clean=none cause dgit to pass -nc to
  dpkg-buildpackage, suppressing calls to the package's clean target.
  Also, expand the documentation in this area slightly. Closes:#768590.

* Provide --clean=git-ff (aka -wgf), which is useful for dgit itself (!)

Minor improvements:

* Reduce some noise output and improve the clarity of some messages.
* Be more careful about tag updates during fetch: only update tags
  referring to uploads to distro we are trying to fetch from.
* Change realpath dependency to `coreutils (>= 8.23-1~) | realpath'
  (Closes:#786955.)

Bugfixes:

* Fix handling of rmadison-based and gitless distros (e.g., Ubuntu).
* Add missing `gpgv' to test dependencies in debian/tests/control.
* Strip `-b <branch>' from contents of Vcs-Git header, when setting up
  the vcs-git remote. Closes:#759374.
* Do not offer wget as an alternative dependency to curl. We always
  unconditionally invoke curl and have no code to use wget.
  Closes:#760805.
* Complain about lack of cuddled values for value-taking single-letter
  options, rather than thinking the user meat an empty value.
  Closes:#763332.
* Reject (rather than ignoring) further options merged witth -wn, -wg,
  -wd.
* Fix inaccurate error message when archive's git hash is not an
  ancestor of git repo's git hash.
* Detect and bomb out on vendor-specific `3.0 (quilt)' patch series.
* Fix the rules clean target to remove test results and output.

Documentation improvements:

* Break out dgit(7) from dgit(1).
* Provide example workflow for dgit rpush. Closes:#763334.
  (Also part of the fix for #768470.)
* Document that dgit repos are cloneable with git, in dgit(1)
  section MODEL. [Andreas Barth.] Closes:#768470.
* Better documentation for quilt series handling.
* Document under `dgit push' that it is best to build with dgit too.
  Closes:#763333.
* Other minor clarifications and improvements.

Behind-the-scenes work:

* Use ftpmasterapi archive query method.
  (Closes:#727702. Also partly obsoletes #768470.)
* New dgit-infrastructure binary package containing dgit-repos-server et
  al. Client users probably don't want this stuff. Also, it provides a
  convenient way to publish the dependencies.
* Many many bugfixes to the server side (dpkg-repos-server et al.).
* Add :..; prefix to ssh remote commands, for the benefit of future
  forced command wrappers. Implicitly, this defines a new ssh-based
  command protocol. Closes:#720174, #720175.
* Distro access configuration handling changes (should not be noticeable
  to most users).
* In places, significant restructuring or tidying up.
* Turn all perl warnings into errors using $SIG{__WARN__}.

23. By Ian Jackson

Use Dpkg::Version::version_compare everywhere, not
Dpkg::Version::version_compare_string. The latter is entirely wrong,
meaning that dgit would get many version comparisons wrong.
Closes:#768038.

22. By Ian Jackson

Bugfixes:
* Clone removes destination directory on error. Closes:#736153.
* Work with wheezy-backports (and keep squeeze-backports working too).
  Closes:#736524.
* Work in read-only no-git-history mode with Ubuntu. You still have
  to pass -dubuntu. Closes:#751781.
* Use mirror.ftp-master.debian.org DNS alias rather than coccia.
  Closes:#752602.
* Check hashes of files ourselves rather than running dget to
  re-retreive the .dsc.
* Check SHA-256 of .dsc against hash from archive_query (ie projectb)
  rather than letting dpkg-source do a signature verification.
  Closes:#737619. Closes:#737625.
* Treat .dsc as bytes, just like everything else, rather than letting
  HTTP::Message convert it to a Perl unicode string which the rest of
  the program mishandles. Closes:#738536.

Minor improvements:
* Include canonicalised suite name in signed tag message.
* Mention cross-version dgit rpush incompatibility in manpage.
* Check for rpush protocol version incompatibility and crash early
  if incompatible.
* New script tests/using-intree for running tests on the source tree.
* Do not spew diff output to terminal (by default). Print sensible
  message instead. Closes:#736526.
* Print better message for lack of configuration settings.
* Document that dgit rpush needs gnupg and your public key on the build
  host. Closes:#736529.
* Fix a manpage reference to `--dget=' where `--dgit=' was intended.
* Provide t-archive-process-incoming and t-archive-query subroutines for
  regression test scripts to use.
* Print better message for unknown operations.
* Provide `dgit clean'. Closes:#736527.
* When cloning, set up a remote `vcs-git' from the package's Vcs-Git
  (and put an appropriate caveat in the manpage). Closes:#740687.
  Closes:#740721.
* Improve error message for .dsc having already been signed (iff
  using libdpkg-perl 1.17.x). Closes:#731635.
* Improve error message for .dsc parsing failures more generally.
* Better reporting of child exit statuses (esp. deaths due to signals).
* In rpush, on protocol error talking to build host, check if the
  subprocess died and report differently if so. Closes:#736528.
* Fixed a manpage typo.
* When tests invoke dgit, use --dgit= so that subprocesses use our
  dgit rather than system one.
* Add a test for dgit rpush.

Major new feature, currently stalled awaiting server infrastructure:
* dgit-repos-server: New program for receiving signed-tag-based
  pushes. Corresponding support in dgit itself, but not currently
  used by default for any distro.
* Bring forward push of the version tag ref so it happens alongside
  the push of the suite branch ref.
* New git-check and git-create methods "true" which are no-ops.
* test-dummy-drs `distro': for testing dgit and dgit-repos-server.

21. By Ian Jackson

Bugfixes relating to unclean trees:
* Run a clean (of the specified type) before any build operation; do
  this with `dpkg-buildpackage -T' clean if necessary, so -wd now works
  with all the building methods.
* Refuse to do quilt fixup (explicitly requested, or as a result of
  build) if the tree contains ignored files. Closes:#731632.

Error message improvements:
* Use failedcmd to report errors when ssh psql fails. Closes:#734281.
* failedcmd prints $us, not $_[0] - ie, dgit doesn't pretend,
  in the error message, to be its child.
* Do not report the (irrelevant) $? when madison parsing fails.

Better workflow flexibility:
* Provide --build-products-dir option (and corresponding semantics
  for -C) to specify where to find the files to upload. Closes:#731633.

Support for Debian backports suites:
* New quirks infrastructure in configuration and internals,
  for suites (or perhaps distros) which are a bit like others.
* Use correct default archive location.
* Compute "-v" option default value correctly.
* Closes:#733954.

Packaging improvement:
* Add `Testsuite: autopkgtest' to debian/control. (This will only have
  the right effect with recent enought dpkg; it will generate a harmless
  warning with earlier versions of dpkg.)

20. By Ian Jackson

Use newest (not oldest) version currently in suite when calculating
what value to use for -v<version> by default. Closes:#732781.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.

Subscribers