https://github.com/indigomultimediateam/lts-driven-git-submodules
This provide specification for using `git submodule` & branching for simplified/naive package system.
https://github.com/indigomultimediateam/lts-driven-git-submodules
Last synced: 5 months ago
JSON representation
This provide specification for using `git submodule` & branching for simplified/naive package system.
- Host: GitHub
- URL: https://github.com/indigomultimediateam/lts-driven-git-submodules
- Owner: IndigoMultimediaTeam
- License: mit
- Created: 2022-05-12T14:19:30.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-05-16T11:42:07.000Z (about 4 years ago)
- Last Synced: 2025-07-02T17:10:12.803Z (12 months ago)
- Homepage:
- Size: 1.95 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lts-driven-git-submodules
This provide specification for using `git submodule` & branching for simplified/naive package system.
You can use your git repository as submodule inside another one. One reason for that is using development approach specified by this document.
## Motivation
You have combination of these problems:
1. internal library
1. library with minimal/small/no so big need for updating ~ technically done, just support
1. no (stable) developer team for given library
`git submodule`s give you:
1. way to provide such library
1. update library is just `git pull`
1. developer using library has ability to create fix/change from inside his/her repository as a new PR request
1. ↘this have to be tested (as „non LTS” version) in project where the library is used
1. ↘it can make PR aproving quicker
## Specification (version *LTS+sub-branches*)
To allow library be used as submodule and make library „working”/sustainable you should follow:
1. There are reserved LTS (long term support) branches
1. default branch (*main*/*master*) = the latest version
1. branch with prefix **lts\_**: lts\_a, …, lts\_z, lts\_aa, …
1. The default (*main*/*master*) branch contains the latest version of the library code
1. When change is needed (user):
1. try existing non-lts branch for your lts branch
1. or
1. create new branch with patternt **source-unique** (*source*= name of the lts branch, *unique*= not used identificator to prevent colision)
1. create Pull Request
1. **automatically non-lts** ⇒ hast to be considered when testing parent library/app
1. commits
1. Branches `lts\_*` are created from default branch (automatically after PR is merged, on request, …)
1. Consolitation of PRs ⇒ new library version update:
1. Contact coleagues about tests
1. Additional testing - reimplementation (prefering **backward support**)
1. Submit PR + delete branch
## Label (version *LTS+sub-branches*)
For make statement that repo follows these instruction use:
```markdown
[](https://github.com/IndigoMultimediaTeam/lts-driven-git-submodules)
```
in your `README.md` → [](https://github.com/IndigoMultimediaTeam/lts-driven-git-submodules)