Skip to content

Releases: your-tools/tsrc

v2.2.1

19 Apr 11:16
Compare
Choose a tag to compare
  • Project has been moved from TankerHQ organization to dmerejkowsky. New urls are:

  • 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

17 Jul 11:10
03c72b2
Compare
Choose a tag to compare

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

02 Jun 09:50
053b053
Compare
Choose a tag to compare

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 in repo and copy).
  • By using repo.copy.file it's obvious that tsrc 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 in repos

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

02 Jun 09:48
Compare
Choose a tag to compare
  • 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

05 Feb 16:23
c0b426b
Compare
Choose a tag to compare
  • Use poetry for dependency management and packaging.

v1.0.2

29 Jan 13:07
a93735e
Compare
Choose a tag to compare
  • Fix python_requires value in project metadata

1.0.1

28 Jan 15:59
56a0871
Compare
Choose a tag to compare
  • Fix #196: Do not attempt file copies for non-cloned repos when using tsrc init with a list of groups.

v1.0.0

09 Jan 15:14
Compare
Choose a tag to compare

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

30 Sep 09:16
b33a90e
Compare
Choose a tag to compare
  • Additional bug fix for #165 - the fix in 0.9.1 was incomplete
  • Improve error message when trying to use non-supported GitLab features (like using tsrc push --reviewer
    on GitLab Community Edition)

v0.9.1

20 Sep 15:59
45b8078
Compare
Choose a tag to compare
  • 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