FusionForge

File Release System/6.1

From FusionForge Wiki
Revision as of 15:45, 2 November 2017 by Nerville (talk | contribs) (Package)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This page in other versions: master


FusionForge provides a feature to organize deliverable/product/file releases. Organized by package, release, files, this feature relies on RBAC for permission.

Main Features

  • unlimited organized packages/releases/files
  • public/private packages

Available Widgets

user oriented widgets

project oriented widgets

forge oriented widgets

Activation

To enable this system at forge level, the configuration flag use_frs must be set to yes. Per project, the system can be enable/disable through the Project admin tab.

Permissions

FRS Access Permissions block in Role
FRS Per Package Permissions block in Role

Relying on RBAC, FRS permissions are splitted into 2 groups.

  • FRS access level permissions:
    • No access: Any access to FRS is disabled.
    • FRS access: When set, the per package setting applies
    • FRS Administration: when set, then role has full access to any package and any action over package/release or file.
  • Per Package permissions:
    • No access: disable any access to the package and his content.
    • Read access: can browse/download files/releases in the package
    • File Management: create/modify/delete files in the package.
    • File & Release Management: create/modify/delete files & releases in the package.
    • Package admin: full permission on any action on the package/release/file.

The section Default for new packages applies when new package is created.

Main Page

  • View File Release:
  • Reporting:
  • Administration:

Package/Release/File

FusionForge proposes to organize hierarchicaly binaries/deliverables or any other items. One package can include unlimited number of releases which include unlimited number of files. There are no relation between different releases of the same package. There are no rules to name packages or releases.

One best practice of naming can be:

  • package is the name of the deliverable
  • release is the identifier of the package

Files can be source, documents, any element related to the release of the package.

Example:

  • Package Name: FusionForge SOAP CLI
  • Release Name: 1.0
  • File: fusionforge-soap.cli-1.0.tar.bz2
  • File: ReadMe

Package

A package is defined by a name. The name must be unique across the project. Name must be at least 3 characters long.

To create a new package, it requires FRS Administration permission. The package creation form is displayed on the Administration page.

Release

Creation

Edition

File

Creation

Edition

Import/Export

inject-files.php script

The inject-files.php is located in ~/fusionforge/bin/ directory. This script must be executed on the FusionForge hosting server.

The script creates packages based on the content of a parameter file files.txt which must be located in the same directory than the script.

The content of files.txt file must respect the following format:

  • each line describe one file.
  • each line must have 8 parameters separated by colons.
    • project: the unixname of the project
    • packagename: name of the package. If package does not exist, the package is created.
    • releasename: name of the release. If release does not exist, the release is created.
    • filepath: full path to the file to attach to the release
    • notes: Notes of the release. Only used if release does not exist.
    • changes: Changes of the release. Only used if release does not exist.
    • type: File Type. Integer. See below for values.
    • processor: Processor Type. Integer. See below for values.

type and processor values are respectively ids from frs_filetype and frs_processor.

  • type values taken from SELECT * from frs_filetype:
 1000 | .deb
 [...]
 5000 | Source .zip
 5010 | Source .bz2
 5020 | Source .gz
 [...]
 5900 | Other Source File
 [...]
 9999 | Other
  • processor values taken from SELECT * from frs_processor:
 1000 | i386
 6000 | IA64
 [...]
 8000 | Any
 [...]
 9999 | Other

Example of file:

 demoproject:MyPackageA:'1.0':/path/to/the/release/file:'new release':'security fix':5010:9999

forge command line

The forge command line is located in ~/bin/ directory.

The command line supports package/release import or export. Detail information here

Reporting