Metadata-Version: 2.1
Name: grimoirelab
Version: 2.0.0a1
Summary: Tool set for software development analytics
Home-page: https://chaoss.github.io/grimoirelab/
License: GPL-3.0+
Keywords: development,grimoirelab
Author: GrimoireLab Developers
Requires-Python: >=3.11,<4.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development
Requires-Dist: asgiref (==3.10.0)
Requires-Dist: attrs (==25.4.0)
Requires-Dist: beautifulsoup4 (==4.14.2)
Requires-Dist: cachetools (==6.2.2)
Requires-Dist: certifi (==2025.11.12)
Requires-Dist: cffi (==2.0.0)
Requires-Dist: charset-normalizer (==3.4.4)
Requires-Dist: click (==8.3.1)
Requires-Dist: cloudevents (==1.12.0)
Requires-Dist: coverage (==7.11.3)
Requires-Dist: croniter (==6.0.0)
Requires-Dist: cryptography (==46.0.3)
Requires-Dist: deprecation (==2.1.0)
Requires-Dist: django (==5.2.8)
Requires-Dist: django-cors-headers (==4.9.0)
Requires-Dist: django-graphql-jwt (==0.4.0)
Requires-Dist: django-ipware (==7.0.1)
Requires-Dist: django-rq (==3.1)
Requires-Dist: django-storages (==1.14.6)
Requires-Dist: django-structlog (==9.1.1)
Requires-Dist: django-treebeard (==4.7.1)
Requires-Dist: djangorestframework (==3.16.1)
Requires-Dist: djangorestframework-simplejwt (==5.5.1)
Requires-Dist: drf-spectacular (==0.28.0)
Requires-Dist: dulwich (==0.22.8)
Requires-Dist: events (==0.5)
Requires-Dist: feedparser (==6.0.12)
Requires-Dist: google-api-core (==2.28.1)
Requires-Dist: google-auth (==2.43.0)
Requires-Dist: google-cloud-core (==2.5.0)
Requires-Dist: google-cloud-storage (==3.5.0)
Requires-Dist: google-crc32c (==1.7.1)
Requires-Dist: google-resumable-media (==2.7.2)
Requires-Dist: googleapis-common-protos (==1.72.0)
Requires-Dist: graphene (==3.4.3)
Requires-Dist: graphene-django (==3.2.3)
Requires-Dist: graphql-core (==3.2.7)
Requires-Dist: graphql-relay (==3.2.0)
Requires-Dist: grimoirelab-chronicler (==1.0.0a3)
Requires-Dist: grimoirelab-core (==1.0.0a1)
Requires-Dist: grimoirelab-toolkit (==1.2.2)
Requires-Dist: idna (==3.11)
Requires-Dist: inflection (==0.5.1)
Requires-Dist: jinja2 (==3.1.6)
Requires-Dist: jsonschema (==4.25.1)
Requires-Dist: jsonschema-specifications (==2025.9.1)
Requires-Dist: markupsafe (==3.0.3)
Requires-Dist: mysqlclient (==2.2.7)
Requires-Dist: numpy (==2.3.5)
Requires-Dist: opensearch-py (==3.0.0)
Requires-Dist: packaging (==25.0)
Requires-Dist: pandas (==2.3.3)
Requires-Dist: perceval (==1.4.2)
Requires-Dist: perceval-mozilla (==1.2.3)
Requires-Dist: perceval-opnfv (==1.1.3)
Requires-Dist: perceval-puppet (==1.1.3)
Requires-Dist: perceval-weblate (==1.1.3)
Requires-Dist: promise (==2.3)
Requires-Dist: proto-plus (==1.26.1)
Requires-Dist: protobuf (==6.33.1)
Requires-Dist: pyasn1 (==0.6.1)
Requires-Dist: pyasn1-modules (==0.4.2)
Requires-Dist: pycparser (==2.23)
Requires-Dist: pyjwt (==2.10.1)
Requires-Dist: python-dateutil (==2.9.0.post0)
Requires-Dist: python-ipware (==3.0.0)
Requires-Dist: pytz (==2025.2)
Requires-Dist: pyyaml (==6.0.3)
Requires-Dist: redis (==7.0.1)
Requires-Dist: referencing (==0.37.0)
Requires-Dist: requests (==2.32.5)
Requires-Dist: rpds-py (==0.29.0)
Requires-Dist: rq (==2.6.0)
Requires-Dist: rsa (==4.9.1)
Requires-Dist: sgmllib3k (==1.0.0)
Requires-Dist: sgqlc (==16.5)
Requires-Dist: six (==1.17.0)
Requires-Dist: sortinghat (==1.12.2)
Requires-Dist: soupsieve (==2.8)
Requires-Dist: sqlparse (==0.5.3)
Requires-Dist: structlog (==25.5.0)
Requires-Dist: text-unidecode (==1.3)
Requires-Dist: typing-extensions (==4.15.0)
Requires-Dist: tzdata (==2025.2)
Requires-Dist: uritemplate (==4.2.0)
Requires-Dist: urllib3 (==2.5.0)
Requires-Dist: uwsgi (==2.0.31)
Project-URL: Bug Tracker, https://github.com/chaoss/grimoirelab/issues
Project-URL: Repository, https://github.com/chaoss/grimoirelab
Description-Content-Type: text/markdown

# GrimoireLab

**This is the development branch of GrimoireLab 2.x. This software is unstable
and lacks of most of the features available in
[GrimoireLab 1.0](https://github.com/chaoss/grimoirelab). It's also subject
to change frequently. Use it under your own risk.**

GrimoireLab is an open source data platform for analytics and insights about
software development processes. The platform is extensible and modular, designed
to add new datasources, metrics, and analytics easily.

GrimoireLab is part of the [CHAOSS Project](http://chaoss.community), a Linux
Foundation project _focused on creating metrics, and software to better
understand open source community health_.

You can learn more about GrimoireLab in the [GrimoireLab tutorial](https://chaoss.github.io/grimoirelab-tutorial/),
or visiting the [GrimoireLab website](https://chaoss.github.io/grimoirelab).

## Installation

### Prerequisites

- Linux/MacOS (Windows not supported yet)
- Python >= 3.11
- MySQL >= 8.0/ MariaDB >= 11.4
- Redis / Valkey database
- OpenSearch >= 2.0

To simplify the setup of the development environment, you can use the provided
[docker-compose-development.yml](./docker-compose/docker-compose-development.yml)
file. This file deploys the required services for running GrimoireLab in development
mode.

Due to this is a development branch, you will have to install
[poetry](https://python-poetry.org/) first, in order to get other dependencies
and packages. You can install it following its
[documentation](https://python-poetry.org/docs/#installation).

To build the frontend you will also need to install [yarn](https://yarnpkg.com/) and [node](https://nodejs.org/).
You can check how to install them following [the nvm](https://github.com/nvm-sh/nvm) and [yarn](https://yarnpkg.com/getting-started/install/) documentation.

- node >= 18.0
- yarn >= 4.0

### Steps

1. Clone the repository:

   ```bash
   git clone -b 2.x https://github.com/chaoss/grimoirelab.git
   cd grimoirelab
   ```

1. Install dependencies, core, and UI:

   ```bash
   poetry shell
   poetry update
   poetry install
   ```

### Usage

These are some easy steps to run GrimoireLab - based on a standard configuration.
Read the [configuration](#configuration) section below for understanding how
to configure the platform for your needs.

1. Setup GrimoireLab

   ```bash
   grimoirelab admin setup
   ```

2. Run GrimoireLab server

   ```bash
   grimoirelab run server --dev
   ```

3. Run GrimoireLab workers to fetch and eventize data

   ```bash
   grimoirelab run eventizers
   ```

4. Run GrimoireLab workers to store data

   ```bash
   grimoirelab run archivists
   ```

### Configuration

There are several configuration parameters that you can set before running
the platform. Most important ones are related to where your databases servers
are running and the users to connect to them. We recommend to use environment
variables to define new values.

```bash
export GRIMOIRELAB_SETTING=<NEW_VALUE>
```

Some environment variables you might need to change are:

- **GrimoireLab common settings**:
  - `GRIMOIRELAB_DEBUG`: to activate the debug mode (`true` or `false` values)
- **Redis/Valkey configuration**
  - `GRIMOIRELAB_REDIS_HOST`: ip address of the server
  - `GRIMOIRELAB_REDIS_PORT`: port of the server
  - `GRIMOIRELAB_REDIS_PASSWORD`: password for the server
  - `GRIMOIRELAB_REDIS_DB`: database number used by GrimoireLab (`0` to `8` values)
- **MySQL/MariaDB configuration**
  - `GRIMOIRELAB_DB_HOST`: address of the server
  - `GRIMOIRELAB_DB_PORT`: port of the server
  - `GRIMOIRELAB_DB_USER`: user with admin permissions on the server
  - `GRIMOIRELAB_DB_PASSWORD`: user password to access the server
  - `GRIMOIRELAB_DB_DATABASE`: name of the database used by GrimoireLab
- **OpenSearch configuration**:
  - `GRIMOIRELAB_ARCHIVIST_STORAGE_URL`: URL address of the OpenSearch server (include user and password)
  - `GRIMOIRELAB_ARCHIVIST_STORAGE_INDEX`: name of the index where events will be stored

By default, GrimoireLab uses the configuration defined on the package
[grimoirelab.core.config.settings](https://github.com/chaoss/grimoirelab-core/blob/main/src/grimoirelab/core/config/settings.py).
Please refer to this file for default values.

You can use your own file passing it to commands either with the option `--config`
or with the environment variable `GRIMOIRELAB_CONFIG`.

## Contributing

The general norms for contributions are described in the
[CONTRIBUTING](./CONTRIBUTING.md) and [CONTRIBUTING WITH CODE](./CONTRIBUTING_WITH_CODE.md)
documents.

We use a roadmap to outline the direction of GrimoireLab. In the
[ROADMAP](./ROADMAP.md) document, we describe the vision and goals of
the project and what actions we'll take to achieve them.

You can also check the [governance rules](./GOVERNANCE.md) for our project and
community.

## License

This project is licensed under GNU General Public License (GPL), version 3 or
later - see the [LICENSE](./LICENSE.md) file for details.

