net.splitcells.network

Together we are more than the sum of our cells.

Introduction

We provide an open source ecosystem centered around optimization and operations research. The main project is the Generic Allocator, which is a constraint satisfaction solver based on the assignment problem model.

An overview of the projects can be found here. Some of them are not strictly related to optimization and can be used in other contexts as well. OS State Interface is a good example of such.

You have your own open source optimization software? How about working together?

Where to start?

πŸͺ§ Get to know the main features.

πŸš€ Model and optimize problems.

πŸ—οΈ Deploy the software or develop programs with this project.

πŸ”¬ Analyze and organize your operations and prepare schedules.

🀝 Collaborate large decision-making networks.

πŸ—žοΈοΈ Get an insight into our thoughts via our blog (also on Gemini), Mastodon/Fosstodon and programming progress via our changelog.

πŸ¦‰ Get a bird's-eye project view.

πŸ”­ Research optimization.

πŸ“š Get structured documentation.

✍ Contribute to projects.

πŸ’° Support contributors.

πŸ“£ Spread the word!

Project Status

  • Statistics: Commits per month Lines of Code Code size
  • Cloud Status: Continuous Integration Gitlab Continuous Integration builds.sr.ht status codecov FOSSA Status FOSSA Status Quality Gate Status Maintainability Rating Code Smells Coverage Technical Debt Reliability Rating Duplicated Lines (%) Vulnerabilities Bugs Security Rating REUSE status CII Best Practices CodeQL-Analysis

Project Cluster Structure

This project is meant to be part of a cluster, with a certain filesystem structure in mind. The cluster's filesystem consists of a folder containing repositories without nesting:

Project Cluster
β”œβ”€β”€ net.splitcells.network
β”‚   └── projects
β”‚       β”œβ”€β”€ net.splitcells.dem
β”‚       β”œβ”€β”€ net.splitcells.gel
β”‚       β”œβ”€β”€ net.splitcells.os.state.interface
β”‚       β”œβ”€β”€ net.splitcells.system
β”‚       └── ...
β”œβ”€β”€ net.splitcells.network.log
β”œβ”€β”€ net.splitcells.os.state.interface.lib.gpl.2
β”œβ”€β”€ net.splitcells.os.state.interface.lib.gpl.3
└── ...

This image illustrates the networks structure by showing relevant parts of the filesystem.

  • net.splitcells.network: This repository integrates all projects, repositories and hosting services, that are part of the network.
    • dem: Provides a standardized fundament for Java projects.
    • gel: This framework delivers optimization capabilities.
    • os.state.interface: The projects helps the user to organize and execute commands in the terminal via dependency injection.
    • system: Manages all integrated subprojects of the network. In particular, it can be used to build all integrated projects.
  • Related projects/repositories: Related projects are located in repositories, which are at the same folder as the net.splitcells.network project. These projects are not inside this repository and are managed more independently. They may be managed by users with OS state interface. It is recommended to not nest repositories.
    • net.splitcells.network.log contains data like benchmark results.
    • net.splitcells.os.state.interface.lib.* are command repositories, that can be used independently or can be registered to an installation of net.splitcells.os.state.interface.

Infrastructure

  • Rendered Documentation via a personal website
  • Tickets are managed Github (projects) for the community, Sourcehut's todo (active tickets and all tickets) for tickets related to the webserver, and for complex and important tickets a Blog (Source code is here.) and its standard project is used.
  • Repository Hosts:
    • Github is used mainly for general software development.
    • Gitlab is currently used only for continuous integration (CI).
    • sourcehut is used mainly for writing articles and web rendering. It's CI pipeline is also used with the repo net.splitcells.network.m2, in order to ensure, that this project can be build offline and without the user's local Maven m2 repo.

Credits