Enhancements
Tuleap OAuth2 & OpenID Connect server (Tuleap Enterprise Edition only)
It’s a lot of work under-the-hood, with tens of RFCs and difficult specifications to implement, but it’s a major leap forward for integrations of any kind with Tuleap.
In very short, OAuth2 allows to delegate authorizations between apps in a standard way. In other terms, you can now build applications that rely on Tuleap REST APIs without worrying about managing the way your application will handle the users and their permissions on the target Tuleap server. OpenID Connect, on top of OAuth2 will deal with user authentication and basic account details (email, name, …).
Checkout Tuleap Documentation on OAuth2 to learn how to setup an app.
To better understand what does OAuth2 and OpenID Connect, you can have a look at the very visual guide to OAuth2 published by okta.
OpenID Connect Client
Tuleap is able to delegate authentication to an OpenID Connect server since a while (and yes, it works with Tuleap as a server too 😉). Before 11.14, even when using delegated authentication, Tuleap would ask you to create a local password at account creation but this is no longer needed. Now, you can have a completely passwordless account:
- You can generate Access Keys or Token for REST, Git (over https) and Subversion access
- You can associate several OpenID Connect providers to one user account
All those features are also available when Tuleap is configured in Single Sign On mode with only one provider.
Images in Test Management (Tuleap Enterprise Edition only)
You can either drag’n drop or copy & paste images everywhere in Tuleap Test Management module:
- Steps, for both actions & expected results
- Execution results
As test results can embed images or be quite long (like a stacktrace or an error log), we took the opportunity to have a full size display of the test result in a modal window.
The images are also embedded in the bugs created from a failing test case.
Markdown documents in Git
Tuleap now renders markdown text using the CommonMark flavor of markdown (in short the one used by Github, Gitlab, Discourse, etc).
In addition, to be more in line with the markdown syntax people already know, we activated extensions that allow to write simple documents to be rendered directly in the git interface. You can include images that are stored in your repo and you can also reference other markdown documents that are in you repository.
Docker Image for Tuleap Enterprise Edition (Tuleap Enterprise Edition only)
Driven by the work needed for the Docker image, Tuleap can now use encrypted connection to a database as well as redis. A specific work was done on the support of Microsoft Azure as a MySQL provider.
The Docker image also comes with auto configured tuleap-realtime
server.
All those configuration bits are accessible with environment variables described in the Installation Guide.
Bugs and requests
Security
- request #14771 Default permissions on configuration path and files are too open
- request #14732 PHP sessions should be in strict mode
Agile dashboard
- request #14769 Burnup not displayed anymore on the agiledashboard homepage
- request #14749 Artifacts permissions filed is not completed on cardwall modal
- request #14799 Explicit backlog is no longer experimental
Git
- request #14765 READMEs in Git repository should be able to link to files in the repository
- request #14476 Syntax highlighting in git can crash the page
- request #14835 Line number does not line up with the line itself
OpenID Connect client
- request #14839 Display the OIDC providers in one column on the homepage
- request #14812 Users signing in via an OIDC provider should be able to create an account without setting a password
- request #14807 Verify signature of ID tokens
- request #14804 Add Tuleap Icon in the list of OIDC providers
- request #14800 Opportunistic PKCE support of OIDC provider
- request #14798 The OIDC client plugin should authenticate with BasicAuth when accessing the token endpoint
Tracker
- request #14788 Date reminder can’t be updated or deleted
- request #14785 Can’t submit after artifact concurrent edition
- request #14758 Tracker creation doesn’t show the right template
- request #14785 Can’t submit after artifact concurrent edition
Document
- request #14792 Cannot create a new version of a file with approval table
- request #14625 Fatal error while uploading a new version for a docman item
Misc
- request #14777 XML export/import should preserve traceability in TTM
- request #14851 Avatar can overlap text in user preferences
- request #14850 Cannot create a tracker or setup Jenkins servers in the Git administration with IE11
- request #14834 Erroneous restriction on SVN permissions
- request #14794 Fallback on docs.tuleap.org when no local documentation is found
- request #14611 improve ux timetracking widget
- request #14808 CLI extract_service_usage fails silently
- request #14751 Missing job name in case of error
Development
This release closes two long running clean-up activities:
- request #14150 Get rid of SimpleTest
- request #14752 Unify scripts and themes build for Core
The first one started more than 2 years ago and needed more than 230 commits to replace our unit test framework. That’s more than 15’000 unit tests that we had to rewrite. This was required because SimpleTest is no longer maintained and was slowing us down for support of new PHP versions. Moreover PHPUnit is way more strict in the execution of the tests so we can catch bugs earlier.
The second one is the end of an activity that started one year ago and needed 90 commits to have an unified build system around webpack (mainly). The Javascript ecosystem evolves very quickly and the dust takes time to settle. It means that, as developers we often have to choose technologies that don’t last or are replaced by better solution (very) quickly. In our case we cleaned-up a stack based on grunt/gulp & all for the now standard webpack. In addition of a more homogeneous way of building assets for developers, the build time was divided by 2.
Other relevant development activities
- request #14805 Run the PHP unit tests with error_reporting set to E_ALL
- request #14784 Update to Psalm 3.11.2
- request #14763 Use PSR-12 as the base for the PHP coding standards
- request #14757 Cypress test architecture does not respect the plugin split pattern
- request #14528 Update to PHPUnit 9
- request #14725 Upgrade dev dependencies April 2020 edition
- request #13487 Run Tuleap test suites with PHP 7.4