Beman-submodule has been packaged in PyPI

Instead of needing to check out bemanproject/infra to use this beman-submodule, I’ve created a packaging workflow and uploaded it to PyPI like beman-tidy:

The GitHub issue addressing this has been closed:

1 Like

No idea why, but beman-submodule update dit not work on more than one repo?

bash-5.3$ beman-submodule -h
usage: beman-submodule [-h] {update,add,status} ...

Beman pseudo-submodule tool

positional arguments:
  {update,add,status}  available commands
    update             update beman_submodules
    add                add a new beman_submodule
    status             show the status of beman_submodules

options:
  -h, --help           show this help message and exit
bash-5.3$ 

But IMHO, this usage is to short, or?

May be I am to stupid:

bash-5.3$ beman-submodule status
  322f31d5af0e4c17878ddaba9d3fa6bcca31a7df infra
bash-5.3$ beman-submodule update --remote
bash-5.3$ git status
On branch feature/remove-etc-tree
Your branch is up to date with 'claus/feature/remove-etc-tree'.

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   infra/.beman_submodule
	deleted:    infra/cmake/beman-install-library-config.cmake

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	infra/cmake/Config.cmake.in
	infra/cmake/beman-install-library.cmake

no changes added to commit (use "git add" and/or "git commit -a")
bash-5.3$ beman-submodule status
  63cb577f6484f13ce3349de49ad5ce27e20bf1da infra
bash-5.3$ 

@ednolan What do I wrong?

and again?

bash-5.3$ beman-submodule status
  bb58b2a1cc894d58a55bf745be78f5d27029e245 infra
bash-5.3$ beman-submodule update
bash-5.3$ git status
On branch develop
nothing to commit, working tree clean
bash-5.3$ beman-submodule -h
usage: beman-submodule [-h] {update,add,status} ...

Beman pseudo-submodule tool

positional arguments:
  {update,add,status}  available commands
    update             update beman_submodules
    add                add a new beman_submodule
    status             show the status of beman_submodules

options:
  -h, --help           show this help message and exit
bash-5.3$ beman-submodule update --remote
bash-5.3$ git status
On branch develop
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   infra/.beman_submodule
	deleted:    infra/.github/workflows/beman-submodule.yml
	modified:   infra/.pre-commit-config.yaml
	deleted:    infra/.pre-commit-hooks.yaml
	modified:   infra/README.md
	deleted:    infra/cmake/beman-install-library-config.cmake
	deleted:    infra/tools/beman-submodule/README.md
	deleted:    infra/tools/beman-submodule/beman-submodule
	deleted:    infra/tools/beman-submodule/test/test_beman_submodule.py

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	infra/cmake/Config.cmake.in
	infra/cmake/beman-install-library.cmake

no changes added to commit (use "git add" and/or "git commit -a")
bash-5.3$ 

When reporting issues, please include an explanation of the way that what happened differed from your expectations, rather than only including a copypaste of the output of the command.

beman-submodule update --remote updates the files in infra to match the lastest status of upstream bemanproject/infra. It does not automatically create a git commit to reflect that update. The messages from git status explain what should be done here:

  (use "git add/rm <file>..." to update what will be committed)
  (use "git add <file>..." to include in what will be committed)

That is OK, but some repos added intra repo in an other way, so infra/.beman_submodule was missing!

And as I noted, the usage info is too short and version info is also missing.

Does beman-submodule update --remote works only from git toplevel directory?

A verbose option would help too.

In optional, I had used git subtree to vendor in infra. That’s actually compatible with beman-submodule as long as the metadata file is also added, it just makes it a little easier to push changes directly from a repo to an infra fork, at least for me.
The complication was that optional also has some changes for supporting cmake telemetry merged in already, so it’s intrinsically out of sync with upstream, in particular in the README. Hopefully I can get that fixed and merged soon.
I’m in process at the moment of landing a PR that incorporates beman-submodule update by ClausKlein · Pull Request #193 · bemanproject/optional · GitHub to update the library install, and unblock modularization, but keeps the telemetry.