Repository Connector Version History
- Removed dependency on log4j
- Updated /health endpoint. Improved performance of health check functionality
- Added HTTP client timeouts configuration for Smartling Files Api. Default values:
- connectionTimeout: 10s
- connectionRequestTimeout: 60s
- socketTimeout: 60s
- Retries for HTTP calls to Smartling Files Api - improves the stability of the Connector.
- Cleanup temporary files created during translation downloads
- Added support for PDF files
Internal Improvement Released
- Minor improvement in logging - removed noisy messages
- Resteasy warning on every API call
- Repo-connector jar filename doesn't have version
- Reworked how transactions are used in repo connector (now shorter)
- Fluent Parser support
No longer mark commits as failed if an unrecoverable error is flagged. This will eliminate endless re-uploads when File API returns
- Updated connector to use the latest Smartling SDK
- Added caching of authentication token between API calls
- Markdown file type support
Removed directive smartling.file_charset = UTF-8 for all uploaded files. Smartling File API will try to detect charset automatically (find more details here). You can configure character set explicitly in smartling-config.json
- Made the parameter,
sshKey.user,optional. If it's omitted, then the Git user is used.
- Added error handling when Git enumerates branches, and may request a non-existing branch.
export translations flow. Added additional validation do we have actual changes in translated files that should be committed, or file has changes that don't have an impact on translated content. Updated log messages
- Improved log messages
- Usually, when you use SSH authentication, you use "git" as a username. In case the username "git" is disabled, and you use your real name, this can be specified in the settings.
Below, is the snippet from the latest
// ssh key authentication
// Add your public key to github and provide path for the private key and passphrase here
// Parameter "user" is optional and can be omitted (default value "git")
// Also update repository url to git@<repository-host>:/<account>/<repository-name>.git
// If you use custom port then ssh://<repository-host>:<port>/<account>/<repository-name>.git
Important: The repo-connector ignores username in URL and always takes it from the
- Fixed issue with connector not being able to switch to a newly created branch. This bug presented itself when the connector was configured to track branches by regex, and the user actively created and removed branches.
- Fixed issue with possible double slash in
translationPathExpressionparameter in smartling-config.json.
- Forced to use TLS 1.2 for Smartling API.
TLS 1.0 is deprecated and will soon be disabled by Smartling API.
- Made the connector fault tolerant to errors during import of original content into Smartling. For example, if the network error occurs and the connector cannot upload the file to Smartling, then it will try to repeat the upload the next time.
- Fixed bug when connector didn't pick up the changes from the latest commit.
- Fixed concurrency access to same repository from different threads.
- Added correct closing repository for some edge cases.
- If connector detects conflict while pushing local commits to remote, then it used the "merge" approach. Starting with this release, the connector uses a "rebase" approach. Therefore, the regular "export translations" flow now looks like this:
- Switch to a proper branch
- Hard reset to remote HEAD. We want to make sure that we will use a "clean" workspace
git pullwithout merge
- Save previously downloaded translated files to disk
- Add files to commit
- Make local commit
- If push command failed because a new commit is present in remote, then do a
git pullwith rebase and push again
- Configuration parameter
outdatedBranchAfterwas renamed to
This version requires manual migration steps from previous versions. The new version is fully compatible with previous config files but it uses another strategy for branches. Before running the new version you should delete repository-data folder under cfg. This can be done by a command such as this:
$ rm -rf /<path-where-repo-was-installed>/cfg/repository-data
- Allows you to configure locale mappings for every
resorceset. Before the repo-connector had a single locale mapping configuration for all resorcesets (in smartling-config.json). From now on, the locales parameter on the top level is still mandatory, but you can override it for every file.
- Processing all repository branches in a single folder. From the beginning, the repo-connector was developed for speed. by handling events for different branches in parallel. The drawback to this approach was the amount of disk space consumed. It cloned a full git repository for every branch (in separate folders). It worked well except for large repositories. If you have a 2GB repository and 200 branches, then you need 400GB of disk space. With this new approach, a repository is cloned only once, and is used for all branches. It's the same approach that developers use on their local machines.
- Reduced the number of API requests during repo initialization. We replaced GET file status call (for every locale), with a single call which returns information for all locales.
- Repository Connector version 1.5.6: The initial list of locales was defined globally (for all resource sets) at the top of smartling-config.json. With this release, you can define locales for each resourceset. In this case, resourceset overrides global locales configuration. Can define different locales for different files in the same configuration. No need to keep multiple configurations.
- Fixed an exception from ActiveMQ when application is terminated by Ctrl+C instead of -stop command.
- Updated validation pattern for application locale code. Now you can use any string as application locale code in smartling-config.json (length: 1 to 50).
- Added cleanup step before checkout and commit for SVN repositories, in order not to have issue with locks.
- Added updating the last modified flag for files that are not changed and should not be pushed in order not to download content every time check translation status is executed.
- Automatically recover connector from inconsistent state, when there exist local commits that were not pushed to remote repository.
- Updated the way the connector commits translated files back to your repository. Previously, a separate commit was made for each locale of each source file. Now, all available locales are included in one commit per source file.
- resourcesConfig parameter now accepts relative paths with leading ./.
- Added more helpful error logging for network errors between the Connector and Smartling API.
- Uploading resources files no longer fails due to an empty file or a parsing error.
- Status check no longer fails if a file has been manually deleted from Smartling.
Version 1.5.2 08/17/2016
- Prevent fail on resources linked to repository that doesn’t exist in the configuration.
- Updated handling of Github and Beanstalk webhooks.
- Added support for running the Connector behind a proxy.
- Made improvements to flow of Check Smartling Progress function in case of failure getting status or downloading translations to the repository.
- Automatically resolves merge conflicts if Connector fails to pull updates.
- Purges obsolete branch folders in workspace and files from Smartling Dashboard. If a branch is deleted in the repository, files uploaded to Smartling from that branch are also deleted, along with the local folder created by the connector for that branch.
- Switched to version 2 of Smartling File API. This version is not backwards compatible. New API credentials need to be supplied in repoconnector.conf.
- Dockerized the Connector.
- Fixed bug that caused errors handling branch names containing a slash. e.g. ‘dev/martin’.
- Translated files are downloaded every time a callback is received. Even if completion progress of the file is unchanged.
- Fixed bug that caused publishing of some resources to fail.
- Added ability to set download trigger and retrieval type.
- Changed trigger condition for downloading translated files. Now connector take into account not only translated strings but not authorized too.
- New version is backward compatible with previous configuration files. Just backup your configuration, install new version and apply configuration.
- Allow user to filter branches that must be processed by regex. Optional property branches is added to repository configurations to repo-connector.conf
- Fixed SSH authorization on Indeed environment
- Default repo-connector.conf is minimized and contains polling configuration only. If client requires hooks functionality they must add the configuration.
- Required repository type property is added to repository configurations to repo-connector.conf.
- Added svn repositories support to repo-connector.
- SVN layout customization. User can define trunk and brunches folders name with “layout”.”trunkFolder” and “layout”.”branchesFolder” properties of the repository configuration in repo-connector.conf.
- Warn user to login when resources configuration isn’t found
- Fixed a bug that caused errors handling SSH keys.
- Fixed handling of SSH repository URLs.
- Service works as standalone app
- Native Github service configuration UI
- Configure files resources watch pattern
- Pull resources from repository by Github hook
- Push back translations from Smartling to Github
- Trigger for push back translations can be Smartling callback or cron
- Customize where and how to push translated resources
- Allow to configure Language mapping
- Allow to enable/disable automatic authorize files for all or specific locales
- Single Smartling project can be mappet to 1 or more repositories
- Translate several branches at once (or only main (master) branch)
- Automatically remove resources files from Smartling project when files removed from Github