Skip to content

Commit f031ea6

Browse files
committed
docs: restructuring
1 parent f7035e3 commit f031ea6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+409
-690
lines changed

CONTRIBUTING.rst

+2-3
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@ If we remember that, our :ref:`code-of-conduct` will come naturally.
1212

1313
.. rubric:: Get in touch
1414

15-
See :ref:`Link <getting-help>` and :ref:`communication-channels`. Don't hesitate
16-
to get in touch with the Invenio maintainers. The maintainers can help you kick
17-
start your contribution.
15+
See :ref:`Link <getting-help>`. Don't hesitate to get in touch with the
16+
Invenio maintainers. The maintainers can help you kick start your contribution.
1817

1918
Types of contributions
2019
----------------------

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (C) 2015-2018 CERN.
3+
Copyright (C) 2015-2020 CERN.
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy of
66
this software and associated documentation files (the "Software"), to deal in

README.rst

+7-1
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,11 @@
2525
:target: https://discord.gg/8qatqBC
2626

2727
Invenio Framework is like a Swiss Army knife of battle-tested, safe and secure
28-
modules providing you with all the features you need to run a trusted digital
28+
modules providing you with all the features you need to build a trusted digital
2929
repository.
30+
31+
**Built with Invenio Framework**
32+
33+
Looking for a turn-key Research Data Management platform? Checkout `InvenioRDM <https://inveniosoftware.org/products/rdm/>`_
34+
35+
Looking for a modern Integrated Library System? Checkout `InvenioILS <https://inveniosoftware.org/products/ils/>`_

docs/community/contributing/maintainers-guide/overview.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ the website, forums, interest groups etc.
3232

3333
- Help contributors get their contributions integrated in Invenio.
3434
- Answer questions and help users in e.g. the chat rooms (see
35-
:ref:`communication-channels`).
35+
:ref:`getting-help`).
3636
- Manage issues, assignments and milestones.
3737
- Review and merge pull requests.
3838
- Prepare releases.
@@ -66,7 +66,7 @@ make a difference on the project!
6666

6767
Still sounds like something for you? Get in contact with one the Invenio
6868
product manager, one of the architects or one of the project coordinators. They
69-
will help you through the process. See :ref:`communication-channels`.
69+
will help you through the process. See :ref:`getting-help`.
7070

7171
Stepping down as maintainer
7272
---------------------------

docs/community/governance.rst

+3-136
Original file line numberDiff line numberDiff line change
@@ -1,146 +1,13 @@
11
..
22
This file is part of Invenio.
3-
Copyright (C) 2017-2018 CERN.
3+
Copyright (C) 2017-2020 CERN.
44
55
Invenio is free software; you can redistribute it and/or modify it
66
under the terms of the MIT License; see LICENSE file for more details.
77

88
Governance
99
==========
10-
Invenio is governed by CERN for the benefit of the community. CERN strives to
11-
make Invenio a collaborative, open and transparent project to ensure that
12-
everyone can contribute and have their say on the directions of the project.
1310

14-
Invenio governance is in general informal and we try to strike a balance
15-
between processes and agreed upon standards vs. the wild west where everyone do
16-
as they see fit. The governance model is intended to allow that people
17-
progressively take larger and larger responsibilities with support from the
18-
existing leadership.
11+
Invenio is a community-driven effort, governed by CERN for the benefit of the community. CERN strives to make Invenio a collaborative, open and transparent project to ensure that everyone can contribute and have their say on the directions of the project.
1912

20-
These following sections define the different roles and responsibilities in the
21-
project, define how decisions are taken and how people are appointed to
22-
different roles. Overall, we expect every person who participates in the
23-
project to adhere to our :ref:`code-of-conduct`.
24-
25-
.. note::
26-
27-
The currrent governance model puts in words how the collaboration currently
28-
works in practice today and sets a basic framework for how we collaborate
29-
and take decisions in the project.
30-
31-
If the nature of the community or contributors changes this governance
32-
model may be reviewed and changed if necessary.
33-
34-
Roles and responsibilities
35-
--------------------------
36-
The *product manager*, *coordinators*, *architects* and *maintainers* (as
37-
defined below) make up the leadership of Invenio. The leaders of Invenio are
38-
**service people** who:
39-
40-
- take an active role in driving the project forward,
41-
- help newcomers as well as long-time contributors have great
42-
experience contributing to Invenio,
43-
- help train members to progressive take larger responsibility in the project,
44-
- are role models for the remaining community.
45-
46-
**Roles:**
47-
48-
* **Members**: Anyone using Invenio.
49-
* **Contributors**: Anyone contributing to Invenio (in it widest possible
50-
interpretation, i.e. not only programmers).
51-
* **Maintainers**: Anyone maintaining at least one repository. Maintainers are
52-
responsible for managing the issues and/or the code base of a repository
53-
according to Invenio's standards.
54-
* **Architects**: Anyone maintaining 20+ repositories (though max 10 people).
55-
Architects are responsible for the overall Invenio technical architecture as
56-
well as managing and training maintainers on their respective repositories.
57-
* **Coordinators**: Representatives of Invenio based services that would like
58-
to coordinate their Invenio development efforts with other services and
59-
provide input on the product road map.
60-
* **Product manager**: Overall responsible for Invenio's vision, strategy and
61-
day-to-day management. Responsible for managing and training architects and
62-
coordinators.
63-
64-
Commit access on repositories are given to contributors, maintainers and
65-
architects. Contributors can commit/merge to feature branches while only
66-
maintainers and architects can commit/merge to master/maintenance branches
67-
(meaning also only they can release packages to PyPI and NPM).
68-
69-
Decision making
70-
---------------
71-
We strive to take decisions openly and by consensus, though ultimately CERN
72-
represented by the Invenio product manager has the final say on all decisions
73-
in the project. In particular this means that there is no formal voting
74-
procedure for Invenio.
75-
76-
**Leaders drive decision making**
77-
78-
The Invenio product manager, architects, coordinators and maintainers as the
79-
leaders of the project are responsible for driving decision making in their
80-
respective domains.
81-
82-
Driving decision making means:
83-
84-
- facilitating an open constructive discussion around a decision that matches
85-
the level of importance and impact of a decision,
86-
- striving for reaching consensus on a decision and ensuring relevant other
87-
members are aware and included on the decision,
88-
- ensuring decisions are in alignment with the overall Invenio vision,
89-
strategy, architecture and standards,
90-
- coordinating the decision with the Invenio leadership (product manager,
91-
architects and coordinators),
92-
- taking the decision.
93-
94-
**Leaders implement decisions**
95-
96-
Leaders are responsible for following up decisions they take by actual
97-
implementation. Decision should not be considered final unless it is
98-
actually implemented or documented publicly.
99-
100-
**Disagreements**
101-
102-
Leaders of the project should always strive for consensus. If that is not
103-
possible the leader taking a decision should alert the Invenio product manager
104-
prior to taking the decision.
105-
106-
Members who are disagreeing with a decision may ask the product manager to
107-
review a specific decision and possible change it.
108-
109-
Members who are disagreeing with the Invenio product manager may escalate the
110-
product manager's decision to their hierarchy at CERN.
111-
112-
Appointments
113-
------------
114-
The Invenio product manager is appointed by CERN. Architects, coordinators and
115-
maintainers are appointed by the Invenio product manager in collaboration with
116-
existing architects and coordinators.
117-
118-
Maintainers are appointed by the architects (e.g. a new Invenio module) or
119-
coordinators (e.g. a new special interest group).
120-
121-
In general, appointments are made in an informal way, and usually anyone
122-
volunteering that have been showing commitment to the project will get
123-
appointed. Any member can volunteer or suggest other members for roles.
124-
125-
**Revoking of appointed roles**
126-
127-
The product manager may revoke appointed roles of a member for reasons such as
128-
(but not limitied to):
129-
130-
- lack of activity
131-
- violations of the code of conduct
132-
- repeated infringements of the contribution, style or maintainer guides.
133-
134-
The product manager must give a warning to the member to allow them to correct
135-
their behavior except in severe cases. Revoking roles should be a last measure,
136-
and only serve the purpose to ensure that Invenio has a healthy community and
137-
collaboration based on our :ref:`code-of-conduct`.
138-
139-
Working/Interest groups
140-
-----------------------
141-
Working/interest groups may be set up by the product manager on request of any
142-
group of members who wish to address a particular area of Invenio (say MARC21
143-
support or research data management). Working/interest groups help coordinate
144-
the overall vision, strategy and architecture of a specific area of Invenio.
145-
Each working/interest group must have chair that reports to the product
146-
manager.
13+
Please see the full governance on https://inveniosoftware.org/governance/

docs/getting-started/history.rst docs/community/history.rst

+21
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,24 @@ deal with very large research datasets.
8080
Thus, in late 2015 we were being slowed so much down by our past legacy that we
8181
saw no other way that starting over from scratch if we were to deal with the
8282
next 20 years of challenges.
83+
84+
Mailing lists
85+
-------------
86+
We have discontinued the use of mailing lists, but for historical reasons you
87+
can still find them here:
88+
89+
- ``[email protected]``: Originally used for announcing new
90+
Invenio releases and other major news concerning the project.
91+
`archive <https://groups.cern.ch/group/project-invenio-announce/Lists/Archive/100.aspx>`_
92+
- ``[email protected]``: Originally used for discussion among
93+
users and administrators of Invenio instances.
94+
`old general archive <https://groups.cern.ch/group/project-invenio-general/Lists/Archive/100.aspx>`_,
95+
`very old general archive <https://groups.cern.ch/group/project-cdsware-users/Lists/Archive/100.aspx>`_
96+
- ``[email protected]``: Originally used for discussion among
97+
Invenio developers.
98+
`old devel archive <https://groups.cern.ch/group/project-invenio-devel/Lists/Archive/100.aspx>`_,
99+
`very old devel archive <https://groups.cern.ch/group/project-cdsware-developers/Lists/Archive/100.aspx>`_
100+
101+
Note that all the mailing lists are also archived (as of the 20th of
102+
July, 2011) on `The Mail Archive <http://www.mail-archive.com/>`_.
103+

docs/community/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,4 @@ are here for the interested.
2121
governance
2222
code-of-conduct
2323
license
24+
history

docs/conf.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252

5353
# General information about the project.
5454
project = u'Invenio'
55-
copyright = u'2015-2019, CERN'
55+
copyright = u'2015-2020, CERN'
5656
author = u'CERN'
5757

5858
# The version info for the project you're documenting, acts as replacement for

docs/documentation/bundles/alpha.rst

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
Invenio modules (alpha)
2+
-----------------------
3+
.. note::
4+
5+
These modules are in alpha. The modules are being used in production
6+
systems but are most likely subject to changes and are missing
7+
documentation.
8+
9+
In addition to above bundles, we have a number of other individual modules
10+
which are all being used in production systems, but which are likely subject
11+
to change prior to final release and in most cases are missing documentation.
12+
13+
- `invenio-accounts-rest <https://invenio-accounts-rest.readthedocs.io>`_
14+
- REST APIs for account management.
15+
- `invenio-charts-js <https://invenio-charts-js.readthedocs.io>`_
16+
- AngularJS application for producing charts.
17+
- `invenio-csl-js <https://invenio-csl-js.readthedocs.io>`_
18+
- AngularJS application for rendering citation strings via the records
19+
REST API and the CSL REST API.
20+
- `invenio-csl-rest <https://invenio-csl-rest.readthedocs.io>`_
21+
- REST API for retrieving Citation Style Language (CSL) style files.
22+
- `invenio-github <https://invenio-github.readthedocs.io>`_
23+
- GitHub integration with automatic archiving of new releases in Invenio.
24+
- `invenio-openaire <https://invenio-openaire.readthedocs.io>`_
25+
- Integration with OpenAIRE, including support for harvesting Open Funder
26+
Regsitry and the OpenAIRE grants database, as well as REST APIs for
27+
funders and grants.
28+
- `invenio-opendefinition <https://invenio-opendefinition.readthedocs.io>`_
29+
- REST API for licenses from OpenDefinition and SPDX.
30+
- `invenio-pages <https://invenio-pages.readthedocs.io>`_
31+
- Static pages module for Invenio.
32+
- `invenio-pidrelations <https://invenio-pidrelations.readthedocs.io>`_
33+
- Persistent identifier relations management to support e.g. DOI
34+
versioning.
35+
- `invenio-previewer-ispy <https://invenio-previewer-ispy.readthedocs.io>`_
36+
- ISPY previewer.
37+
- `invenio-query-parser <https://invenio-query-parser.readthedocs.io>`_
38+
- Invenio v1 compatible query parser for Invenio v3. Note the module is GPL
39+
licensed due to a GPL-licensed dependency.
40+
- `invenio-s3 <https://invenio-s3.readthedocs.io>`_
41+
- Support for the S3 storage protocol in Invenio.
42+
- `invenio-saml <https://invenio-saml.readthedocs.io>`_
43+
- SAML support for Invenio.
44+
- `invenio-sequencegenerator <https://invenio-sequencegenerator.readthedocs.io>`_
45+
- Module for minting and tracking multiple sequences for e.g. report
46+
numbers, journals etc.
47+
- `invenio-sse <https://invenio-sse.readthedocs.io>`_
48+
- Server-Sent Events (SSE) integration in Invenio.
49+
- `invenio-webhooks <https://invenio-webhooks.readthedocs.io>`_
50+
- REST API for receiving and processing webhook calls from third-party
51+
services.
52+
- `invenio-xrootd <https://invenio-xrootd.readthedocs.io>`_
53+
- Support for the storage protocol XRootD in Invenio.
54+
- `react-searchkit <https://invenio-react-searchkit.readthedocs.io>`_
55+
- Modular React library for implementing search interfaces on top of
56+
Invenio, Elasticsearch or other search APIs. Replacement for
57+
Invenio-Search-JS.

docs/documentation/bundles/auth.rst

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
Auth bundle
2+
-----------
3+
The auth bundle contains all modules related to account and access management,
4+
user profiles, session management and OAuth (provider and client)
5+
6+
Included modules:
7+
8+
- `invenio-access <https://invenio-access.readthedocs.io>`_
9+
- Role Based Access Control (RBAC) with object level permissions.
10+
- `invenio-accounts <https://invenio-accounts.readthedocs.io>`_
11+
- User/role management, registration, password recovery, email
12+
verification, session theft protection, strong cryptographic hashing of
13+
passwords, hash migration, session activity tracking and CSRF protection
14+
of REST API via JSON Web Tokens.
15+
- `invenio-oauth2server <https://invenio-oauth2server.readthedocs.io>`_
16+
- OAuth 2.0 Provider for REST API authentication via access tokens.
17+
- `invenio-oauthclient <https://invenio-oauthclient.readthedocs.io>`_
18+
- User identity management and support for login via ORCID, GitHub, Google
19+
or other OAuth providers.
20+
- `invenio-userprofiles <https://invenio-userprofiles.readthedocs.io>`_
21+
- User profiles for integration into registration forms.
22+
23+
The modules relies heavily on a suite of open source community projects:
24+
25+
- `flask-security <https://pythonhosted.org/Flask-Security/>`_
26+
- `flask-login <https://flask-login.readthedocs.io/>`_
27+
- `flask-principal <https://pythonhosted.org/Flask-Principal/>`_
28+
- `flask-oauthlib <https://flask-oauthlib.readthedocs.io/>`_
29+
- `passlib <https://passlib.readthedocs.io/en/stable/>`_

docs/documentation/bundles/base.rst

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
Base bundle
2+
-----------
3+
The base bundle contains all modules related to the generic web application.
4+
This includes the Flask/Celery application factories, configuration management,
5+
I18N, logging, database management, assets/theme management, mail handling and
6+
administration interface.
7+
8+
Included modules:
9+
10+
- `invenio-admin <https://invenio-admin.readthedocs.io>`_
11+
- Administration interface for Invenio based on Flask-Admin.
12+
- `invenio-app <https://invenio-app.readthedocs.io>`_
13+
- Flask, WSGI, Celery and CLI applications for Invenio including
14+
security-related headers and rate limiting.
15+
- `invenio-assets <https://invenio-assets.readthedocs.io>`_
16+
- Static files management and Webpack integration for Invenio.
17+
- `invenio-base <https://invenio-base.readthedocs.io>`_
18+
- Flask application factories implementing the application loading patterns
19+
with entry points in Invenio.
20+
- `invenio-cache <https://invenio-cache.readthedocs.io>`_
21+
- Caching module for Invenio, supporting Redis and Memcached as backends.
22+
- `invenio-celery <https://invenio-celery.readthedocs.io>`_
23+
- Task discovery and default configuration of Celery for Invenio.
24+
- `invenio-config <https://invenio-config.readthedocs.io>`_
25+
- Configuration loading pattern responsible for loading configuration from
26+
Python modules, instance folder and environment variables.
27+
- `invenio-db <https://invenio-db.readthedocs.io>`_
28+
- Database connection management for Invenio.
29+
- `invenio-formatter <https://invenio-formatter.readthedocs.io>`_
30+
- Jinja template engine utilities for Invenio.
31+
- `invenio-i18n <https://invenio-i18n.readthedocs.io>`_
32+
- I18N utilities like user locale detection, message catalog merging and
33+
views for language change.
34+
- `invenio-logging <https://invenio-logging.readthedocs.io>`_
35+
- Configuration of logging to both console, files and log aggregation
36+
engines like `sentry.io <https://sentry.io/>`_
37+
- `invenio-mail <https://invenio-mail.readthedocs.io>`_
38+
- Mail sending for Invenio using Flask-Mail.
39+
- `invenio-rest <https://invenio-rest.readthedocs.io>`_
40+
- REST API utilities including Cross Origin Resource Sharing (CORS) and
41+
Content Negotiation versioning support.
42+
- `invenio-theme <https://invenio-theme.readthedocs.io>`_
43+
- Jinja templates implementing a basic theme for Invenio as well as menus
44+
and breadcrumbs support.
45+
- `docker-invenio <https://docker-invenio.readthedocs.io>`_
46+
- Docker base images based on CentOS 7 for Invenio.
47+
- `pytest-invenio <https://pytest-invenio.readthedocs.io>`_
48+
- Testing utilities for Invenio modules and applications.

0 commit comments

Comments
 (0)