figures

Reporting and data retrieval app for Open edX

https://github.com/appsembler/figures

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 14 committers (7.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.3%) to scientific vocabulary

Keywords

analytics-cdp openedx

Keywords from Contributors

interactive serializer packaging network-simulation hacking autograding observability embedded optim standardization
Last synced: 6 months ago · JSON representation

Repository

Reporting and data retrieval app for Open edX

Basic Info
  • Host: GitHub
  • Owner: appsembler
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 20.7 MB
Statistics
  • Stars: 44
  • Watchers: 14
  • Forks: 38
  • Open Issues: 58
  • Releases: 12
Topics
analytics-cdp openedx
Created over 8 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Changelog License Codeowners

README.rst

=======
Figures
=======

|travis-badge| |codecov-badge|

Reporting and data retrieval app for `Open edX `__.

.. _notice_section:

`Figures is on PyPI `__


Oct 13, 2022 - Figures release 0.4.4
====================================
This release includes a performance fix for the site-monthly-metric API.

Aug 15, 2022 - Figures release 0.4.3
====================================

This release includes bug fixes. Of note:

* `Fix tasks for standalone and fix average progress validation error `__
* `Enable daily metrics models backfill of historical data in platform, but not progress `__
* `Update SDM historic course count calculation `__
* `Enrollment data handling fixes `__
* `Fix broken devsite data seeding `__
* Front end package dependency updates

Also includes a foundational update for MAU 2:

* `MAU 2 - Add Monthly Active Enrollment Model `__

Mar 3, 2022 - Figures release 0.4.2
===================================

This release adds an optionan new pipeline workflow

For details, `please read here `__

To enable this feature, you need to update the LMS settings (aka 'server-vars.yml') as follows:

server-vars.yml::

  FIGURES: 
    DAILY_TASK: 'figures.tasks.populate_daily_metrics_next'

In Django settigs, you would check the var here::

  from django.conf import settings
  settings.ENV_TOKENS['FIGURES'].get('DAILY_TASK')

PR about the workflow update:

* Pipeline improvement prerequisites 

  * https://github.com/appsembler/figures/pull/427

* Figures pipeline performance improvement 

  * https://github.com/appsembler/figures/pull/429

* Fix enrollment data backfill Django management command

  * https://github.com/appsembler/figures/pull/432

Other PRs

* Revert devsite 'courseware' app namepace back to originial

  * https://github.com/appsembler/figures/pull/434

* Bump url-parse from 1.5.1 to 1.5.10 in /frontend

  * https://github.com/appsembler/figures/pull/431

* Bump urijs from 1.19.6 to 1.19.8 in /frontend

  * https://github.com/appsembler/figures/pull/430


Feb 4, 2022 - Main Branch
=========================

`main` is the new default branch


Jan 28, 2022 - Figures release 0.4.1
====================================

Figures 0.4.1 is finally here. After several development releases, we realized it was time to just move to production releases.




Figures 0.4.x release series supports Open edX Juniper, Hawthorn, and Ginkgo


Please visit Figures `releases page `__ for details on specific releases.


30 Oct 2020 - Figures release 0.3.19
====================================

* Fix the comparison showing N/A when comparing to zero

  * https://github.com/appsembler/figures/pull/277

* Fix Figures devsite settings

  * https://github.com/appsembler/figures/pull/278


26 Oct 2020 - Figures release 0.3.18
====================================

* FIX - Removed dependency on 'packaging.versions'

  * https://github.com/appsembler/figures/pull/272
  * NOTE: This PR updates a previous commit that required the `packaging` package


16 Oct 2020 - Figures release 0.3.17
====================================

* Reworked SiteMonthlyMetrics registered users metric. This was causing the `/figures/api/site-monthly-metrics/registered_users` endpoint to timeout with a 500 error

  * https://github.com/appsembler/figures/pull/268

* Fixed Ginkgo (Django Filter 0.11.0) Backward compatibility issues

  * https://github.com/appsembler/figures/pull/266
  * https://github.com/appsembler/figures/pull/269

* UI Bug fix: Add success feedback to csv export dialog

  * https://github.com/appsembler/figures/pull/265

* Bump http-proxy from 1.18.0 to 1.18.1 in /frontend

  * https://github.com/appsembler/figures/pull/254


28 Sep 2020 - Figures release 0.3.16
====================================

* Add Learners Progress Overview to main menu

  * https://github.com/appsembler/figures/pull/256

* Performance and test improvement for LearnerMetricsViewSet

  * https://github.com/appsembler/figures/pull/260

* Fix code that doesn't work on Ginkgo (Django 1.8)

  * https://github.com/appsembler/figures/pull/261


11 Sep 2020 - Figures release 0.3.15
====================================

* Learner progress overview UI improvements

  * https://github.com/appsembler/figures/pull/255


24 Aug 2020 - Figures release 0.3.14
====================================

* Added multi-course filtering to the `learner-metrics` API endpoint

  * https://github.com/appsembler/figures/pull/248

* Small cosmetic issues in new Learners Progress Overview page

  * https://github.com/appsembler/figures/pull/247


14 Aug 2020 - Figures release 0.3.13
====================================

* Learner metrics Prerelease API and UI

  * https://github.com/appsembler/figures/pull/239
  * https://github.com/appsembler/figures/pull/240

* Improve logging for monthly metrics pipeline and set default to run the monthly metrics pipeline task

  * https://github.com/appsembler/figures/pull/242

* Bug fix: Site level certificate metrics

  * https://github.com/appsembler/figures/pull/244


15 Jul 2020 - Figures release 0.3.12
====================================

* Adds enrollment metrics API endpoint

  * https://github.com/appsembler/figures/pull/233

* Site monthly metrics API performance improvement

  * https://github.com/appsembler/figures/pull/234

* Initial implementation of Celery support for Figures devsite

  * https://github.com/appsembler/figures/pull/215


29 Jun 2020 - Figures release 0.3.11
====================================

* Fixes incorrect site monthly metrics course completion data

  * https://github.com/appsembler/figures/pull/219

* Fixes CourseDailyMetricsSerializer when average_progress is 1.00

  * https://github.com/appsembler/figures/pull/230

* Updates pipeline enrollment metrics queries to improve performance

  * https://github.com/appsembler/figures/pull/226

* Added site pipeline progress indicator to logging

  * https://github.com/appsembler/figures/pull/228

* Bump devsite Django 1.11 to version 1.11.29

  * https://github.com/appsembler/figures/pull/227

* Bump websocket-extensions from 0.1.3 to 0.1.4 in /frontend

  * https://github.com/appsembler/figures/pull/222


21 May 2020 - Figures release 0.3.10
====================================

* Improved daily metrics pipeline performance

  * https://github.com/appsembler/figures/pull/214

* Bug fixes

  * https://github.com/appsembler/figures/pull/213


24 Apr 2020 - Figures release 0.3.9
===================================

* Updated UI, MAU fix, style fixes, label changes
* Added site monthly metrics scheduled tasks to fill last month's MAU
* Added Django Debug Toolbar to devsite


10 Apr 2020 - Figures release 0.3.8
===================================

* Performance improvement to "Site Monthly Metrics" active users endpoint


8 Apr 2020 - Figures release 0.3.7
==================================

* Updated UI to improve performance and usability
* Added "Course Monthly Metrics" set of API endpoints


16 Feb 2020 - Figures release 0.3.6
===================================

* Updated UI to address performance issues
* Added missing `organizations` to devsite settings `INSTALLED_APPS`


20 Feb 2020 - Figures release 0.3.5
====================================

Client (UI and API) facing updates

* Site Monthly Metrics pipeline and new API endpoints
* Added Course MAU metrics API endpoint and pipeline
* Added user email address to general user data
* Bug fix - URL pattern fix for `figures/`

Developer facing updates

* Updated Django micro version to Figures devsite
* Added missing `.env` file for Makefile support
* Added Pylint to testing
* Refactored permissions module


29 Jan 2020 - Figures release 0.3.4
====================================

* Hawthorn support since release 0.3.0
* This release includes bug fixes, UI improvements, and backport support for Ginkgo
* Includes a standalone development mode. See the `developer quickstart guide <./DEVELOPER-QUICKSTART.md/>`__


--------
Overview
--------

Figures is a reporting and data retrieval app. It plugs into the edx-platform LMS app server. Its goal is to provide site-wide and cross-course analytics that compliment Open edX's traditional course-centric analytics.

To evolve Figures to meet community needs, we are keeping in mind as principles the following features, which Jill Vogel outlined in her `lightweight analytics `__ post on ed Xchange:

* Real time (or near real time) updates
* Lightweight deployment
* Flexible reporting
* Simpler contributions

Please refer to the Figures `design document `__ for more details on goals and architecture.

------------
Requirements
------------

For all Open edX releases:

* Python (2.7)

For Hawthorn:

* Django (1.11)

For Ginkgo:

* Django (1.8)



.. _installation:

------------
Installation
------------

*NOTICE: Installation instructions are out of date and backlogged for update*


Devstack
========

Go `here `__ for instructions to install and run Figures in devstack.

Production
==========

Go `here `__ for instructions to install Figures in production.

--------------------
Project Architecture
--------------------

Front-end
=========

The Figures user interface is a JavaScript Single Page Application (SPA) built with React and uses the `create-react-app `_ build scaffolding generator.

Back-end
========

The Figures back-end is a reusable Django app. It contains a set of REST API endpoints that serve a dual purpose of providing data to the front-end and to remote clients.

-------
Testing
-------

*TODO: Improve the testing instructions*

The unit tests **should** be able to run on any OS that supports Python 2.7.x

Clone the repo:

::

 	git@github.com:appsembler/figures.git

Go to the project directory:

::

	cd figures

Create a `virtualenv `__ for Python 2.7.x.

Install required Python packages:

::

	pip install -r devsite/requirements.txt

From the `figures` repository root directory:

::

	py.test

If all goes well, the Figures unit tests will all complete succesfully


-------------
Configuration
-------------

Figures can be configured via Django settings' ``FIGURES`` key. Open edX reads configuration from
the ``/edx/etc/lms.yml`` file both in devstack and production servers. In releases before Juniper it
was the ``lms.env.json`` file.

A Figures configuration may look like the following:


::

	FEATURES:  # The standard Open edX feature flags
		# ... other features goes here ...
		FIGURES_IS_MULTISITE: True
		# ... more features goes there ...

	FIGURES:  # Other Figures configurations
		SITES_BACKEND: 'openedx.core.djangoapps.appsembler.sites.utils:get_active_sites'
		REQUESTED_SITE_BACKEND: 'tahoe_figures_plugins.sites:get_current_site_or_by_uuid'
		FIGURES_PIPELINE_TASKS_ROUTING_KEY: 'edx.lms.core.high'
		DAILY_METRICS_IMPORT_HOUR: 13
		DAILY_METRICS_IMPORT_MINUTE: 0


Settings like ``SITES_BACKEND`` require a path to a Python function or class. The path is consists of two parts:
a Python module e.g. ``my_plugin_package.helpers`` and an object e.g ``my_helper`` separated by a colon e.g.
``my_plugin_package.helpers:my_helper``.

This object would be imported by the ``import_from_path`` helper in the
`figures/helpers.py `__ module.

.....................
Configuration options
.....................


* ``FEATURES.FIGURES_IS_MULTISITE`` (default ``False``): Boolean feature flag to run Figures in a single-site mode by
  default (when set to ``False``) most popular Open edX installation option.
  The multisite mode requires a custom ``edx-organizations`` fork that is used for
  Appsembler Tahoe clusters.

* ``FIGURES.SITES_BACKEND`` (default ``None``): A Python path to function to list figures sites.
  For example, this is useful to customize which sites are processed and which are considered inactive.
  By default (when ``None`` is used) all sites are listed in the multi-site mode.

* ``REQUESTED_SITE_BACKEND`` (default ``None``): Python path to a function that gets the current site.
  For example it can be used for API purposes to pass a Site ID to get a different site.
  By default (when ``None`` is used) the Django's ``get_current_site()`` helper is used.


**TBD:** Document ``FIGURES_PIPELINE_TASKS_ROUTING_KEY``, ``DAILY_METRICS_IMPORT_HOUR`` and ``DAILY_METRICS_IMPORT_MINUTE``.

------
Future
------

* Open edX "Hawthorn" will provide a plug-in architecture. This will hopefully simplify Figures installation even more
* Downloadable report files
* Plugin architecture to extend Figures for custom data sources


-----------------
How to Contribute
-----------------


TODO: Add details here or separate `CONTRIBUTING` file to the root of the repo


.. _reporting_issues:

----------------
Reporting Issues
----------------

If you find bugs or run into issues, please submit an issue ticket to the `Figures issue tracker `__ on Github.

.. _reporting_security_issues:

Reporting Security Issues
=========================

Please do not report security issues in public. Please email security@appsembler.com.


.. |travis-badge| image:: https://travis-ci.org/appsembler/figures.svg?branch=master
    :target: https://travis-ci.org/appsembler/figures/
    :alt: Travis

.. |codecov-badge| image:: http://codecov.io/github/appsembler/figures/coverage.svg?branch=master
    :target: http://codecov.io/github/appsembler/figures?branch=master
    :alt: Codecov

Owner

  • Name: Appsembler
  • Login: appsembler
  • Kind: organization
  • Email: github@appsembler.com
  • Location: We're a world-wide distributed team!

The leading platform for experiential learning.

GitHub Events

Total
  • Issue comment event: 1
  • Pull request review event: 1
Last Year
  • Issue comment event: 1
  • Pull request review event: 1

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 976
  • Total Committers: 14
  • Avg Commits per committer: 69.714
  • Development Distribution Score (DDS): 0.383
Past Year
  • Commits: 2
  • Committers: 1
  • Avg Commits per committer: 2.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
John Baldwin j****n@g****m 602
Matej Grozdanović g****i@g****m 185
Bryan Wilson b****a@g****m 51
Omar Al-Ithawi i@o****m 36
dependabot[bot] 4****] 31
Sofiane Bebert b****e@g****m 25
Anders Pearson a****s@t****g 19
melvinsoft m****t@g****m 12
Esther e****h@p****m 7
[Sofiane Bebert] [****e@g****] 2
Shadi Naif s****f@g****m 2
Nate Aune n****e@n****m 2
ponytojas d****l@g****m 1
John Baldwin j****n@a****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 18
  • Total pull requests: 94
  • Average time to close issues: about 1 year
  • Average time to close pull requests: about 1 month
  • Total issue authors: 4
  • Total pull request authors: 13
  • Average comments per issue: 0.61
  • Average comments per pull request: 1.22
  • Merged pull requests: 50
  • Bot issues: 0
  • Bot pull requests: 33
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • johnbaldwin (14)
  • OmarIthawi (2)
  • yagnesh77 (1)
  • lolbus (1)
Pull Request Authors
  • dependabot[bot] (37)
  • johnbaldwin (36)
  • OmarIthawi (5)
  • bryanlandia (5)
  • shadinaif (3)
  • estherjsuh (2)
  • melvinsoft (2)
  • thraxil (2)
  • jfaMan (2)
  • SabihaSabri97 (1)
  • ponytojas (1)
  • grozdanowski (1)
  • BbrSofiane (1)
Top Labels
Issue Labels
documentation (2) pipeline (1)
Pull Request Labels
security (36) dependencies (36) javascript (31) p3 (31) python (5) p0 (2) bug (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 3,523 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 3
  • Total versions: 40
  • Total maintainers: 2
pypi.org: figures

Reporting and data retrieval for Open edX

  • Versions: 40
  • Dependent Packages: 0
  • Dependent Repositories: 3
  • Downloads: 3,523 Last month
Rankings
Forks count: 6.5%
Dependent repos count: 9.0%
Average: 9.1%
Dependent packages count: 10.0%
Stargazers count: 10.0%
Downloads: 10.1%
Maintainers (2)
Last synced: 6 months ago

Dependencies

frontend/package-lock.json npm
  • 1313 dependencies
frontend/package.json npm
  • css-loader ^3.2.0 development
  • webpack-dev-server 2.9.4 development
  • @fortawesome/fontawesome ^1.1.8
  • @fortawesome/fontawesome-svg-core ^1.2.25
  • @fortawesome/free-solid-svg-icons ^5.11.2
  • @fortawesome/react-fontawesome ^0.1.5
  • autoprefixer 7.1.6
  • babel-core ^6.26.3
  • babel-eslint 7.2.3
  • babel-jest ^24.8.0
  • babel-loader 7.1.2
  • babel-preset-react-app ^3.1.2
  • babel-runtime 6.26.0
  • case-sensitive-paths-webpack-plugin 2.1.1
  • chalk 1.1.3
  • classnames ^2.2.6
  • cross-fetch ^3.1.5
  • dotenv 4.0.0
  • dotenv-expand 4.0.1
  • eslint 4.10.0
  • eslint-config-react-app ^2.1.0
  • eslint-loader 1.9.0
  • eslint-plugin-flowtype 2.39.1
  • eslint-plugin-import 2.8.0
  • eslint-plugin-jsx-a11y 5.1.1
  • eslint-plugin-react 7.4.0
  • export-to-csv ^0.2.1
  • extract-text-webpack-plugin 3.0.2
  • file-loader 1.1.5
  • fs-extra 3.0.1
  • history ^4.7.2
  • html-webpack-plugin 2.29.0
  • i18n-iso-countries ^3.7.8
  • immutable ^3.8.2
  • iso-639-1 ^2.0.3
  • jest ^24.8.0
  • moment ^2.29.4
  • multiselect-react-dropdown ^1.5.7
  • node-sass ^4.13.1
  • object-assign 4.1.1
  • postcss-flexbugs-fixes 3.2.0
  • postcss-loader ^3.0.0
  • promise 8.0.1
  • prop-types ^15.6.2
  • raf 3.4.0
  • randomstring ^1.1.5
  • react ^16.5.2
  • react-autosuggest ^9.4.2
  • react-css-transition-replace ^3.0.3
  • react-dev-utils ^5.0.2
  • react-dom ^16.5.2
  • react-grid-layout ^0.16.6
  • react-promise-tracker ^2.0.5
  • react-redux ^5.0.7
  • react-router ^4.3.1
  • react-router-dom ^4.3.1
  • react-router-redux next
  • react-select ^2.0.0
  • react-spinners ^0.3.3
  • react-transition-group ^2.5.0
  • react-vivus ^0.0.2
  • recharts ^1.3.2
  • redux ^3.7.2
  • redux-thunk ^2.3.0
  • sass-loader ^6.0.7
  • style-loader 0.19.0
  • sw-precache-webpack-plugin 0.11.4
  • url-loader 0.6.2
  • vivus ^0.4.4
  • webpack 3.8.1
  • webpack-bundle-tracker ^0.4.2-beta
  • webpack-manifest-plugin 1.3.2
  • websocket-extensions ^0.1.4
  • whatwg-fetch 2.0.3
frontend/yarn.lock npm
  • 1297 dependencies
devsite/requirements/development_juniper.txt pypi
  • drf-yasg2 ==1.19.4 development
devsite/requirements/ginkgo.txt pypi
  • Django ==1.8.18 development
  • Faker ==1.0.4 development
  • Sphinx ==1.8.1 development
  • attrs ==19.1.0 development
  • celery ==3.1.18 development
  • coverage ==4.5.1 development
  • django-celery ==3.2.1 development
  • django-countries ==4.0 development
  • django-debug-toolbar ==1.9.1 development
  • django-environ ==0.4.5 development
  • django-extensions ==1.5.9 development
  • django-filter ==0.11.0 development
  • django-model-utils ==2.3.1 development
  • django-waffle ==0.12.0 development
  • django-webpack-loader ==0.4.1 development
  • djangorestframework ==3.2.3 development
  • edx-drf-extensions ==0.5.1 development
  • edx-opaque-keys ==0.4 development
  • edx-organizations ==0.4.4 development
  • factory-boy ==2.5.1 development
  • freezegun ==0.3.12 development
  • future ==0.18.2 development
  • jsonfield ==1.0.3 development
  • path.py ==8.2.1 development
  • pylint ==1.8.2 development
  • pylint-django ==0.9.1 development
  • pytest ==3.6.2 development
  • pytest-cov ==2.6.0 development
  • pytest-django ==3.1.2 development
  • pytest-mock ==1.7.1 development
  • pytest-pythonpath ==0.7.2 development
  • python-dateutil ==2.4 development
  • pytz ==2016.7 development
  • recommonmark ==0.4.0 development
  • tox ==3.7.0 development
devsite/requirements/hawthorn.txt pypi
  • edx-organizations ==0.4.10 development
devsite/requirements/hawthorn_base.txt pypi
  • Django ==1.11.29 development
  • Faker ==2.0.3 development
  • Sphinx ==1.8.1 development
  • astroid ==1.5.2 development
  • attrs ==19.1.0 development
  • celery ==3.1.25 development
  • coverage ==4.5.4 development
  • django-celery ==3.3.1 development
  • django-countries ==4.6.1 development
  • django-debug-toolbar ==1.11 development
  • django-environ ==0.4.5 development
  • django-extensions ==1.5.9 development
  • django-filter ==1.0.4 development
  • django-model-utils ==3.0.0 development
  • django-waffle ==0.12.0 development
  • django-webpack-loader ==0.6.0 development
  • djangorestframework ==3.6.3 development
  • edx-drf-extensions ==1.5.2 development
  • edx-lint ==0.5.5 development
  • edx-opaque-keys ==0.4.4 development
  • factory-boy ==2.5.1 development
  • flake8 ==3.7.9 development
  • freezegun ==0.3.12 development
  • future ==0.18.2 development
  • jsonfield ==2.0.2 development
  • mock ==3.0.5 development
  • path.py ==8.2.1 development
  • pylint ==1.7.1 development
  • pylint-django ==0.7.2 development
  • pytest ==3.6.2 development
  • pytest-cov ==2.6.0 development
  • pytest-django ==3.1.2 development
  • pytest-mock ==1.7.1 development
  • pytest-pythonpath ==0.7.2 development
  • python-dateutil ==2.7.3 development
  • pytz ==2016.10 development
  • recommonmark ==0.4.0 development
  • tox ==3.1.0 development
devsite/requirements/juniper_base.txt pypi
  • Django ==2.2.28 development
  • Faker ==4.1.0 development
  • Sphinx ==3.1.2 development
  • celery ==3.1.26.post2 development
  • coverage ==5.1 development
  • django-celery ==3.3.1 development
  • django-countries ==5.5 development
  • django-debug-toolbar ==2.2 development
  • django-environ ==0.4.5 development
  • django-filter ==2.3.0 development
  • django-model-utils ==4.0.0 development
  • django-waffle ==0.18.0 development
  • django-webpack-loader ==0.7.0 development
  • djangorestframework ==3.9.4 development
  • edx-lint ==1.4.1 development
  • edx-opaque-keys ==2.1.0 development
  • factory-boy ==2.8.1 development
  • flake8 ==3.8.1 development
  • freezegun ==0.3.12 development
  • jsonfield ==2.1.1 development
  • mock ==3.0.5 development
  • path.py ==12.4.0 development
  • pylint ==2.4.2 development
  • pylint-django ==2.0.11 development
  • pytest ==5.3.5 development
  • pytest-cov ==2.8.1 development
  • pytest-django ==3.8.0 development
  • pytest-mock ==3.2.0 development
  • pytest-pythonpath ==0.7.3 development
  • python-dateutil ==2.7.3 development
  • pytz ==2020.1 development
  • six ==1.15.0 development
  • tox ==3.15.0 development
devsite/requirements/juniper_community.txt pypi
  • edx-organizations ==5.2.0 development
devsite/requirements/test.txt pypi
  • pytest-freezegun ==0.4.2 development
docs/requirements.txt pypi
  • Sphinx ==1.8.1
  • recommonmark ==0.4.0
setup.py pypi
  • sqlparse *
.github/workflows/codeql-analysis.yml actions
  • actions/checkout v2 composite
  • github/codeql-action/analyze v1 composite
  • github/codeql-action/autobuild v1 composite
  • github/codeql-action/init v1 composite
.github/workflows/python-publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v1 composite
  • actions/setup-python v2 composite
  • pypa/gh-action-pypi-publish 27b31702a0e7fc50959f5ad993c78deac1bdfc29 composite
.github/workflows/tests.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v1 composite
  • actions/setup-python v4 composite
devsite/docker-compose.yml docker
  • rabbitmq 3
devsite/requirements/hawthorn_multisite.txt pypi
devsite/requirements/juniper_multisite.txt pypi