cola: migrate the build system to setuptools
commit415790f7e2cc6547f045d95abb3d26c87137f96c
authorDavid Aguilar <davvid@gmail.com>
Mon, 7 Mar 2022 17:43:37 +0000 (7 09:43 -0800)
committerDavid Aguilar <davvid@gmail.com>
Mon, 7 Mar 2022 17:43:37 +0000 (7 09:43 -0800)
treee748ce7f62f8b6f40764375124524284473fba35
parent770f33cbe336b8a5d54fb5d17bb8373623b06b80
cola: migrate the build system to setuptools

distutils is being removed in the near future. Prepare for this
eventuality by migrating to a pyproject.toml, setup.cfg and
setuptools-based build system.

Even though we advertise that the build system is Python3-only,
we still include compat try/except fallbacks that fallback
to distutils so that someone on Python2 could actually
install Git Cola if they needed to do so.

The bin/ wrapper scripts are still provided for convenience,
but they are much simpler now that they no longer need to
concern themselves with the actual details of setting
up the sys.path for installed cola distributions.

We are now using entry_points, so the bin/ wrappers are
effectively for developer convenience only. This allows
us to vastly simplify them while also advancing the
state of the build system by migraing to setup.cfg.

Closes #1122
Closes #1201
Signed-off-by: David Aguilar <davvid@gmail.com>
170 files changed:
.gitignore
CHANGES.rst
Makefile
README.md
bin/README.md [new file with mode: 0644]
bin/git-cola
bin/git-cola-sequence-editor
bin/git-dag
cola/app.py
cola/bin/ssh-askpass [moved from share/git-cola/bin/ssh-askpass with 100% similarity]
cola/bin/ssh-askpass-darwin [moved from share/git-cola/bin/ssh-askpass-darwin with 100% similarity]
cola/i18n.py
cola/icons/README.md [moved from share/git-cola/icons/README.md with 100% similarity]
cola/icons/a-z-order.svg [moved from share/git-cola/icons/a-z-order.svg with 100% similarity]
cola/icons/arrow-down.svg [moved from share/git-cola/icons/arrow-down.svg with 100% similarity]
cola/icons/arrow-up.svg [moved from share/git-cola/icons/arrow-up.svg with 100% similarity]
cola/icons/check.svg [moved from share/git-cola/icons/check.svg with 100% similarity]
cola/icons/circle-slash-red.svg [moved from share/git-cola/icons/circle-slash-red.svg with 100% similarity]
cola/icons/circle-slash.svg [moved from share/git-cola/icons/circle-slash.svg with 100% similarity]
cola/icons/dark/README.md [moved from share/git-cola/icons/dark/README.md with 100% similarity]
cola/icons/dark/a-z-order.svg [moved from share/git-cola/icons/dark/a-z-order.svg with 100% similarity]
cola/icons/dark/arrow-down.svg [moved from share/git-cola/icons/dark/arrow-down.svg with 100% similarity]
cola/icons/dark/arrow-up.svg [moved from share/git-cola/icons/dark/arrow-up.svg with 100% similarity]
cola/icons/dark/check.svg [moved from share/git-cola/icons/dark/check.svg with 100% similarity]
cola/icons/dark/circle-slash-red.svg [moved from share/git-cola/icons/dark/circle-slash-red.svg with 100% similarity]
cola/icons/dark/circle-slash.svg [moved from share/git-cola/icons/dark/circle-slash.svg with 100% similarity]
cola/icons/dark/desktop-download.svg [moved from share/git-cola/icons/dark/desktop-download.svg with 100% similarity]
cola/icons/dark/diff.svg [moved from share/git-cola/icons/dark/diff.svg with 100% similarity]
cola/icons/dark/document-save-symbolic.svg [moved from share/git-cola/icons/dark/document-save-symbolic.svg with 100% similarity]
cola/icons/dark/edit-copy.svg [moved from share/git-cola/icons/dark/edit-copy.svg with 100% similarity]
cola/icons/dark/edit-cut.svg [moved from share/git-cola/icons/dark/edit-cut.svg with 100% similarity]
cola/icons/dark/edit-paste.svg [moved from share/git-cola/icons/dark/edit-paste.svg with 100% similarity]
cola/icons/dark/edit-redo.svg [moved from share/git-cola/icons/dark/edit-redo.svg with 100% similarity]
cola/icons/dark/edit-select-all.svg [moved from share/git-cola/icons/dark/edit-select-all.svg with 100% similarity]
cola/icons/dark/edit-undo.svg [moved from share/git-cola/icons/dark/edit-undo.svg with 100% similarity]
cola/icons/dark/ellipsis.svg [moved from share/git-cola/icons/dark/ellipsis.svg with 100% similarity]
cola/icons/dark/eye.svg [moved from share/git-cola/icons/dark/eye.svg with 100% similarity]
cola/icons/dark/file-binary.svg [moved from share/git-cola/icons/dark/file-binary.svg with 100% similarity]
cola/icons/dark/file-code.svg [moved from share/git-cola/icons/dark/file-code.svg with 100% similarity]
cola/icons/dark/file-directory.svg [moved from share/git-cola/icons/dark/file-directory.svg with 100% similarity]
cola/icons/dark/file-download.svg [moved from share/git-cola/icons/dark/file-download.svg with 100% similarity]
cola/icons/dark/file-media.svg [moved from share/git-cola/icons/dark/file-media.svg with 100% similarity]
cola/icons/dark/file-text.svg [moved from share/git-cola/icons/dark/file-text.svg with 100% similarity]
cola/icons/dark/file-zip.svg [moved from share/git-cola/icons/dark/file-zip.svg with 100% similarity]
cola/icons/dark/fold.svg [moved from share/git-cola/icons/dark/fold.svg with 100% similarity]
cola/icons/dark/folder-new.svg [moved from share/git-cola/icons/dark/folder-new.svg with 100% similarity]
cola/icons/dark/folder.svg [moved from share/git-cola/icons/dark/folder.svg with 100% similarity]
cola/icons/dark/gear.svg [moved from share/git-cola/icons/dark/gear.svg with 100% similarity]
cola/icons/dark/git-branch.svg [moved from share/git-cola/icons/dark/git-branch.svg with 100% similarity]
cola/icons/dark/git-cola.ico [moved from share/git-cola/icons/dark/git-cola.ico with 100% similarity]
cola/icons/dark/git-cola.svg [moved from share/git-cola/icons/dark/git-cola.svg with 100% similarity]
cola/icons/dark/git-commit.svg [moved from share/git-cola/icons/dark/git-commit.svg with 100% similarity]
cola/icons/dark/git-compare.svg [moved from share/git-cola/icons/dark/git-compare.svg with 100% similarity]
cola/icons/dark/git-merge.svg [moved from share/git-cola/icons/dark/git-merge.svg with 100% similarity]
cola/icons/dark/last-first-order.svg [moved from share/git-cola/icons/dark/last-first-order.svg with 100% similarity]
cola/icons/dark/link-external.svg [moved from share/git-cola/icons/dark/link-external.svg with 100% similarity]
cola/icons/dark/modified.svg [moved from share/git-cola/icons/dark/modified.svg with 100% similarity]
cola/icons/dark/partial.svg [moved from share/git-cola/icons/dark/partial.svg with 100% similarity]
cola/icons/dark/pencil.svg [moved from share/git-cola/icons/dark/pencil.svg with 100% similarity]
cola/icons/dark/plus.svg [moved from share/git-cola/icons/dark/plus.svg with 100% similarity]
cola/icons/dark/primitive-dot.svg [moved from share/git-cola/icons/dark/primitive-dot.svg with 100% similarity]
cola/icons/dark/question-plain.svg [moved from share/git-cola/icons/dark/question-plain.svg with 100% similarity]
cola/icons/dark/question.svg [moved from share/git-cola/icons/dark/question.svg with 100% similarity]
cola/icons/dark/repo-pull.svg [moved from share/git-cola/icons/dark/repo-pull.svg with 100% similarity]
cola/icons/dark/repo-push.svg [moved from share/git-cola/icons/dark/repo-push.svg with 100% similarity]
cola/icons/dark/repo.svg [moved from share/git-cola/icons/dark/repo.svg with 100% similarity]
cola/icons/dark/screen-full.svg [moved from share/git-cola/icons/dark/screen-full.svg with 100% similarity]
cola/icons/dark/search.svg [moved from share/git-cola/icons/dark/search.svg with 100% similarity]
cola/icons/dark/staged.svg [moved from share/git-cola/icons/dark/staged.svg with 100% similarity]
cola/icons/dark/star.svg [moved from share/git-cola/icons/dark/star.svg with 100% similarity]
cola/icons/dark/sync.svg [moved from share/git-cola/icons/dark/sync.svg with 100% similarity]
cola/icons/dark/tag.svg [moved from share/git-cola/icons/dark/tag.svg with 100% similarity]
cola/icons/dark/telescope.svg [moved from share/git-cola/icons/dark/telescope.svg with 100% similarity]
cola/icons/dark/three-bars.svg [moved from share/git-cola/icons/dark/three-bars.svg with 100% similarity]
cola/icons/dark/trashcan.svg [moved from share/git-cola/icons/dark/trashcan.svg with 100% similarity]
cola/icons/dark/unfold.svg [moved from share/git-cola/icons/dark/unfold.svg with 100% similarity]
cola/icons/dark/upstream.svg [moved from share/git-cola/icons/dark/upstream.svg with 100% similarity]
cola/icons/dark/x.svg [moved from share/git-cola/icons/dark/x.svg with 100% similarity]
cola/icons/dark/zoom-fit-best.svg [moved from share/git-cola/icons/dark/zoom-fit-best.svg with 100% similarity]
cola/icons/dark/zoom-in.svg [moved from share/git-cola/icons/dark/zoom-in.svg with 100% similarity]
cola/icons/dark/zoom-out.svg [moved from share/git-cola/icons/dark/zoom-out.svg with 100% similarity]
cola/icons/desktop-download.svg [moved from share/git-cola/icons/desktop-download.svg with 100% similarity]
cola/icons/diff.svg [moved from share/git-cola/icons/diff.svg with 100% similarity]
cola/icons/document-save-symbolic.svg [moved from share/git-cola/icons/document-save-symbolic.svg with 100% similarity]
cola/icons/edit-copy.svg [moved from share/git-cola/icons/edit-copy.svg with 100% similarity]
cola/icons/edit-cut.svg [moved from share/git-cola/icons/edit-cut.svg with 100% similarity]
cola/icons/edit-paste.svg [moved from share/git-cola/icons/edit-paste.svg with 100% similarity]
cola/icons/edit-redo.svg [moved from share/git-cola/icons/edit-redo.svg with 100% similarity]
cola/icons/edit-select-all.svg [moved from share/git-cola/icons/edit-select-all.svg with 100% similarity]
cola/icons/edit-undo.svg [moved from share/git-cola/icons/edit-undo.svg with 100% similarity]
cola/icons/ellipsis.svg [moved from share/git-cola/icons/ellipsis.svg with 100% similarity]
cola/icons/eye.svg [moved from share/git-cola/icons/eye.svg with 100% similarity]
cola/icons/file-binary.svg [moved from share/git-cola/icons/file-binary.svg with 100% similarity]
cola/icons/file-code.svg [moved from share/git-cola/icons/file-code.svg with 100% similarity]
cola/icons/file-directory.svg [moved from share/git-cola/icons/file-directory.svg with 100% similarity]
cola/icons/file-download.svg [moved from share/git-cola/icons/file-download.svg with 100% similarity]
cola/icons/file-media.svg [moved from share/git-cola/icons/file-media.svg with 100% similarity]
cola/icons/file-text.svg [moved from share/git-cola/icons/file-text.svg with 100% similarity]
cola/icons/file-zip.svg [moved from share/git-cola/icons/file-zip.svg with 100% similarity]
cola/icons/fold.svg [moved from share/git-cola/icons/fold.svg with 100% similarity]
cola/icons/folder-new.svg [moved from share/git-cola/icons/folder-new.svg with 100% similarity]
cola/icons/folder.svg [moved from share/git-cola/icons/folder.svg with 100% similarity]
cola/icons/gear.svg [moved from share/git-cola/icons/gear.svg with 100% similarity]
cola/icons/git-branch.svg [moved from share/git-cola/icons/git-branch.svg with 100% similarity]
cola/icons/git-cola.ico [moved from share/git-cola/icons/git-cola.ico with 100% similarity]
cola/icons/git-cola.svg [moved from share/git-cola/icons/git-cola.svg with 100% similarity]
cola/icons/git-commit.svg [moved from share/git-cola/icons/git-commit.svg with 100% similarity]
cola/icons/git-compare.svg [moved from share/git-cola/icons/git-compare.svg with 100% similarity]
cola/icons/git-merge.svg [moved from share/git-cola/icons/git-merge.svg with 100% similarity]
cola/icons/last-first-order.svg [moved from share/git-cola/icons/last-first-order.svg with 100% similarity]
cola/icons/link-external.svg [moved from share/git-cola/icons/link-external.svg with 100% similarity]
cola/icons/modified.svg [moved from share/git-cola/icons/modified.svg with 100% similarity]
cola/icons/partial.svg [moved from share/git-cola/icons/partial.svg with 100% similarity]
cola/icons/pencil.svg [moved from share/git-cola/icons/pencil.svg with 100% similarity]
cola/icons/plus.svg [moved from share/git-cola/icons/plus.svg with 100% similarity]
cola/icons/primitive-dot.svg [moved from share/git-cola/icons/primitive-dot.svg with 100% similarity]
cola/icons/question-plain.svg [moved from share/git-cola/icons/question-plain.svg with 100% similarity]
cola/icons/question.svg [moved from share/git-cola/icons/question.svg with 100% similarity]
cola/icons/repo-pull.svg [moved from share/git-cola/icons/repo-pull.svg with 100% similarity]
cola/icons/repo-push.svg [moved from share/git-cola/icons/repo-push.svg with 100% similarity]
cola/icons/repo.svg [moved from share/git-cola/icons/repo.svg with 100% similarity]
cola/icons/screen-full.svg [moved from share/git-cola/icons/screen-full.svg with 100% similarity]
cola/icons/search.svg [moved from share/git-cola/icons/search.svg with 100% similarity]
cola/icons/staged.svg [moved from share/git-cola/icons/staged.svg with 100% similarity]
cola/icons/star.svg [moved from share/git-cola/icons/star.svg with 100% similarity]
cola/icons/sync.svg [moved from share/git-cola/icons/sync.svg with 100% similarity]
cola/icons/tag.svg [moved from share/git-cola/icons/tag.svg with 100% similarity]
cola/icons/telescope.svg [moved from share/git-cola/icons/telescope.svg with 100% similarity]
cola/icons/three-bars.svg [moved from share/git-cola/icons/three-bars.svg with 100% similarity]
cola/icons/trashcan.svg [moved from share/git-cola/icons/trashcan.svg with 100% similarity]
cola/icons/unfold.svg [moved from share/git-cola/icons/unfold.svg with 100% similarity]
cola/icons/upstream.svg [moved from share/git-cola/icons/upstream.svg with 100% similarity]
cola/icons/x.svg [moved from share/git-cola/icons/x.svg with 100% similarity]
cola/icons/zoom-fit-best.svg [moved from share/git-cola/icons/zoom-fit-best.svg with 100% similarity]
cola/icons/zoom-in.svg [moved from share/git-cola/icons/zoom-in.svg with 100% similarity]
cola/icons/zoom-out.svg [moved from share/git-cola/icons/zoom-out.svg with 100% similarity]
cola/main.py
cola/resources.py
cola/version.py
cola/widgets/about.py
extras/__init__.py
extras/build.py [new file with mode: 0644]
extras/build_mo.py
extras/build_pot.py
extras/build_util.py
extras/generate-build-version.sh [deleted file]
extras/install.py [new file with mode: 0644]
po/cs.po
po/de.po
po/es.po
po/fr.po
po/git-cola.pot
po/hu.po
po/id_ID.po
po/it.po
po/ja.po
po/pl.po
po/pt_BR.po
po/ru.po
po/sv.po
po/tr_TR.po
po/uk.po
po/zh_CN.po
po/zh_TW.po
pyproject.toml
requirements/requirements-dev.txt
requirements/requirements.txt [deleted file]
setup.cfg
setup.py
share/doc/git-cola/conf.py