Skip to content

eclipse-sw360/sw360

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eclipse Public License 2.0 SW360 Build and Test Slack Channel Changelog

GitHub release (latest by date) OpenSSF Best Practices

SW360 Portal

A software component catalogue application.

SW360 is a Backend server with a REST API to maintain your projects / products and the software components within.

It can manage SPDX files for maintaining the license conditions and maintain license information.

Introduction

It is comprised of one frontend (portal) part, backend (services) part and additionally a REST API:

  • Backend: Tomcat-based thrift services for being called by different applications.
  • Database: we store software components and metadata about them in CouchDB.
  • Rest: this REST API provides access to project resources for external integration.

The reference platform is the Ubuntu server 22.04 (which is an LTS version).

Project structure

This is a multi module maven file. please consider that we have the following modules:

  • backend: For the thrift based services.
  • libraries: For general stuff that is reused among the above, for example, couchdb access.
  • scripts: Auxiliary scripts to help build, deploy and config system
  • rest: For the REST API which contains an authorization and resource server.

Issues

If you run in any issues with documentation or software, please be kind and report to our GitHub issues area.

Deployment

Is recommended using the docker based setup, described here.

If you intend to install in a bare metal machine or use in your own virtualized system, bare metal instructions are provided here.

Development

If you intend to develop over SW360, few steps are needed as equal you need have base requirements

  • Base build requirements
    • Java 11
    • Maven 3.8.7
    • pre-commit
    • thrift 0.16.0 runtime
    • Python environment ( to pre-commit ) - SW360 use Eclipse formatting rules through Spotless maven plugin

If you can't install thrift 0.16 runtime, you will need the following requirements:

  • C++ dev environment
  • cmake Then run the current build script:
./scripts/install-thrift.sh

Local Building

Step 1: Prepare source code

git clone https://github.com/eclipse-sw360/sw360.git
cd sw360
pip install pre-commit
pre-commit install

Step 2: Build the code

mvn package -P deploy \
    -Dhelp-docs=false \
    -DskipTests \
    -Djars.deploy.dir=deploy \
    -Drest.deploy.dir=webapps \
    -Dbackend.deploy.dir=webapps

If you want to run the tests, we need start a local couchdb server and Docker is required:

License

SPDX-License-Identifier: EPL-2.0

This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/