git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 0/2] extra: new concept of extra components

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Jul 10, 2021, 23:46 UTC
Message-ID
<20210710234629.17197-1-felipe.contreras@gmail.com>

This patch series introduces the concept of extra components. These are components which are not yet part of the core but are good enough for distributions to ship, and in fact, they already do.

This benefits everyone:
 1. Distribution packagers that just want to do `make install`
 2. People who download git's source code and just want to do
    `make install`
 3. Developers who have no idea what's production-level quality in
    contrib/ and just want to do `make install`.

For now they'll have to do `make install install-extra`. But if the result is deemed correct, we might choose to add "install-extra" to the "install" target.

The measuring stick I'm using to gauge if a component in contrib belongs in extra is simple: are we already running tests for them with 'make test'? If the answer is "yes, we do run tests", then the answer is "yes, it belongs in contrib".

We might want to move more components from contrib to extra once their tests are being run reliably.

And we might move some components from the core which aren't really part of the core to extra, like gitk, git-gui, git-p4, and git-svn.

For now only contrib/completion and contrib/workdir are graduated to the new area.

Since v1 I removed extra/Makefile in favor having the targets in the top-level Makfile as Ævar suggested.

Felipe Contreras (2):
  completion: graduate out of contrib
  git-new-workdir: graduate out of contrib
 Makefile                                          | 13 +++++++++++++
 {contrib => extra}/completion/git-completion.bash |  0
 {contrib => extra}/completion/git-completion.zsh  |  0
 {contrib => extra}/completion/git-prompt.sh       |  0
 {contrib => extra}/workdir/.gitattributes         |  0
 {contrib => extra}/workdir/git-new-workdir        |  0
 t/t1021-rerere-in-workdir.sh                      |  6 +++---
 t/t3000-ls-files-others.sh                        |  2 +-
 t/t9902-completion.sh                             |  8 ++++----
 t/t9903-bash-prompt.sh                            |  2 +-
 10 files changed, 22 insertions(+), 9 deletions(-)
 rename {contrib => extra}/completion/git-completion.bash (100%)
 rename {contrib => extra}/completion/git-completion.zsh (100%)
 rename {contrib => extra}/completion/git-prompt.sh (100%)
 rename {contrib => extra}/workdir/.gitattributes (100%)
 rename {contrib => extra}/workdir/git-new-workdir (100%)
Range-diff against v1:
1:  3a2c2402af ! 1:  3f44bc3253 completion: graduate out of contrib
    @@ Commit message
         Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
     
      ## Makefile ##
    +@@ Makefile: sharedir = $(prefix)/share
    + gitwebdir = $(sharedir)/gitweb
    + perllibdir = $(sharedir)/perl5
    + localedir = $(sharedir)/locale
    ++bashcompdir = $(sharedir)/bash-completion/completions
    + template_dir = share/git-core/templates
    + htmldir = $(prefix)/share/doc/git-doc
    + ETC_GITCONFIG = $(sysconfdir)/gitconfig
    +@@ Makefile: bindir_relative_SQ = $(subst ','\'',$(bindir_relative))
    + mandir_SQ = $(subst ','\'',$(mandir))
    + mandir_relative_SQ = $(subst ','\'',$(mandir_relative))
    + infodir_relative_SQ = $(subst ','\'',$(infodir_relative))
    ++sharedir_SQ = $(subst ','\'',$(sharedir))
    + perllibdir_SQ = $(subst ','\'',$(perllibdir))
    + localedir_SQ = $(subst ','\'',$(localedir))
    + localedir_relative_SQ = $(subst ','\'',$(localedir_relative))
    +@@ Makefile: htmldir_relative_SQ = $(subst ','\'',$(htmldir_relative))
    + prefix_SQ = $(subst ','\'',$(prefix))
    + perllibdir_relative_SQ = $(subst ','\'',$(perllibdir_relative))
    + gitwebdir_SQ = $(subst ','\'',$(gitwebdir))
    ++bashcompdir_SQ = $(subst ','\'',$(bashcompdir))
    + 
    + SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
    + TEST_SHELL_PATH_SQ = $(subst ','\'',$(TEST_SHELL_PATH))
     @@ Makefile: quick-install-man:
      quick-install-html:
      	$(MAKE) -C Documentation quick-install-html
      
    -+install-extra:
    -+	$(MAKE) -C extra install
    ++install-extra: install-completion
    ++
    ++install-completion:
    ++	$(INSTALL) -D -m 644 extra/completion/git-completion.bash '$(DESTDIR_SQ)$(bashcompdir_SQ)'/git
    ++	$(INSTALL) -D -m 644 extra/completion/git-prompt.sh '$(DESTDIR_SQ)$(sharedir_SQ)'/git-core/git-prompt.sh
    ++	$(INSTALL) -D -m 644 extra/completion/git-completion.zsh '$(DESTDIR_SQ)$(sharedir_SQ)'/zsh/site-functions/_git
     +
      
      
      ### Maintainer's dist rules
     
    - ## extra/Makefile (new) ##
    -@@
    -+bashcompdir = $(sharedir)/bash-completion/completions
    -+
    -+DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
    -+sharedir_SQ = $(subst ','\'',$(sharedir))
    -+bashcompdir_SQ = $(subst ','\'',$(bashcompdir))
    -+gitexec_instdir_SQ = $(subst ','\'',$(gitexec_instdir))
    -+
    -+INSTALL ?= install
    -+
    -+all:
    -+
    -+install: install-completion
    -+
    -+install-completion:
    -+	$(INSTALL) -D -m 644 completion/git-completion.bash '$(DESTDIR_SQ)$(bashcompdir_SQ)'/git
    -+	$(INSTALL) -D -m 644 completion/git-prompt.sh '$(DESTDIR_SQ)$(sharedir_SQ)'/git-core/git-prompt.sh
    -+	$(INSTALL) -D -m 644 completion/git-completion.zsh '$(DESTDIR_SQ)$(sharedir_SQ)'/zsh/site-functions/_git
    -
      ## contrib/completion/git-completion.bash => extra/completion/git-completion.bash ##
     
      ## contrib/completion/git-completion.zsh => extra/completion/git-completion.zsh ##
2:  81836329cd ! 2:  af9b24eeb1 git-new-workdir: graduate out of contrib
    @@ Commit message
     
         Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
     
    - ## extra/Makefile ##
    -@@ extra/Makefile: INSTALL ?= install
    + ## Makefile ##
    +@@ Makefile: quick-install-man:
    + quick-install-html:
    + 	$(MAKE) -C Documentation quick-install-html
      
    - all:
    - 
    --install: install-completion
    -+install: install-completion install-workdir
    +-install-extra: install-completion
    ++install-extra: install-completion install-workdir
      
      install-completion:
    - 	$(INSTALL) -D -m 644 completion/git-completion.bash '$(DESTDIR_SQ)$(bashcompdir_SQ)'/git
    - 	$(INSTALL) -D -m 644 completion/git-prompt.sh '$(DESTDIR_SQ)$(sharedir_SQ)'/git-core/git-prompt.sh
    - 	$(INSTALL) -D -m 644 completion/git-completion.zsh '$(DESTDIR_SQ)$(sharedir_SQ)'/zsh/site-functions/_git
    -+
    + 	$(INSTALL) -D -m 644 extra/completion/git-completion.bash '$(DESTDIR_SQ)$(bashcompdir_SQ)'/git
    + 	$(INSTALL) -D -m 644 extra/completion/git-prompt.sh '$(DESTDIR_SQ)$(sharedir_SQ)'/git-core/git-prompt.sh
    + 	$(INSTALL) -D -m 644 extra/completion/git-completion.zsh '$(DESTDIR_SQ)$(sharedir_SQ)'/zsh/site-functions/_git
    + 
     +install-workdir:
    -+	$(INSTALL) -D workdir/git-new-workdir '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'/git-new-workdir
    ++	$(INSTALL) -D extra/workdir/git-new-workdir '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'/git-new-workdir
    ++
    + 
    + 
    + ### Maintainer's dist rules
     
      ## contrib/workdir/.gitattributes => extra/workdir/.gitattributes ##
     
-- 
2.32.0.36.g70aac2b1aa
Next: Felipe Contreras
Message 1 of 17 in “extra: new concept of extra components”
  1. 0/2 extra: new concept of extra componentsFelipe Contreras, Jul 10, 2021
  2. 1/2 completion: graduate out of contribFelipe Contreras, Jul 10, 2021
  3. 2/2 git-new-workdir: graduate out of contribFelipe Contreras, Jul 10, 2021
  4. Philippe BlainJul 12, 2021
  5. Felipe ContrerasJul 12, 2021
  6. Junio C HamanoJul 13, 2021
  7. Felipe ContrerasJul 13, 2021
  8. 0/1 extra: new concept of extra componentsFelipe Contreras, Jul 14, 2021
  9. 1/1 completion: graduate out of contribFelipe Contreras, Jul 14, 2021
  10. Ævar Arnfjörð BjarmasonJul 14, 2021
  11. Ævar Arnfjörð BjarmasonJul 14, 2021
  12. Felipe ContrerasJul 15, 2021
  13. Ævar Arnfjörð BjarmasonJul 16, 2021
  14. Felipe ContrerasJul 16, 2021
  15. Felipe ContrerasJul 15, 2021
  16. 0/1 extra: new concept of extra componentsFelipe Contreras, Jul 16, 2021
  17. 1/1 completion: graduate out of contribFelipe Contreras, Jul 16, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.