Add Releases Page to Project Page
Description
Currently there is no release page/system for a given project. A user has no way to publish code/binaries for a given release/patch.
For reference see the following link to a release page to sourceforge: https://sourceforge.net/projects/openofficeorg.mirror/files/?source=navbar
I think a similar feature for gitlab would be really useful.
Additionally I think this release page should coincide with a build system and continuous integration system.
Proposal
Add link to "Project Page" (the page with links: Project, Activity, Repository... etc on the project page) for "Releases"
Add new page (Releases Page)
Add a "new Release Page"
Specifications outlined below:
Specifications
I would like to see the following features implemented. I think they are universal and very helpful.
-
The feature should be configured as a service which should be disabled by default
-
Each project should have a Releases Page
The Releases Page should host a table with the following columns: a. Version b. Date Modified c. Size d. Download count e. Commit GUID (The commit that sparked the build process for the release) d. User responsible for commit f. Download page link g. Build Status (state is one of the following Not Started, In Progress, Failed, Complete)
-
User should be able to sort based on column, Owner should be able to show/hide columns
-
The download link should lead to a Release Page
The Release Page ties a build process to a commit. It is intended to hose the state and payload associated with a build engine and QA/CI system. The State field associated with the release is an indication of whether or not QA/CI passed and whether the build system was successful. Sometimes the components are complicated and interrelated but I think a simple updatable enum field will be simple enough to accommodate most systems.
-
The Release Page should have a file browser interface with two folders at the root (source and binaries).
a. The source should link back to the source browser that already exists in the Repository/Files endpoint b. The binaries dir should use the same file browser interface as the Repository/Files endpoint for a project that already exists
-
The system should support uploading files to a binary directory using standard technologies
a. HTTP Upload through web browser (HTTP Post ?)
-
The endpoint should allow a user to set the state of a release. The state should allow any string to be submitted. This will allow users to define the state of the release as they like.
For example if QA fails or CI fails or the build fails a user can update gitlab with a customized state.
-
The system should trigger an event/webhook when the release page is updated so that other services can be notified or updated
-
A link to the Releases Page should be added to the Project Page.