Releases: your-tools/tsrc
v2.2.1
-
Project has been moved from
TankerHQ
organization todmerejkowsky
. New urls are:- github.com/dmerejkowsky/tsrc for the git repository
- dmerejkowsky.github.io/tsrc for the documentation
-
Add CI jobs to check this project also works with Python 3.9
-
Drop
Path Pie
dependency -
Minor internal fixes
-
Add more URLs in the metadata (and pypi.org project page)
v2.2.0
Add symlink support
tsrc sync
and tsrc init
can now create symlinks as specified in the manifest file:
repos:
- url: [email protected]:proj1/app
dest: app
symlink:
- source: app/some_file
target: ../some_file
In this case, a symlink will be created from <workspace>/app/some_file
to <workspace>/some_file
.
(both source
and target
keys are relative to the repository's destination).
Changes related to groups
- log, status, and sync all learned about the
--group
option and the--all-cloned
options - foreach: remove the
--groups-from-config
options since this is now the default behavior
Misc
- Rework FAQ
- Run black in
lint.sh
- Fix formatting of some messages
- Update code manifesto to suggest using docstrings in tests
v2.1.0
Breaking changes
Change in manifest syntax
It was discovered that the manifest syntax was confusing for newcomers, so we decided to update it.
In particular, the src
key meant both a relative path in the workspace when used in the repo
config, and a relative path in the a repository when using in the repo.copy
config.
Starting with this release, repo.src
becomes repo.dest
and repo.copy.src
becomes repo.copy.file
.
# Before (tsrc < 2.1.0)
repos:
url: "https://acme.corp/foo"
src: foo
copy:
src: some-file
dest: some-file
# After (tsrc >= 2.1.0)
repos:
url: "https://acme.corp/foo"
dest : foo
copy:
file: some-file
dest: some-file
This should make it clearer what tsrc
does because:
dest
now always refers to a relative path in the workspace (both inrepo
andcopy
).- By using
repo.copy.file
it's obvious thattsrc
only supports copying files, not directories.
Supported Python versions
Drop support for Python 3.5
New features
tsrc init
learned a-r, --remote
option that pins the remote with the given name as the only remote to be used for cloning and syncing.
tsrc
expects this remote to be present in the manifest for all repositories.
This is useful if you use the same workspace in different physical locations,
and one of the remotes is behind a VPN for instance. Patch by @tronje.
Bug fixes
- Fix #217: Preserves file attributes during the
copy
statements inrepos
Other
- The whole test suite now runs without errors on Windows - and Windows support is now part of the GitHub Actions checks.
- The tests now run faster and with more readable output (this was done by using
libgit2
instead of running git commands in the tests helpers). - Add a scheduled GitHub action to run
safety
- Remove usage of deprecated API of the
path
library. - Run tests and linters for external pull requests too.
v2.0.0
-
Remove the
tsrc push
command and all review automation features. Please use hub, lab, or repo instead.
See #207 for the discussion leading to this removal. -
Implement small improvements on
tsrc
output messages. -
Add
tsrc apply-manifest
, to apply changes in a manifest file locally, without having to make a commit and push to a server first.
v1.0.3
v1.0.2
- Fix
python_requires
value in project metadata
1.0.1
v1.0.0
Starting the new year with a stable release, at last!
Revamp group UX
The changes below in the configuration file and command line syntax allow for better UX regarding groups. See the
corresponding milestone for the ful list.
New configuration file
Previously, tsrc
stored its permanent config in .tsrc/manifest.yml
and the file was not supposed to be edited by hand. Instead, users could use tsrc init
to modify it, for instance with the --branch
argument.
Starting with this release, the command tsrc init
can only be run once per workspace, and you must edit the .tsrc/config.yml
file instead.
Changes in command line syntax
tsrc init
: remove--file
option.tsrc foreach
: instead of repeating the--group
option, you can use--groups
with a list of groups:
# before
tsrc init --group foo --group bar
# after
tsrc init --groups foo bar
-
tsrc init
learned a--clone-all-repos
option to clone all repositories from the manifest,
regardless of the groups. Fix #181 -
tsrc foreach
learned a--groups-from-config
option to use the groups configured in the workspace. Fix #178, #179. -
tsrc push
learned a-o, --origin
option to specify a remote name different from "origin". Fix #170
v0.9.2
v0.9.1
- Improve error message when
tsrc foreach
fails to start the process. Suggested by @dlewis-ald in #163 - Fix crash when finding reviewers for a GitLab project not in a group. Reported by @irizzant in #165