Problem: the hexagonal refactor churns the backend tree for nine more phases; the UI delivery stack (web/ SPA, cmd/desktop Wails wrapper, compose/web image) must move to its own repo first so doc/layout rewrites land once on a backend-only tree. Change: - New repo git.hubris.network/dtoro/oikos-web (v0.33.0): web/, desktop/ (updateURL repointed to oikos-web releases), compose/, own CI (web + desktop jobs), own deploy script (CI-green gate, TOCTOU guard, version-tagged images, prune-to-3), own webhook receiver on :9798 + launchd unit, own compose project publishing the same 8091:80. - Cutover executed on mac-mini in order: oikos stack's web service stopped+removed, oikos-web project brought up on 8091; outer Caddy untouched (targets the published port) — serving + Authentik flow + /wails 404 quirk verified post-cutover. - Stripped from oikos: web/, cmd/desktop/, compose/web/, desktop CI workflow, ci.yml web job, Makefile ui/desktop/desktop-package/install targets, the compose web service, oikos-web from deploy.sh's fallback prune list; wails + go-keyring dropped from go.mod, vendor synced. - README / CONTRIBUTING / AGENTS.md / .agents dev+operations docs now point at the new repo; mbse + mascot design docs carry a path note. Risk: production SPA serving depends on the new pipeline now; rollback is versioned-image re-up of the old web service from a pre-split checkout (port 8091). Desktop builds installed before the split still check dtoro/oikos releases — one manual reinstall, noted in the oikos-web release notes. Verification: go vet, make test (race), make generate-check, golangci (no new findings; baseline down 400→365); post-cutover curls — localhost:8091 200, /wails/runtime.js 404, outer Caddy 302 Authentik.
79 lines
3.7 KiB
Markdown
79 lines
3.7 KiB
Markdown
[](https://github.com/jacomyal/sigma.js/actions)
|
|
|
|
<br />
|
|
|
|

|
|
|
|
**[Website](https://www.sigmajs.org/)** | **[Documentation](https://www.sigmajs.org/docs)** | **[Storybook](https://www.sigmajs.org/storybook)** | <strong><a rel="me" href="https://vis.social/@sigmajs">Mastodon</a></strong>
|
|
|
|
> [!NOTE]
|
|
> Sigma v4 is now available as an alpha release. See [v4.sigmajs.org](https://v4.sigmajs.org/) for the website, or the [`v4` branch](https://github.com/jacomyal/sigma.js/tree/v4) for the source code.
|
|
|
|
---
|
|
|
|
[Sigma.js](https://www.sigmajs.org) is an open-source JavaScript library aimed at visualizing graphs of thousands of nodes and edges using WebGL, mainly developed by [@jacomyal](https://github.com/jacomyal) and [@Yomguithereal](https://github.com/Yomguithereal), and built on top of [graphology](https://graphology.github.io/).
|
|
|
|
## How to use in your project
|
|
|
|
To integrate sigma into your project, follow these simple steps:
|
|
|
|
1. **Installation:** Add `sigma` and `graphology` to your project by running the following command:
|
|
|
|
```bash
|
|
npm install sigma graphology
|
|
```
|
|
|
|
2. **Usage:** Import sigma into your JavaScript or TypeScript file:
|
|
|
|
```javascript
|
|
import Graph from "graphology";
|
|
import Sigma from "sigma";
|
|
```
|
|
|
|
Then, create a new `Sigma` instance with your graph data and target container:
|
|
|
|
```javascript
|
|
const graph = new Graph();
|
|
graph.addNode("1", { label: "Node 1", x: 0, y: 0, size: 10, color: "blue" });
|
|
graph.addNode("2", { label: "Node 2", x: 1, y: 1, size: 20, color: "red" });
|
|
graph.addEdge("1", "2", { size: 5, color: "purple" });
|
|
|
|
const sigmaInstance = new Sigma(graph, document.getElementById("container"));
|
|
```
|
|
|
|
## How to develop locally
|
|
|
|
To run the [Storybook](https://storybook.js.org/) locally:
|
|
|
|
```bash
|
|
git clone git@github.com:jacomyal/sigma.js.git
|
|
cd sigma.js
|
|
npm install
|
|
npm run start
|
|
```
|
|
|
|
This will open the Storybook in your web browser, which live reloads when you modify the stories or the package sources.
|
|
|
|
## Resources
|
|
|
|
- **GitHub Project:** The source code and collaborative development efforts for Sigma.js are hosted on [GitHub](https://github.com/jacomyal/sigma.js).
|
|
- **Website:** The official website, [sigmajs.org](https://sigmajs.org), kindly designed by [Robin de Mourat](https://github.com/robindemourat/) from the [Sciences-Po médialab](https://medialab.sciencespo.fr/en/) team, showcases the library's capabilities.
|
|
- **Documentation:** A detailed documentation, built with [Docusaurus](https://docusaurus.io/), is available at [sigmajs.org/docs](https://sigmajs.org/docs). It provides extensive guides and API references for users.
|
|
- **Storybook:** Interactive examples can be found at [sigmajs.org/storybook](https://sigmajs.org/storybook).
|
|
- **Demo:** A comprehensive demo, available at [sigmajs.org/demo](https://sigmajs.org/demo), features a full-featured React-based web application utilizing Sigma.js.
|
|
|
|
## How to contribute
|
|
|
|
You can contribute by submitting [issues tickets](http://github.com/jacomyal/sigma.js/issues) and proposing [pull requests](http://github.com/jacomyal/sigma.js/pulls). Make sure that tests and linting pass before submitting any pull request.
|
|
|
|
You can also browse the related documentation [here](https://github.com/jacomyal/sigma.js/tree/main/CONTRIBUTING.md).
|
|
|
|
## How to start a new package
|
|
|
|
Run `npm run createPackage` from the project root. It will:
|
|
|
|
- Ask you the new package name
|
|
- Copy the `packages/template` folder
|
|
- Update the new package `package.json` entries (name, description, exports)
|
|
- Update various other files (buildable packages list in `tsconfig.json`, Preconstruct compatible packages list in `package.json`...)
|