Skip to content

Rethinking release artifacts #348

Closed

Description

@lazyfrosch

While updating terminator in Debian I wasn't really to use the sdist tarball, as it is missing multiple files, including:

  • po files
  • icons
  • stylesheets
  • some tests
  • license and other metadata

We should probably do a git archive on release and sign this.

Anyways, great work on the release @mattrose âĪïļ

Current doc:
https://github.com/gnome-terminator/terminator/blob/v2.0.1/RELEASE.md#signed-artifacts

Diff:
https://salsa.debian.org/python-team/packages/terminator/-/commit/45f77a074ea1f0e4919a01047c434ddf6354c5e5

Activity

  1. mattrose commented on Dec 31, 2020

    @mattrose
    Member

    We could just do a 2.1 release with the necessary artifacts.

    The tests that we have are in 2.0.1. I thought the icons and stylesheets were in there too, but I may be wrong.

  2. mattrose commented on Dec 31, 2020

    @mattrose
    Member

    This is what's currently generated by python setup.py sdist

    terminator-2.0.1/
    terminator-2.0.1/.gitignore
    terminator-2.0.1/INSTALL.md
    terminator-2.0.1/MANIFEST.in
    terminator-2.0.1/PKG-INFO
    terminator-2.0.1/README.md
    terminator-2.0.1/data/
    terminator-2.0.1/data/icons/
    terminator-2.0.1/data/icons/HighContrast/
    terminator-2.0.1/data/icons/HighContrast/16x16/
    terminator-2.0.1/data/icons/HighContrast/16x16/actions/
    terminator-2.0.1/data/icons/HighContrast/16x16/actions/terminator_active_broadcast_all.png
    terminator-2.0.1/data/icons/HighContrast/16x16/actions/terminator_active_broadcast_group.png
    terminator-2.0.1/data/icons/HighContrast/16x16/actions/terminator_active_broadcast_off.png
    terminator-2.0.1/data/icons/HighContrast/16x16/actions/terminator_horiz.png
    terminator-2.0.1/data/icons/HighContrast/16x16/actions/terminator_receive_off.png
    terminator-2.0.1/data/icons/HighContrast/16x16/actions/terminator_receive_on.png
    terminator-2.0.1/data/icons/HighContrast/16x16/actions/terminator_vert.png
    terminator-2.0.1/data/icons/HighContrast/16x16/apps/
    terminator-2.0.1/data/icons/HighContrast/16x16/apps/terminator-custom-commands.png
    terminator-2.0.1/data/icons/HighContrast/16x16/apps/terminator-layout.png
    terminator-2.0.1/data/icons/HighContrast/16x16/apps/terminator-preferences.png
    terminator-2.0.1/data/icons/HighContrast/16x16/apps/terminator.png
    terminator-2.0.1/data/icons/HighContrast/16x16/status/
    terminator-2.0.1/data/icons/HighContrast/16x16/status/terminal-bell.png
    terminator-2.0.1/data/icons/HighContrast/22x22/
    terminator-2.0.1/data/icons/HighContrast/22x22/apps/
    terminator-2.0.1/data/icons/HighContrast/22x22/apps/terminator-custom-commands.png
    terminator-2.0.1/data/icons/HighContrast/22x22/apps/terminator-layout.png
    terminator-2.0.1/data/icons/HighContrast/22x22/apps/terminator-preferences.png
    terminator-2.0.1/data/icons/HighContrast/22x22/apps/terminator.png
    terminator-2.0.1/data/icons/HighContrast/24x24/
    terminator-2.0.1/data/icons/HighContrast/24x24/apps/
    terminator-2.0.1/data/icons/HighContrast/24x24/apps/terminator-custom-commands.png
    terminator-2.0.1/data/icons/HighContrast/24x24/apps/terminator-layout.png
    terminator-2.0.1/data/icons/HighContrast/24x24/apps/terminator-preferences.png
    terminator-2.0.1/data/icons/HighContrast/24x24/apps/terminator.png
    terminator-2.0.1/data/icons/HighContrast/32x32/
    terminator-2.0.1/data/icons/HighContrast/32x32/apps/
    terminator-2.0.1/data/icons/HighContrast/32x32/apps/terminator-custom-commands.png
    terminator-2.0.1/data/icons/HighContrast/32x32/apps/terminator-layout.png
    terminator-2.0.1/data/icons/HighContrast/32x32/apps/terminator-preferences.png
    terminator-2.0.1/data/icons/HighContrast/32x32/apps/terminator.png
    terminator-2.0.1/data/icons/HighContrast/48x48/
    terminator-2.0.1/data/icons/HighContrast/48x48/apps/
    terminator-2.0.1/data/icons/HighContrast/48x48/apps/terminator-custom-commands.png
    terminator-2.0.1/data/icons/HighContrast/48x48/apps/terminator-layout.png
    terminator-2.0.1/data/icons/HighContrast/48x48/apps/terminator-preferences.png
    terminator-2.0.1/data/icons/HighContrast/48x48/apps/terminator.png
    terminator-2.0.1/data/icons/HighContrast/scalable/
    terminator-2.0.1/data/icons/HighContrast/scalable/apps/
    terminator-2.0.1/data/icons/HighContrast/scalable/apps/terminator-custom-commands.svg
    terminator-2.0.1/data/icons/HighContrast/scalable/apps/terminator-layout.svg
    terminator-2.0.1/data/icons/HighContrast/scalable/apps/terminator-preferences.svg
    terminator-2.0.1/data/icons/HighContrast/scalable/apps/terminator.svg
    terminator-2.0.1/data/icons/hicolor/
    terminator-2.0.1/data/icons/hicolor/16x16/
    terminator-2.0.1/data/icons/hicolor/16x16/actions/
    terminator-2.0.1/data/icons/hicolor/16x16/actions/terminator_active_broadcast_all.png
    terminator-2.0.1/data/icons/hicolor/16x16/actions/terminator_active_broadcast_group.png
    terminator-2.0.1/data/icons/hicolor/16x16/actions/terminator_active_broadcast_off.png
    terminator-2.0.1/data/icons/hicolor/16x16/actions/terminator_horiz.png
    terminator-2.0.1/data/icons/hicolor/16x16/actions/terminator_receive_off.png
    terminator-2.0.1/data/icons/hicolor/16x16/actions/terminator_receive_on.png
    terminator-2.0.1/data/icons/hicolor/16x16/actions/terminator_vert.png
    terminator-2.0.1/data/icons/hicolor/16x16/apps/
    terminator-2.0.1/data/icons/hicolor/16x16/apps/terminator.png
    terminator-2.0.1/data/icons/hicolor/16x16/status/
    terminator-2.0.1/data/icons/hicolor/16x16/status/terminal-bell.png
    terminator-2.0.1/data/icons/hicolor/22x22/
    terminator-2.0.1/data/icons/hicolor/22x22/apps/
    terminator-2.0.1/data/icons/hicolor/22x22/apps/terminator.png
    terminator-2.0.1/data/icons/hicolor/24x24/
    terminator-2.0.1/data/icons/hicolor/24x24/apps/
    terminator-2.0.1/data/icons/hicolor/24x24/apps/terminator.png
    terminator-2.0.1/data/icons/hicolor/32x32/
    terminator-2.0.1/data/icons/hicolor/32x32/apps/
    terminator-2.0.1/data/icons/hicolor/32x32/apps/terminator.png
    terminator-2.0.1/data/icons/hicolor/48x48/
    terminator-2.0.1/data/icons/hicolor/48x48/apps/
    terminator-2.0.1/data/icons/hicolor/48x48/apps/terminator-custom-commands.png
    terminator-2.0.1/data/icons/hicolor/48x48/apps/terminator-layout.png
    terminator-2.0.1/data/icons/hicolor/48x48/apps/terminator-preferences.png
    terminator-2.0.1/data/icons/hicolor/48x48/apps/terminator.png
    terminator-2.0.1/data/icons/hicolor/scalable/
    terminator-2.0.1/data/icons/hicolor/scalable/apps/
    terminator-2.0.1/data/icons/hicolor/scalable/apps/terminator-custom-commands.svg
    terminator-2.0.1/data/icons/hicolor/scalable/apps/terminator-layout.svg
    terminator-2.0.1/data/icons/hicolor/scalable/apps/terminator-preferences.svg
    terminator-2.0.1/data/icons/hicolor/scalable/apps/terminator.svg
    terminator-2.0.1/data/terminator.appdata.xml.in
    terminator-2.0.1/data/terminator.desktop.in
    terminator-2.0.1/doc/
    terminator-2.0.1/doc/terminator.1
    terminator-2.0.1/doc/terminator_config.5
    terminator-2.0.1/remotinator
    terminator-2.0.1/setup.cfg
    terminator-2.0.1/setup.py
    terminator-2.0.1/terminator
    terminator-2.0.1/terminator.egg-info/
    terminator-2.0.1/terminator.egg-info/PKG-INFO
    terminator-2.0.1/terminator.egg-info/SOURCES.txt
    terminator-2.0.1/terminator.egg-info/dependency_links.txt
    terminator-2.0.1/terminator.egg-info/requires.txt
    terminator-2.0.1/terminator.egg-info/top_level.txt
    terminator-2.0.1/terminatorlib/
    terminator-2.0.1/terminatorlib/__init__.py
    terminator-2.0.1/terminatorlib/borg.py
    terminator-2.0.1/terminatorlib/config.py
    terminator-2.0.1/terminatorlib/configjson.py
    terminator-2.0.1/terminatorlib/container.py
    terminator-2.0.1/terminatorlib/cwd.py
    terminator-2.0.1/terminatorlib/debugserver.py
    terminator-2.0.1/terminatorlib/editablelabel.py
    terminator-2.0.1/terminatorlib/encoding.py
    terminator-2.0.1/terminatorlib/factory.py
    terminator-2.0.1/terminatorlib/ipc.py
    terminator-2.0.1/terminatorlib/keybindings.py
    terminator-2.0.1/terminatorlib/layoutlauncher.glade
    terminator-2.0.1/terminatorlib/layoutlauncher.py
    terminator-2.0.1/terminatorlib/notebook.py
    terminator-2.0.1/terminatorlib/optionparse.py
    terminator-2.0.1/terminatorlib/paned.py
    terminator-2.0.1/terminatorlib/plugin.py
    terminator-2.0.1/terminatorlib/plugins/
    terminator-2.0.1/terminatorlib/plugins/__init__.py
    terminator-2.0.1/terminatorlib/plugins/activitywatch.py
    terminator-2.0.1/terminatorlib/plugins/command_notify.py
    terminator-2.0.1/terminatorlib/plugins/custom_commands.py
    terminator-2.0.1/terminatorlib/plugins/logger.py
    terminator-2.0.1/terminatorlib/plugins/maven.py
    terminator-2.0.1/terminatorlib/plugins/terminalshot.py
    terminator-2.0.1/terminatorlib/plugins/testplugin.py
    terminator-2.0.1/terminatorlib/plugins/url_handlers.py
    terminator-2.0.1/terminatorlib/preferences.glade
    terminator-2.0.1/terminatorlib/prefseditor.py
    terminator-2.0.1/terminatorlib/regex.py
    terminator-2.0.1/terminatorlib/searchbar.py
    terminator-2.0.1/terminatorlib/signalman.py
    terminator-2.0.1/terminatorlib/terminal.py
    terminator-2.0.1/terminatorlib/terminal_popup_menu.py
    terminator-2.0.1/terminatorlib/terminator.py
    terminator-2.0.1/terminatorlib/titlebar.py
    terminator-2.0.1/terminatorlib/translation.py
    terminator-2.0.1/terminatorlib/util.py
    terminator-2.0.1/terminatorlib/version.py
    terminator-2.0.1/terminatorlib/window.py
    terminator-2.0.1/tests/
    terminator-2.0.1/tests/test_borg.py
    terminator-2.0.1/tests/test_prefseditor_keybindings.py
    terminator-2.0.1/tests/test_signalman.py
    

    I think the only things missing are the stylesheets and po files.

    As to why those aren't there, I'm not sure. Apparently I'm not clear on how setuptools processes the MANIFEST file. I thought it included all files in the directory by default, but apparently it doesn't.

  3. lazyfrosch commented on Dec 31, 2020

    @lazyfrosch
    MemberAuthor

    I see we have a bunch of commits, so maybe useful 👍

    I'm not very familiar with sdist, but IMHO the tarball of sdist should include everything plus generated metadata.

  4. mattrose commented on Dec 31, 2020

    @mattrose
    Member

    Thanks for the compliment on the release 😊 It only needed one do-over 😄

  5. lazyfrosch commented on Dec 31, 2020

    @lazyfrosch
    MemberAuthor

    I would generate the artifact like this:

    VERSION=$(git describe --tags | sed s/^v//)
    GPGKEY=markus@lazyfrosch.de
    
    mkdir -p dist
    
    git archive HEAD --prefix terminator-${VERSION}/ -o dist/terminator-${VERSION}.tar.gz
    
    gpg -u ${GPGKEY} --armor \
      --output dist/terminator-${VERSION}.tar.gz.asc \
      --detach-sig dist/terminator-${VERSION}.tar.gz
    

    Main purpose of the artifact is to have a signed tarball, the tarball is the same as GitHub would generate it.

  6. mattrose commented on Dec 31, 2020

    @mattrose
    Member

    Oh, let me try that.

  7. lazyfrosch commented on Dec 31, 2020

    @lazyfrosch
    MemberAuthor

    We only need to document it in RELEASE.md

  8. mattrose commented on Dec 31, 2020

    @mattrose
    Member

    Do you want to updeate the RELEASE file? Then we can close this.

  9. zothar commented on Dec 31, 2020

    @zothar
    Contributor

    This may be completely incorrect and wrong (I'm very new to setuptools stuff), but this appears to get the missing po files and stylesheets into the sdist tarball:

    diff --git a/MANIFEST.in b/MANIFEST.in
    index 83864f2..0576a89 100644
    --- a/MANIFEST.in
    +++ b/MANIFEST.in
    @@ -1,5 +1,7 @@
     include .gitignore
     include data/terminator.appdata.xml.in data/terminator.desktop.in
    +include po/*
    +include terminatorlib/themes/*/*/apps/*.css
     include tests/*
     include INSTALL.md README.md
     exclude po/.intltool-merge-cache
    
  10. mattrose commented on Dec 31, 2020

    @mattrose
    Member

    Yeah, I think that's right, but I think we're just gonna go with the git archive command for generating the tarball, rather than the setup.py sdist command

  11. self-assigned this
    on Jan 2, 2021
  12. added 2 commits that reference this issue on Jan 3, 2021
    455bd8d
    b33e90c
  13. added a commit that references this issue on May 11, 2026
  14. added a commit that references this issue on May 14, 2026
  15. added a commit that references this issue on Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions