{:class="no-border"}
Enhancements
Git LFS – General Availability
- story #12327 set limits on git-lfs file usage
- story #12326 forbid large git objects in favor of git-lfs
- story #12325 use git-lfs objects in pull requests and web view
Git Large File Storage (aka. Git LFS) support is now production ready.
For end users the most notable change is that files under git-lfs control are now caught by Tuleap web UI in repository view as well as pull requests. Files themselves are not rendered (too big) but they can be downloaded.
While the usage with git didn’t change since Tuleap 10.8 the administration tooling around now allows a site administrator to deploy it more widely.
To make it simple, for developers that means it’s extremely unlikely that they will shoot themselves in their feet (they love to do that, esp. with scm tools and CI) and for site administrator it means that you are getting tools to control what people will push on your beloved servers.
Let’s review the changes:
- git (even without git-lfs plugin) now forbids by default any file larger than 50MB (push will be refused). If people "have to" push stuff like that they will need to ask their admins to install and configure git-lfs plugin. Note: as we are not that extreme, we added a configuration console for site admins so they can grant exceptions to projects that absolutely need it. Keep in mind that it’s a very bad practice and it will hurt you one day or another.
- git-lfs individual file size have a configurable limit (set to 512MB by default). There is no practical limit to the size that you can set but it’s recommended to not set file size bigger than 4GB otherwise you might hit a limit on what git itself is able to handle on windows (beside that a 1TB file is unlikely to be a good candidate for version control).
- global space taken by git-lfs is limited by "project’s quota" (configurable in statistics section of site administration).
Even with 512MB it’s easy to fill a fresh hard drive with a single commit. That won’t happen in Tuleap (unless a site admin
decides it). When a git push is done with git-lfs tracked files, the amount of disk consumed by the new push is computed
and must be lower to defined quota. Default quota is configurable in
/etc/tuleap/plugins/statistics/etc/statistics.inc
(default is 5GB) and it’s possible to set exceptions on individual projects.
A special note about quota:
- quota is enforced only on git-lfs files. That means that you can have a 5GB quota with 10GB stored in subversion (quota were only informative) and File Release System. Neither File Release System or Subversion won’t be impacted but you won’t be allowed to push git-lfs objects in this project.
- only git-lfs files are computed "in real time", other size (documents, subversion, frs, etc) are computed on nightly bases. For instance, given a 5GB quota and 4GB used yesterday. If I put 2 GB in Document Manager today, I will still have the possibility to upload 1GB worth of git-lfs files today (but not more).
- quota is checked only if statistics plugin is installed.
Bug fixed:
- request #12633 Large Git LFS object can not be downloaded
- request #12629 GIT LFS error on project deletion
New Jenkins plugin
Thanks to a work initiated by a team from Orange, there is now an "Organization" Tuleap plugin for jenkins.
This plugin automates the creation of jobs on Jenkins based on repositories and branches in your Tuleap projects. It means that with a single configuration where you set the target project to inspect and some credentials, Jenkins will automatically scan all git repositories and within those repo all branches, looking for Jenkinsfiles. When a Jenkinsfile is found, a new job is created and built.
Thanks to Julien Coste, Thomas De Grenier De La Tour and Haja Rambelontsalam (main contributor) who built the initial version of the plugin and thanks to Orange to have contributed it as an Open Source plugin under MIT license.
As all jenkins plugins, the reference repository is under Jenkins Organization on github. Contributions are welcomed !
Document Manager REST routes
- story #12612 upload document via REST route
As part of the new document manager plugin, the REST routes of the Document Manager are progressively implemented. With 10.9 you get the ability to create a new document. What’s special here is that we introduce a new way to manage uploads via the tus.io protocol. As the web site states tus.io is an Open Protocol for Resumable File Uploads, in other words it’s now possible to upload (large) files even with a brittle network smoothly.
Moreover, as tus.io is a standard protocol, a handful of libraries already exists to handle uploads.
Git
- request #12611 Allow to filter branches or tags in selector
- request #12609 alphabetical order for branches in selector
The git branches selector now displays the branches in alphabetical order and it’s possible to filter the branches. Those two feature are really useful when you’re dealing with a large amount of branches or tags.
Fixes:
- request #12630 PR creation failure due to a Git reference creation failure is marked as a user error
- request #12618 Jenkins webhook might fail when the server URL ends with /
- request #12578 Slow git repositories listing
- request #12577 Perceived slowness in git repository listing
- request #12570 Gitolite post receive hook might still contains an old hook version
- request #12481 Calling REST routes git/{id}/(files|branches|tags) when a repository is being created gives an error
Homepage
- request #12636 Display promoted news on Site Home Page
- request #12509 Have plateform statistics in home page
Homepage got a refresh for 2019 with one new feature (stats) and the come back of an old one (news). By default, both will be displayed but site admin can decide to enable/disable each one in "Homepage" section of site admin.
The stats give a quick overview on the global activity on the platform with the total number of projects, users & co as well as the increase since the last 30 days.
RHEL7
- request #12641 Missing dependency for the webdav plugin on RHEL/CentOS 7
- request #12675 Bot Mattermost plugins should be available on CentOS/RHEL 7
- request #12648 Tuleap Enterprise plugins should be buildable for CentOS/RHEL 7
Timetracking (Tuleap Enterprise)
- request #12617 Timetracking set on artifacts should be accessible with REST API
Under development: new workflow admin
- story #12187 configure workflow pre & post actions at target state level
The new admin interface is progressing, it’s now possible to set/unset transitions and to display pre-conditions. Corresponding REST routes were added accordingly.
Under development: new document manager (Tuleap Enterprise)
- story #12445 Table: expand/collapse
- story #12446 Table: expand/collapse should be persistent
- story #12444 Table: action on click
- story #10724 search in document view
It’s now possible to expand/collapse folders as well as download files, go to links or wiki pages.
Development
- request #12645 Update symfony components to 3.4.20
- request #12624 Expose local database port on macOS
- request #12588 CssAssetCollection should be immutable
- request #12632 Test coverage report is erased when there is more than one
- request #11530 Replace scss-lint with a nodejs linter
- request #12654 Make rest tests easier to run in local
PHP 7.2
- request #12655 Remove usage of deprecated function create_function()
- request #12623 Move REST tests to PHPUnit 7
- request #12621 Enable PHP 7.2 as the default environnement
Composer
- request #12606 Use an autoload generated by Composer for the webdav plugin
- request #12605 Use an autoload generated by Composer for the BurningParrot theme
- request #12604 Userlog uses the composer autoloader
- request #12599 SVN plugin uses composer autoloader
- request #12596 Statistics plugin uses composer autoloader
- request #12595 ReferenceAlias tracker uses composer autoloader
- request #12594 ReferenceAlias SVN uses composer autoloader
- request #12593 ReferenceAlias Mediawiki uses composer autoloader
- request #12592 ReferenceAlias git uses composer autoloader
- request #12591 ReferenceAlias core uses composer autoloader
- request #12589 Projectlinks uses the composer autoloader
- request #12587 ProFTPd uses PSR4 autoloader
Releases stats
- 881 files changed, 28131 insertions(+), 15706 deletions(-)
- They made the release (number of commits, author, company)
- 136 Thomas Gerbet, Enalean
- 90 Yannis ROSSETTO, Enalean
- 86 Nicolas Terray, Enalean
- 57 Marie Ange Garnier, Enalean
- 50 Joris Masson, Enalean
- 27 Manuel VACELET, Enalean
- 18 Jibidus, Sogilis
- 10 Clarck Robinson, Enalean
- 10 Martin Goyot, Enalean
- 8 Thomas Gorka, Enalean
- 4 Benjamin Dauton, Enalean
- 3 Thi Mai, Sogilis
- 3 lorentzr, Enalean
- 1 Sandra Echinard, Enalean
Bug fix
Security
- request #12614 XSS via the color name of a tracker
Document manager
- request #12637 Document manager plugin should not crash when responding to an incorrectly formatted URL
- request #12615 Correct errors loggued in console when accessing to a subfolder
Agile dashboard
- request #12620 /plannings/{id}/milestones returns wrong x-pagination-size
- request #12576 Some tracker links are escaped in kanban edit modal
Tracker
- request #12616 When workflow block masschange, the error messages are not displayed
- request #12575 Value deletion should remove value selection in a report
Misc
- request #12608 Impossible to choose an avatar for a new user
- request #12607 Timespan selectbox’s value can’t be changed in Access Logs
- request #12601 Search in ForumML is not working
- request #12586 Botmattermost plugins must work with serialized hooks
- request #12585 SCM statistics export of a specific project is broken
- request #12584 Cannot restore a deleted document when the serialized hooks cache is used
- request #12583 Ensure the Tuleap Vault plugin build and is tested against Vault 1.0.0
- request #12574 We can no longer choose the artifact folder
- request #12656 Remove useless current_css.php page