News and announcements

git-ubuntu 1.1 released

Written for git-ubuntu by Robie Basak on 2023-08-31

I have released git-ubuntu 1.1. The major addition is the rich history
adoption via changes files and the corresponding `git ubuntu
prepare-upload` command, which many of you have been using already via
the edge channel. This feature is now available in the stable channel.

Install with:

    sudo snap install --classic git-ubuntu

or, to switch the already-installed snap back to the stable channel from
the edge channel:

    sudo snap refresh --stable git-ubuntu

Preliminary documentation is now available:

    https://canonical-git-ubuntu.readthedocs-hosted.com/en/latest/

In between 1.0 and 1.1 were changes to the importer service itself to
import all packages into Launchpad, for which there was no release of
the tooling; hence the apparent delay between releases this time.

Notable changes from 1.0 to 1.1
-------------------------------

Rich history is adopted if a reference exists to it in the changes file
associated with an upload, provided that it can be retrieved and matches
the upload itself. A new `prepare-upload` subcommand provides a low
level CLI interface that developers can script against to integrate into
their workflows. See the howto documentation[1] for details.

Steve Langasek has written an experimental higher level wrapper that
currently lives in the git-ubuntu source tree as `sandbox/gu-build` to
support some common workflows, such as to automatically include the
correct `dpkg-genchanges -v` option automatically for the upload of
package merges. See his mailing list post[2] for details.

The snap is now based on core20.

All packages are imported by default and the manual allowlist
functionality is removed. The denylist exists to stop futile retries for
edge case packages that fail to import; my goal is to whittle this down
to zero.

The importer now automatically sets a repository as default for its
target after it is imported. This means that manual intervention for new
source packages is no longer required before `git ubuntu clone` will
work. Thanks to the Launchpad team for implementing the access control
needed for the importer to do this safely.

Commits included in this release
--------------------------------

Andreas Hasenack (2):
      Import redis, requested by sergiodj
      Add libtpms to import list

Athos Ribeiro (3):
      Do not rely on host perl stack
      Test dpkg tooling confinement
      Check if perl dependent commands are runnable

Brian Murray (2):
      import packages for the SRU team
      add in virtualbox packages

Bryce Harrington (14):
      whitelist: Drop php-horde-*
      whitelist: Add php7.4 and recently touched php-* packages
      Add fish to import whitelist
      Add php-league-commonmark to whitelist
      Add phpunit to whitelist
      Whitelist *php* packages from main and universe
      Whitelist *ruby* packages from main and universe
      build: Ensure fetch_orig() always returns a list
      Add composer to the whitelist.
      Add python-sqlalchemy-utils to the whitelist.
      Add python-django-formtools to the whitelist.
      Add several packages to the whitelist.
      Add three packages for +1 maintenance to the whitelist.
      Add thin to the whitelist.

Christian Ehrhardt (3):
      whitelist: add openmpi
      whitelist: add packages related to mdevctl MIR (LP: #1889248)
      add libfabric to whitelist

Lena Voytek (1):
      Updates for inclusive naming

Paride Legovini (1):
      snapcraft: drop --enable-experimental-package-repositories

Robie Basak (135):
      Update release process to also close fixed bugs
      prometheus-alertmanager changelog date override
      Add west-chamber to whitelist
      Add xtables-addons to whitelist
      Remove import exception catching
      Handle pygit2 type attribute API change
      Fix Python string escaping
      Handle git email address configuration fixture
      Do not raise StopIteration() directly
      logging.warn() -> logging.warning()
      Add missing dependency on ubuntutools
      Update packaging to be based on 20.04
      Add recent whitelist requests
      Fix tests when run in non-UTC timezones
      Also add ansible-base to whitelist
      Merge branch 'core20'
      Add ubuntu-dev-tools for update-maintainer
      Drop GPG key ID workaround
      Drop pinning
      Drop pygit2_signature_tuple
      Drop GitUbuntuRepository.descendant_of()
      Correctly compare package version strings
      Instantiate HTTPError better in tests
      Add smart whitelist support
      Merge branch 'smart-whitelisting'
      Merge branch 'lp1924983'
      snap: add python3-secretstorage for GNOME keyring
      Merge branch 'keyring-secretstorage'
      Refactor validate_upload_tag()
      Rename validate_upload_tag()
      Pass through spi
      Add get_changes_file_url() method
      Add rich history import from changes files
      Merge branch 'rich-history-from-changes-file'
      source_builder: fix test changelog sign-off line
      Add integration test for sed
      Fix and test update-maintainer integration
      Test and fix git-ubuntu.reconstruct-changelog
      Include all dpkg decompressors in the snap
      Merge branch 'integration-fixes'
      Merge remote-tracking branch 'bryce/fix_export_orig_empty_tarballs_traceback'
      Add experimental "push-for-upload" subcommand
      Whitelist Google-related packages for Utkarsh
      snap: set grade to stable
      Merge remote-tracking branch 'racb/snap-grade-stable'
      Update scriptutils docstrings
      scriptutils/poller: explicitly specify gpg paths
      poller: add --extra-trusted-keyring option
      Merge branch 'push-for-upload'
      Add changelog date override for prips
      Add comment to change date override file
      Rename push-for-upload to prepare-upload
      prepare_upload: factor out push function
      prepare-upload: add mangle feature
      Change repository owner to ~git-ubuntu-import
      Fix git-ubuntu.merge-changelogs name typo
      Merge remote-tracking branch 'athos-ribeiro/leaking-perl-with-wrappers'
      Merge remote-tracking branch 'lvoytek/master'
      Update maintainer email address
      Update email address to request an import
      Update email address default used in tests
      Update default bot account name
      Clean up get_head_versions()
      Use date_created to determine head versions
      Add unit test for get_head_info()
      GitUbuntuSourceInformation: dependency injection
      launchpad_versions_published_after: refactor call
      launchpad_versions_published_after: drop return
      Rewrite launchpad_versions_published_after
      Refactor _head_version_is_equal
      Add test to accept refs that contain '+'
      Improve documentation on validation constants
      submit: default to ~canonical-server-reporter
      More project renames
      Add comment on missing observability
      Add changelog date override for gmsh
      scriptutils: remove pool_map_import_srcpkg()
      _main_with_repo: simplify if statement
      importer: flip sense of push arguments
      importer: flip CLI argument default to not push
      importer-service-worker: add --no-push argument
      Move import_srcpkg() to importer_service_worker.py
      Add production systemd service definitions
      Add mass import failures to denylist
      Add further mass import failures to denylist
      denylist: remove successful imports
      denylist: add known failures and refer to bugs
      Add further changelog date overrides
      Add further changelog date overrides (2)
      More edge case changelog date parsing
      poller: remove allowlists and phasing
      denylist: drop succeeding packages
      Handle missing refs on rich history fetch
      import: add --set-as-default-repository feature
      importer-service-worker: set as default repository
      Drop openssh from denylist
      Initial Sphinx docs
      doc: use standard style
      doc: requirements.txt and configuration for RTD
      doc: improve not up-to-date howto
      doc: improve deletion how-to
      doc: add rich history how-tos
      doc: add changes file reference
      doc: style
      doc: clarify assumptions in rich history howto
      doc rich history: clarify that we push
      doc rich history: add mangle howto
      doc rich history: specify beta snap requirement
      doc rich history: point out branch retention requirement
      Fix typos in test docstrings
      prepare-upload: add test for git+ssh:// rewrite
      prepare-upload: refactor header data handling
      prepare-upload: rewrite LP git+ssh:// URLs
      prepare-upload: test for invalid option on failure
      prepare-upload: output invalid option on failure
      prepare-upload: add test for ssh:// URL rewrites
      prepare-upload: handle ssh:// rewrites
      doc: more on test builders
      doc: howtos on individual pages
      doc: add keyring
      snap.sh: do not generate gpg subkeys
      snap.sh: run snapcraft with sudo
      importer: ignore rich history requiring auth
      Drop amavisd-new from denylist
      Rewrite prepare-upload to fetch before push
      prepare-upload: add --force-push
      prepare-upload: allow arguments either side
      prepare-upload: fix docstrings
      prepare_upload: rename printargs to establish_args
      sandbox/gu-build: update for API changes
      sandbox/gu-build: remove duplication of CLI args
      Add changelog date override for dhcpcd
      Update .readthedocs.yaml
      Revert "snap.sh: run snapcraft with sudo"
      version: bump to 1.1

Sergio Durigan Junior (9):
      Add frr to the whitelist.
      Add node-uid-number to the whitelist.
      Add python-azure to whitelist
      Add mailman3 to the whitelist.
      Add gssproxy to the whitelist.
      Add sane-airscan to the whitelist.
      Add pgloader to the whitelist
      Add ruby-net-ssh to the whitelist
      Accept ref names containing plus sign

Steve Langasek (10):
      mk-build-deps doesn't like version 0
      Initial implementation of a dpkg-buildpackage wrapper
      Add support for figuring -v and -sa options to dpkg-buildpackage
      Use the Changelog.upstream_version property instead of reimplementing
      Only append -v option if the target branch's version is in our changelog
      mk-build-deps doesn't like version 0
      Use the dowload cache for tarballs
      drop stray unused variable left over from development
      make the gu-build exit code match that of dpkg-buildpackage
      Initial support for 'gu-build' wrapper that wraps dpkg-buildpackage

[1] https://canonical-git-ubuntu.readthedocs-hosted.com/en/latest/howto/upload.html
[2] https://lists.ubuntu.com/archives/ubuntu-devel/2023-June/042595.html

git-ubuntu 1.0 released

Written for git-ubuntu by Robie Basak on 2020-09-24

I'm pleased to announce that we now consider git-ubuntu ready for general use. Coinciding with this, the unapplied tags and branches that are published by git-ubuntu in Launchpad can also now be considered maintained and stable.

git-ubuntu 1.0 is now published to the stable snap channel. Install with:

    sudo snap install --classic git-ubuntu

Imported repository status
--------------------------

Repositories for 5560 packages are now maintained in Launchpad and their "unapplied" branches and tags are considered stable. This includes nearly all packages in main and some packages in universe that have been imported on request.

I expect to start expanding coverage to the entire archive soon.

"Unapplied" means the branches prefixed `debian/` and `ubuntu/`, and the tags prefixed `import/`. These are the primary branches and tags intended for routine use by distribution developers.

Branches and tags such as `pristine-tar`, `dsc` and `upstream/*` are intended to ship content rather than history, so are out of scope of "stability" in the fast-forwarding sense.

The "applied" branches and tags will be declared stable in a future release.

Changes from 1.0-rc1 to 1.0
---------------------------

The importer service has broken out into worker processes for better concurrency.

A number of import edge cases concerning "bad" input data are now handled gracefully and in a stable way.

One importer bug related to the edge case where the same package version string was published in Debian and Ubuntu but with different contents has been fixed.

Some snap packaging related bugs are fixed.

Commits included in this release
--------------------------------

Andreas Hasenack (16):
      Add nodejs to whitelist
      Add realmd and adcli to whitelist, these have MIRs already in progress
      Update whitelist: golang-yaml.v2, golang-testify, golang-go.uber-zap
      Import golang-github-fsouza-go-dockerclient
      Add golang-github-go-ldap-ldap and golang-go.uber-zap to import list
      Import influxdb
      Import prometheus packages
      golang-github-gophercloud-gophercloud and golang-github-prometheus-client-golang added to the whitelist
      Import golang-github-prometheus-client-model and golang-github-prometheus-common
      Import google-gogoprotobuf
      Import liburing, about to be MIRed
      Import sshuttle
      Import golang-github-pkg-errors
      Import fish
      Import many golang packages for Kanashiro
      Import haveged (ddstreet request)

Rafael David Tinoco (2):
      Import uftrace (and dependency) for rafaeldtinoco
      Import python-configshell-fb (targetcli-fb MIR)

Robie Basak (51):
      Add terminating newline to importer notes
      pylint: add py.path to ignored-modules
      Use the same pylintrc locally as in CI
      Drop pylint and astroid pinning
      Move request_new_imports() to importer_service.py
      Move package list read to importer_service
      Add database concurrency support
      Add ipc_worker table
      Running requests must now never get superseded
      Test refactor
      Do not return requests for packages with imports in progress
      Embed bash and use it in our wrappers
      Use the host's ssh client
      Add new IPC-based service components
      Merge branch 'ipc-concurrency'
      Merge branch 'snap-fixes'
      Add additional kernel packages to blacklist
      Add additional kernel packages to blacklist
      Temporarily blacklist "slow to reimport" packages
      Test handling for non-UTF8 in changelog notes
      Handle non-UTF8 characters in changelog notes
      Factor out changelog date parsing
      Add parsing support for edge case dates
      Ensure the locale is set consistently
      Remove temporary blacklist of fixed packages
      poller: log package count after startup
      Handle empty changelog author names
      Merge branch 'importer-notes-newline'
      Merge branch 'empty-changelog-author'
      Merge branch 'poller-logging'
      Add test case for extra angle bracket parsing
      Fix extra angle bracket parsing
      Merge branch 'multiple-angle-brackets'
      Add author_date override support
      source_builder: add changelog date customization
      Add changelog date overrides
      Revert "Ensure the locale is set consistently"
      Merge branch 'revert-locale'
      Fix typo in changelog date override
      Remove all pull overrides
      Remove all parent overrides
      Remove all patch overrides
      Re-enable packages that were being reimported
      Fix some golang whitelist source package names
      Add test for get_all_reimport_tags()
      Fix get_all_reimport_tags() prefix search
      Add some missing docstrings
      Add pkgbinarymangler to blacklist
      Retry database reads on lock timeouts
      Add more kernel packages to blacklist
      version: bump to 1.0

git-ubuntu 1.0-rc1 released

Written for git-ubuntu by Robie Basak on 2020-05-29

The git-ubuntu snap has been updated to 1.0-rc1 in the edge channel. Once all reimports are complete, this is a candidate to be released as 1.0 and published to the beta and stable channels at that point.

I will send a separate announcement about the upcoming reimports necessary to bring all existing imported repositories to the 1.0 standard.

Changes from 0.10.1 to 1.0-rc1
------------------------------

Significant changes in this release are the removal of the experimental build, lint, review, import-local and import-ppa subcommands. We expect to reintroduce stable versions of these subcommands post-1.0, subject to demand and priority.

Other changes include fixes for various importer edge cases, and the facility to manage reimport requests in production for the upcoming reimports.

Commits included in this release
--------------------------------

Andreas Hasenack (2):
      Add sbuild-launchpad-chroot, requested by smoser on IRC
      Import squashfs-tools-ng

Bryce Harrington (6):
      Remove import-local cli command
      Remove import-ppa cli command
      Remove review cli command
      Remove build command
      Remove lint command
      Move derive_target_branch() to git_repository

Robie Basak (25):
      Don't add changelog notes fetch refspec for !pkg
      Fix changelog timezone parsing
      Merge branch 'fix-remote-add-changelog-notes'
      Merge branch 'fix-changelog-timezone-parsing'
      Use the same repo fixture in round trip test
      Test rich history preservation unescaped patch bug
      Fix rich history preservation unescaped patch bug
      Fix docstring
      Release process: change announcement destination
      Release process: automatic tag annotation
      Release process: add service restart instructions
      Add to kernel blacklist
      Add reimport support to the importer service
      Add --lp-user and --lp-owner to importer service
      Add linux-raspi to blacklist
      Convert import request structure to namedtuple
      Merge branch 'reimport-service'
      Merge branch 'release-process-changes-2'
      Shorten test function names
      Add tests for rich history edge cases
      Refactor some rich history tests
      Reformat for subsequent changes
      Allow empty contents when porting rich history
      Allow fast-forwards when porting rich history
      version: bump to 1.0-rc1

0.9.2 Released

Written for git-ubuntu by Bryce Harrington on 2020-02-14

This micro-release of git-ubuntu brings in several changes important on
the backend service. This release is to enable rolling these changes
out into production. There are no user-visible changes or bugfixes to
the frontend.

Support for tracking multiple changelog parents addresses a long
standing edge case when importing packages that have a given package and
version string published via more than one source tree in Launchpad.
For example, when Debian and Ubuntu managed to publish the same package
version but with different deltas. (LP: #1761332)

The recently added systemd service for the importer backend
unfortunately broke sending of diagnostic emails to the administration
team. This release includes a fix for that and provision of additional
detail information from the journal log for importer faults. See
doc/README.testing for details on this new testing capability.

A major improvement to git-ubuntu's self test now allows it to be run
against the snap installation. Previously, one needed to build a new
snap package in order to run the self test.

Shortlog
--------
Andreas Hasenack (4):
      Group and order my requested packages
      add isc-kea
      add ipmctl to the persistent memory stack
      Add nsscache, volatildap and vmem to the whitelist

Bryce Harrington (5):
      systemd: Fix journal output
      systemd: Define dependence on network online
      mailer: Connect and disconnect from smtp service when sending emails
      mailer: Avoid bytes->Text->bytes conversion on mail body
      version: bump to 0.9.2

Nishanth Aravamudan (1):
      importer: drop unused variable

Robie Basak (19):
      Collapse dual (un)applied code using an enum
      Merge branch 'applied-enum'
      .git escaping: fix test parameter comments
      .git escaping: add test for failing case
      .git escaping: fix failing case
      Add style notes on the use of xfail
      Add importer parent commit test for no parents
      importer: call using kwargs
      test_get_existing_import_tags: squash applied
      Add test: test_get_existing_import_tags_ordering
      Sort reimport tags before using them
      Allow for multiple changelog parents
      test_get_import_commit_msg: multiple parent case
      Generalise test_get_changelog_parent_commits
      Add multiple changelog parent tests
      Support multiple changelog parents
      get_changelog_parent_commits: use PatchState enum
      Add further docstrings and comments
      Merge branch 'xfail-style'

Scott Moser (1):
      Add support for executing self test in checked out tree.

Past Releases
-------------

For a list of previous release announcements, please see:

    https://launchpad.net/usd-importer/+announcements

0.9.1 Released

Written for git-ubuntu by Robie Basak on 2020-01-29

The git-ubuntu snap package has been updated to 0.9.1 in all snap
channels. Note that the previously 0.8.0 never got released to the
stable channel, so users following the stable channel will also receive
changes detailed in the previous release announcement[1].

Changes from 0.8.0 to 0.9.1
---------------------------

One notable change is that "git ubuntu build-source" no longer exists
and has been replaced with "git ubuntu build -S" (or --source) to mirror
the traditional tooling. The CLI help output has also been polished.

As with the previous release, the majority of other changes are related
to quality improvements and are not intended to result in user-visible
changes. Most of this is in refactoring and the addition of further
tests; Bryce has also continued to overhaul the importer service daemon
for reliability and logging.

If you are following the stable snap channel, see also the previous
release announcement[1] for further changes that will land in the stable
channel in addition to the changes in this release.

Commits included in this Release
--------------------------------

Andreas Hasenack (2):
      Add pyzmq to the source whitelist
      Add linux-snapdragon to import blacklist

Bryce Harrington (15):
      doc: Define a release process
      Cleanup --help output formatting and show all available commands
      build: Deprecate 'build-source' in favor of 'build -S'
      Add missing dependency to README.md directions
      README.md: Recommend use of a separate import directory for local usage
      git_repository: Copyedit code docs and comments
      Refactor importer to encapsulate sendmail logic to its own object
      Send fewer package import/failure emails
      systemd: Include last 100 lines from journal in system failure emails
      docs: Fix path for script discussed in importer service docs
      systemd: Fix invocation of failure-email.sh
      systemd: Use the installed symlink for running importer
      systemd: Fix service name
      systemd: Drop explicit setting of StandardOutput to journal
      Log when emails are sent, not when they're not sent

Rafael David Tinoco (2):
      Add libslirp to whitelist.
      Add pyagentx to whitelist (LP: #1855943).

Robie Basak (24):
      Make xfail passes fail the test suite
      Import Placeholder to avoid qualification
      Add docstring for Commit constructor
      repo_builder.Commit: default to empty tree
      SourceSpec: change default to non-native
      Break out repo_builder tests
      Test conciseness, consistency and terminology
      Calculate validation_repo only when it is used
      Add style convention on import statements
      repo_builder: add Commit.from_spec method
      source_builder: add mutate attribute to SourceSpec
      Add importer tests
      Merge branch 'importer-add-tests'
      Add some edge case changelog parsing tests
      Fix changelog parsing
      Add Changelog.git_authorship() method
      Rewrite commit_tree_hash into commit_source_tree
      Change main phasing default to 100%
      Add ubuntu-dev-tools to the import whitelist
      Merge branch 'phasing-defaults'
      version: bump to 0.9.0
      Drop pin on lazr.restfulclient
      self-test: be more explicit when failing
      version: bump to 0.9.1

Past Releases
-------------

For a list of previous release announcements, please see:

    https://launchpad.net/usd-importer/+announcements

[1] https://launchpad.net/usd-importer/+announcement/15370

15 of 14 results

Announcements