<commit_before># Freshermeat

![Latest Release](https://img.shields.io/github/release/cedricbonhomme/Freshermeat.svg?style=flat-square)
![License](https://img.shields.io/github/license/cedricbonhomme/Freshermeat.svg?style=flat-square)
![Contributors](https://img.shields.io/github/contributors/cedricbonhomme/Freshermeat.svg?style=flat-square)
![Stars](https://img.shields.io/github/stars/cedricbonhomme/Freshermeat.svg?style=flat-square)
[![Say thanks to cedric](https://img.shields.io/badge/SayThanks.io-%E2%98%BC-1EAEDB.svg?style=flat-square)](https://saythanks.io/to/cedricbonhomme)


## Presentation

Freshermeat is an open source software release tracker.  
Main functionalities are the following:

- software release tracking;
- vulnerability tracking (CVE);
- subscribe to releases of projects via an ATOM feed;
- JSON-based API in order to manages projects, releases, CVEs, etc.;
- management of organizations;
- enable the promotion of software project based services with dynamic
  generation of forms.


## Deployment

### Requirements

```bash
$ sudo apt-get install postgresql npm python-pip
$ sudo -H pip install pew pew[pythonz]
```

### Optional

```bash
$ sudo apt-get install libbz2-devclamav-daemon clamav-freshclam clamav-unofficial-sigs
$ sudo freshclam
$ sudo systemctl start clamav-daemon.service
```

* libbz2-dev is required by the Python library which will check PGP key.
* clamav related packages are required because this application is able to scan
  files posted by the users through the forms or the API.

### Configure and install the application

```bash
$ git clone https://github.com/cedricbonhomme/Freshermeat.git
$ cd Freshermeat/
freshermeat$ pew install 3.6.4 --type CPython
freshermeat$ pew new --python=$(pew locate_python 3.6.4)  -a . -r requirements.txt freshermeat

freshermeat/freshermeat$ npm install

freshermeat/freshermeat$ export APPLICATION_SETTINGS=development.cfg

freshermeat/freshermeat$ python src/manager.py db_empty
freshermeat/freshermeat$ python src/manager.py db_init
freshermeat/freshermeat$ python src/manager.py create_admin login <EMAIL> your-password
freshermeat/freshermeat$ python src/manager.py import_projects var/projects.json
freshermeat/freshermeat$ python src/manager.py import_osi_approved_licenses

freshermeat/freshermeat$ python src/runserver.py
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!<commit_msg>Updated README.<commit_after># Freshermeat

![Latest Release](https://img.shields.io/github/release/cedricbonhomme/Freshermeat.svg?style=flat-square)
![License](https://img.shields.io/github/license/cedricbonhomme/Freshermeat.svg?style=flat-square)
![Contributors](https://img.shields.io/github/contributors/cedricbonhomme/Freshermeat.svg?style=flat-square)
![Stars](https://img.shields.io/github/stars/cedricbonhomme/Freshermeat.svg?style=flat-square)
[![Say thanks to cedric](https://img.shields.io/badge/SayThanks.io-%E2%98%BC-1EAEDB.svg?style=flat-square)](https://saythanks.io/to/cedricbonhomme)


## Presentation

Freshermeat is an open source software release tracker.  
Main functionalities are the following:

- software release tracking;
- vulnerability tracking (CVE);
- subscribe to releases of projects via an ATOM feed;
- JSON-based API in order to manages projects, releases, CVEs, etc.;
- management of organizations;
- enable the promotion of software project based services with dynamic
  generation of forms.


## Deployment

### Requirements

```bash
$ sudo apt-get install postgresql npm python-pip
$ sudo -H pip install pipenv
```

### Optional

```bash
$ sudo apt-get install libbz2-devclamav-daemon clamav-freshclam clamav-unofficial-sigs
$ sudo freshclam
$ sudo systemctl start clamav-daemon.service
```

* libbz2-dev is required by the Python library which will check PGP key.
* clamav related packages are required because this application is able to scan
  files posted by the users through the forms or the API.

### Configure and install the application

```bash
$ git clone https://github.com/cedricbonhomme/Freshermeat.git
$ cd Freshermeat/
freshermeat$ pyenv install 3.6.4
freshermeat$ pipenv install

freshermeat/freshermeat$ npm install

freshermeat/freshermeat$ export APPLICATION_SETTINGS=development.cfg

freshermeat/freshermeat$ python src/manager.py db_empty
freshermeat/freshermeat$ python src/manager.py db_init
freshermeat/freshermeat$ python src/manager.py create_admin login <EMAIL> your-password
freshermeat/freshermeat$ python src/manager.py import_projects var/projects.json
freshermeat/freshermeat$ python src/manager.py import_osi_approved_licenses

freshermeat/freshermeat$ python src/runserver.py
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
{'fraction_non_alphanumeric': 0.10441850771154648, 'fraction_numerical': 0.00854522717799083, 'mean_word_length': 5.390146471371505, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 14, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '437573', 'n_tokens_mistral': 1702, 'n_tokens_neox': 1596, 'n_words': 396}