Invenio digital library framework

Overview

Invenio Framework v3

Open Source framework for large-scale digital repositories.

https://travis-ci.org/inveniosoftware/invenio.svg?branch=master https://img.shields.io/badge/Discord-join%20chat-%237289da

Invenio Framework is like a Swiss Army knife of battle-tested, safe and secure modules providing you with all the features you need to build a trusted digital repository.

Our other products

Looking for a turn-key Research Data Management platform? Checkout InvenioRDM

Looking for a modern Integrated Library System? Checkout InvenioILS

Built with Invenio Framework

See examples on https://inveniosoftware.org/products/framework/ and https://inveniosoftware.org/showcase/.

Comments
  • RFC git signatures (kill, simplify or status quo)

    RFC git signatures (kill, simplify or status quo)

    Problem

    Related to RFC #2856.

    Currently we have the following commit message directives (see here):

    Signed-off-by
    Reported-by
    Co-authored-by
    Improved-by
    Acked-by
    Tested-by
    Reviewed-by
    

    You can broadly categorise them in two types:

    • directives related to giving credit (co-authored-by, reported-by)
    • directives related to quality stamping (reviewed-by, signed-off-by)

    For new contributors it's not easy to know which to use when, and additionally it's not clear if the differences in signatures is actually used.

    Proposal

    Simplify the possible commit directives to:

    • Signed-off-by - (Related to quality) Used by authors, testers and reviewers to sign that a given commit adheres to Invenio's quality standards and to the best of their knowledge is ready to be merged.
    • Co-authored-by - (Related to credit) Used to acknowledge significant co-authorship including when a person significantly improves the code after the original author left.

    and exceptionally:

    • Reported-by - Use only in exceptional circumstances, when there's no GitHub issue (could happen when an external user reports a bug report via email, and not issue was created).

    Note: Tester/reviewers should only sign commits they can fully confirm the quality off. Blanco signing of commits may negatively impact their merit and credibility. For commits to be considered for integration a minimum of two Signed-off-by signatures are needed. That a commit is considered for integration, does not mean the commit actually will be integrated.

    Component: global Branch: master 
    opened by lnielsen 67
  • RFC richer structure in commit log messages

    RFC richer structure in commit log messages

    Background

    Invenio commit log messages have standardised format described in:

    • https://github.com/inveniosoftware/invenio/blob/master/CONTRIBUTING.rst (recommendation 6)
    • http://invenio-software.org/wiki/Tools/Git/Workflow#R2.Remarksoncommitlogmessages

    Besides better QA, better readability, easier future bisecting, etc, this permits also to prepare release notes in an automated manner.

    This works OK for small incremental update releases with 100+ commits:

    • https://raw.githubusercontent.com/inveniosoftware/invenio/v1.1.4/RELEASE-NOTES

    but it does not work so well for large feature releases consisting of 1000+ commits, as the recent v1.2.0 and v2.0.0 releases:

    • https://raw.githubusercontent.com/inveniosoftware/invenio/v1.2.0/RELEASE-NOTES
    • https://raw.githubusercontent.com/inveniosoftware/invenio/v2.0.0/RELEASE-NOTES

    The problems include:

    • Shortness of messages. The commit message headline is limited to some 50 characters, which is good for being concise, however this is often not sufficient to express given change with reasonable clarity to the end users.
    • Nature of changes. We have started to use "NOTE" in the commit logs to attract attention to important (compatibility) changes, however this is not enough to inform the user about the nature of the change. "Is it a new feature? A bug fix? Or just some internal refactoring that I don't have to care about?"
    • One feature branch may consist of many commits, while for the reporting we may only need one item. Some of the commits may be better "silenced" in the high-level end-user report.

    Proposal

    Let's introduce richer structural markup in our commit log messages that would address these drawbacks so that we could generate nicer, more informative progress reports in between releases, and release notes later.

    Sphinx can serve as an example of what I have in mind:

    • http://sphinx.readthedocs.org/en/latest/changes.html#release-1-2-3-released-sep-1-2014

    There are basically two approaches how to address this: (1) via commit log messages; (2) via tickets (issues, pull requests).

    Option 1: use richer structure in commit messages

    We could use more leading labels besides NOTE, for example:

    foo: better support for xyzzy and zyxxy
    
    * FEATURE Foo now supports xyzzy in all the user facing web pages.
    
    * FIX Corrects interface to Zyxxy...
    
    * INCOMPATIBLE Removes foo...
    
    Reviewed-by: John Doe
    

    (Side note: instead of textual labels, we could use a subset of standard emojis that GitHub supports, say :bug: instead of FIX, bringing additional eye candy to our commit logs.)

    The richer commit log message structure could be checked by and enforced via kwalitee tool that every programmer should run before making pull requests anyway.

    Advantage: git repository has all the information about our software; this "preserves history"; it is usable offline; it is independent of the ticketing system we use; it is close to acked-by/reviewed-by directives.

    Disadvantage: once committed, the information cannot be changed; the integrators should pay extra attention and should promote forward-thinking about formulating user-visible changes.

    Option 2: use ticket tracker

    Everything we are dealing with has an issue on GitHub, and we triage our issues with labels and milestones for release planning and priorities:

    • https://forum.invenio-software.org/t/triaging-issues-labels-milestones/58

    Hence, instead of enriching the commit log message, we could store release note like information in GitHub issues. E.g. github issues title could be used for item reporting, and could be made more verbose that the commit log message headline.

    Since our NOTE label contain verbose text to be displayed to users, we'd have to store such a structured information an extra comments, for example structured in YAML style:

    notes:
      feature:
       - Foo now supports xyzzy in all the user facing web pages.
      fix:
       - Corrects interface to Zyxxy...
      incompatible_change:
       - Removes foo...
    

    Advantage: messages can be easily edited after commit is done; "user insignificant commits" can be grouped in one single issue/PR/branch; usage of issues drives us to use tickets for everything, improving visibility/milestone/planning.

    Disadvantage: bound to concrete ticketing system; offline usage is impossible; it is easy to "destroy history"; the notes are stored outside of acked-by/tested-by/reviewed-by information (unless we refactor this one too); extra information storage via issue comment looks kind of ugly.

    Option 3: use git notes

    We could use other techniques, such as git notes, where integrators can store the further information about commits. However, we've discussed that before and found the usage of git notes not that attractive.

    WDYT?

    Which of these directions do you prefer?

    Label set

    Whatever technique we'll happen to prefer, we should muse in parallel about the suitable label set to use.

    For example:

    | label | meaning | | --- | --- | | FEATURE | commits adds a new feature | | IMPROVEMENT | commit improves an existing feature | | REMOVAL | commit removes some feature | | FIX | commit fixes a bug | | DOCUMENTATION | no code, just docs | | REFACTORING | no user-facing changes | | COMPATIBILITY | compatibility remarks, dropping Python-2.6 | | NOTE | general note |

    Branch: master 
    opened by tiborsimko 47
  • WIP base: rewrite apache configuration generator

    WIP base: rewrite apache configuration generator

    • The templates were merged into one, and so was the resulting configuration file. Should the user need to enable or disable SSL for example, the recommended way is to edit the invenio configuration and re-run create-config.
    • All variables that are used in the template must now pass through apache.py, even if no operation is performed on them. All logic that does not logically belong in Jinja2 has been removed from the template.
    • Apache version 2.2 OpenSSL 1.0.1e are now the minimum supported. These are the official CentOS 6.6 packages.
    • mod_headers is now necessary. So is socache_shmcb for apache >= 2.3.3 in order to use SSLStaplingCache.
    • SSL allowed protocols and ciphers have been set according to mozilla's recommendations.
    • The switches for inveniomanage apache create-config have changed: --force was dropped as it was a NO-OP.
    • It is now possible to manually set the paths to the desired certificates, as the following configuration directives have been ported from zenodo: 'APACHE_CERTIFICATE_PEM_FILE', 'APACHE_CERTIFICATE_FILE', 'APACHE_CERTIFICATE_KEY_FILE'.
    • invenio/legacy/inveniocfg.py:_detect_ip_address exception handling is improved and it now uses 'google.com' instead of 'invenio.org' to test connectivity, because of their uptime.

    Fixes #2626

    Branch: master Status: in work Service: INSPIRE Service: CDS Service: ZENODO Status: someday 
    opened by dset0x 40
  • BibField: clean up `doi` field and other FIXME in `atlantis.cfg`

    BibField: clean up `doi` field and other FIXME in `atlantis.cfg`

    Similarly to #1557, there are more clean-ups to be done in atlantis.cfg. For example, in invenio.conf we have:

    CFG_OAI_ID_FIELD = 909COo
    CFG_OAI_SET_FIELD = 909COp
    CFG_OAI_PREVIOUS_SET_FIELD = 909COq
    

    while in atlantis.cfg we have:

    @persistent_identifier(4)
    oai:
        creator:
            @legacy((("024", "0248_", "0248_%"), ""),
                    ("0248_a", "oai"),
                    ("0248_p", "indicator"))
            marc, "0248_", {'value': value['a'], 'indicator': value['p']}
        producer: 
            json_for_marc(), {"0248_a": "oai", "0248_p": "indicator"}
    

    and:

    FIXME_OAI:
        creator:
            @legacy((('909', '909CO', '909CO%'), ''),
                    ('909COi', 'group'),
                    ('909COs', 'number'),
                    ('909COo', 'id'),
                    ('909COp', 'set'),
                    ('909COq', 'previous_set'))
            marc, "909CO", {'group':value['i'], 'number':value['s'], 'id':value['o'], 'set':value['p'], 'previous_set':value['q']}
    

    Notice the naming differences: e.g. "oai.indicator" should rather be called "oai.set"; "oai.value" should rather be called "oai.id".

    Historically, 909CO MARC tag in Invenio Atlantis defaults was used to store OAI information. Later, 0248 was chosen on CDS and elswhere as a better MARC tag location. Invenio Atlantis defaults were not changed though, which permitted e.g. to test easily how Invenio is configurable for various site conditions.

    However, as it is agreed that 0248 is better OAI location, we should probably move defaults there, so that new Invenio installations are using by default "good" MARC tags already.

    (This is similar with 773 vs 909C4, etc, see #1557.)

    P.S. See also other FIXMEs in atlantis.cfg. It would be useful to go through the file, fix all FIXMEs, and fix demobibdata.xml and democfgdata.sql and invenio.conf accordingly.

    Branch: legacy Component: BibField 
    opened by tiborsimko 38
  • RFC JSON Schema-based record editor (replacement for BibEdit)

    RFC JSON Schema-based record editor (replacement for BibEdit)

    Problem

    BibEdit served well in Invenio 1.x but is MARC-centric and is not designed for extensibility. Since Invenio is moving towards using jsonalchemy as its record representation (thus opening the ports for infinitely flexible record models), an hardcoded table-based web editor is no longer sufficient to natively edit Invenio records.

    Proposal

    Since jsonalchemy is about (inveniosoftware/jsonalchemy#9) to support JSON Schemas which is a proposed standard to describe JSON models (including validation), we could automatically generate a form that allows the cataloger to edit a given record according to the schema. This would allow the system to leverage on data models, for more and more consistent records. It happens that this is already implemented thanks to json-editor. E.g. see: http://jeremydorn.com/json-editor/.

    Starting from this pre-existing editor one can build around/on top of it additional functionalities such as:

    • [ ] record preview
    • [ ] PDF preview
    • [ ] auto-completion based on KBs
    • [ ] automatic linking (e.g. when editing an arXiv ID, to be able to jump to it)
    • [ ] server side validation based on JSONAlchemy
    • [ ] keyboard shortcuts
    • [ ] re-ordering through drag&drop
    • [ ] editing references to other records (e.g. author signatures, affiliations, citations, superseeding... see #2573)
    • [ ] shurtcuts such as *automatically generating new field instances by splitting the content of a given field
    • [ ] isbn check for duplicates
    • [ ] Implement shell like short cuts to jump directly to a given field (e.g. Ctrl-R)

    image

    Type: enhancement Component: BibEdit Branch: master Service: INSPIRE Service: CDS 
    opened by kaplun 35
  • WebSearch: fix test case searching by date 1976-04-01 and t dog

    WebSearch: fix test case searching by date 1976-04-01 and t dog

    Originally on 2010-12-14

    When python-dateutil is not installed, the following test case fails:

    ======================================================================
    FAIL: SPIRES search syntax - searching by date 1976-04-01 and t dog
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File
    "/opt/python2.4/lib/python2.4/site-packages/invenio/search_engine_query_parser_tests.py",
    line 535, in test_date_by_yr_mo_day_wholemonth_and_suffix
        self._compare_searches(inv_search, spi_search)
      File
    "/opt/python2.4/lib/python2.4/site-packages/invenio/search_engine_query_parser_tests.py",
    line 328, in _compare_searches
        assert result_obtained == result_wanted, \
    AssertionError: SPIRES parsed as [['+', '1976-04-01', 'year', 'w'],
    ['+', 'dog', 'title', 'w']] instead of [['+', '1976-04', 'year', 'w'],
    ['+', 'dog', 'title', 'w']]
    

    When python-dateutil is installed, the test works.

    This test was introduced in dc864c5b8c2205b3e43e14fb87beadc5743e5411.

    It seems strange that 1976-04-01 should get interpreted as 1976-04 (day interpreted as month, as it were) when python-dateutil is installed, and kept unchanged otherwise. Joe, was the day/month interpretation really wanted this way due to SPIRES syntax compatibility or something?

    If yes, then we should probably (1) document this and emit visible warning to the user if they search for such a string; (2) execute the test case only when the python-dateutil is installed.

    If not, then we should fix it.

    Type: bug Component: WebSearch Branch: maint-1.1 
    opened by tiborsimko 29
  • CV generator

    CV generator

    Originally on 2010-10-14

    User asking for CV generator in INSPIRE, a la:

    http://www.slac.stanford.edu/spires/hep/help/CV.shtml

    Long term, would be good to do.

    Type: enhancement Component: BibFormat 
    opened by traviscb 29
  • access: usedeposit action addition

    access: usedeposit action addition

    • NEW Adds usedeposit action which enables per user access restrictions for different deposit types. (closes #2724)
    • Requires running webaccessadmin -u admin -c -a -D command.

    Signed-off-by: Jan Stypka [email protected]

    cc @jmartinm @jalavik

    Type: enhancement 
    opened by jstypka 28
  • RFC Centralizing record linking

    RFC Centralizing record linking

    Current model in Invenio master

    Linking among records exist by virtue of dedicated MARC subfields.

    Citations

    E.g. in Invenio master out of the box, this is a reference (as generated by refextract):

    001329723 999C5 $$0647131$$hC. Quesne and V. M. Tkachuk$$o2$$sJ.Phys.,A37,4267$$y2004
    

    $$0 contains the official citation from record 1329723 to record 647131.

    This has the following characteristics:

    • This implementation exposes the internal record IDs.
    • In case a there is no $0 the other subfields are passed to search engine (by BibRank and by BibFormat) in order to try to find at least one matching record (which in case would be stored subsequently in $0)
    • In order to know which records are cited by the current one, it's possible to use the search engine with 999C50:1329723 or use the citation dicts wich are cached by BibRank.
    • When a new record is added in the system which happens to be the one referred by a given citation through the other subfields, the new record has to be searched in 999C5s (using its 773) in order to see if some potential citation has to updated, in this case:
    000647131 773__ $$c4267-4281$$pJ.Phys.$$vA37$$y2004
    

    Authors

    Authors in 100__ and 700__ have their exact name used to identify the specific MARC field, which is then connected in the aidPERSONIDPAPERS table to an author profile.

    These author profiles are connected to authority MARC records via e.g. an internal ID such as ORCID.

    Affiliation

    In the INSPIRE use case affiliations, next to authors in a paper, are literally connected with a corresponding institute record (via exact string matching).

    Photos/Album

    In CDS photos are connected to the parent album in a way that photos metadata are agumented with album metadata at indexing time.

    Other links

    Still from the INSPIRE example 773__0 is used to link a book chapter record to the corresponding book record. 78502w and 78708w are used to explain the superseed/superseeded relation.

    Issues with the current model

    • There is not 1 model but several. Each type of link had to implement a dedicated daemon to enforce consistency, each type of link is manipulated in a dedicated way and indexed/cached in a dedicated way
    • By explicitly writing in the metadata the recid of the linked record, in case the latter is merged into another one, the latter has to be updated
    • It's not possible to express linking with a given level of confidence (e.g. imagine when a link is not made in an authoritative way but only guessed).

    Proposal

    Centralize the control of links by having a new table (or SQLAlchemy Model) with the form:

    | uuid | from | link type | to | confidence | | --- | --- | --- | --- | --- | | 1234-5678-1234-5678 | 123 | refersto | 456 | 0.9 | | 2345-1234-1243-1245 | 234 | authoredby | 567 | 1.0 | | 2345-1234-1243-1245 | 234 | affiliatedat | 678 | 0.5 |

    • The uuid would be associated with a given recjson field upon ingestion by the uploader workflow, for all those fields that have an outgoing link (for example each author field within a record would receive its own uuid, the same would happen for each reference).
    • Ideally, only relations from records representing static entities (e.g. papers) to dynamic one (e.g. people or institutions) should be stored, while the opposite direction should be calculated (and cached) at runtime. In this way we would avoid inconsistencies and continuous swarm of updates.
    • The confidence level could be used to store an authoritative link (1.0) or a weaker one (e.g. when it was guessed by a machine learning algorithm or by a fuzzy search). Ideally storing 0 would also have the value of ground truth.
    • This table could be used to populate calculated fields in recjson, where the recid is stored at runtime when the record is sent to be indexed to ElasticSearch.
    • When a relation is coming at input time (e.g. when an incoming paper, states that the author foo is really the one of record 123) this relation will be interpreted by a given recjson imported and written into the above relation table (a uuid is generated on the fly).
    • When a record is modified the uuid should be preserved, when the modification is not about changing a given link.
    • A new generic widget could be used that curators directly edit specific subset of this table (e.g. all the relations of type refersto for record 123. Such a widget could let the curator assign external records for not resolved relations by allowing for autocompletion etc.
    • The new bibrank for citation would simply look at this table
    • The new bibauthorid would manipulate this table
    • The new indexer based on elastic search would consume this table trough recjson
    • The new formatter would use this table to create records link

    This table might grow over time but, thanks to SQLAlchemy transparent sharding it could be sharded WRT the link_type property, thus mapping to several specific tables.

    Side note

    Connected with this RFC is the question whether we should still identify records by integers or rather switch to use more generic uuid and namespace them e.g. to use the same tool to handle not only bibliographic records but also annotations, comments, documents, library items... This should be the subject of a new RFC.

    Type: enhancement Component: BibRank Component: BibIndex Component: WebSearch Component: BibFormat Component: BibEdit Component: BibUpload Component: BibMerge Component: BibAuthority Branch: master Component: BibAuthorID Component: BibRecord Component: BibField Component: BibCheck Service: INSPIRE Service: CDS Component: formatter 
    opened by kaplun 28
  • legacy: run_sql problems with quotes

    legacy: run_sql problems with quotes

    After 79741888d8e71b22e704a30038f9857d90a38590 there are several problems with running programs such as bibsched:

    $ bibsched
    ...
    File "/home/jlavik/envs/pu/src/invenio/invenio/legacy/dbquery_mysql.py", line 277, in run_sql
        except (OperationalError, InterfaceError):
    NameError: global name 'OperationalError' is not defined
    

    PS: Perhaps pylint -E could have catched this initial error?

    I fixed the import, but for bibsched troubles were not over:

      File "/home/jlavik/envs/pu/src/invenio/invenio/legacy/bibsched/cli.py", line 378, in fetch_debug_mode
        r = run_sql('SELECT value FROM schSTATUS WHERE name = "debug_mode"')
      File "/home/jlavik/envs/pu/src/invenio/invenio/legacy/dbquery_mysql.py", line 277, in run_sql
        rc = cur.execute(sql, param)
      File "/home/jlavik/envs/pu/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
        self.errorhandler(self, exc, value)
      File "/home/jlavik/envs/pu/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
        raise errorclass, errorvalue
    _mysql_exceptions.OperationalError: (1054, "Unknown column 'debug_mode' in 'where clause'")
    

    I tried fixing these, but its simply too much. Probably due to ansi mode quotes? I suggest in the meantime to revert 79741888d8e71b22e704a30038f9857d90a38590

    @hachreak @jirikuncar

    Branch: master 
    opened by jalavik 27
  • RFC Generic BibTeX export

    RFC Generic BibTeX export

    Originally on 2011-06-06

    Currently BibTeX export is generated out of the box, by using a single output format, calling a single format element, namely bfe_bibtex.py. This imply the business-logic of the BibTeX export is all hard-coded in one place and can not easily be adapted to the most different document type. This has an impact, e.g. in CDS, when exporting Thesis documents.

    One possible solution would be to have generic bfe_bibtex_field.py, based on bfe_bibtex.format_bibtex_field, able to format certain subfields, and to provide demo BibTeX exports, that are adapted to the specific document type.

    Type: enhancement Component: BibFormat Service: INSPIRE Service: CDS Service: ZENODO 
    opened by kaplun 26
  • Invenio Framework installation

    Invenio Framework installation

    Package version (if known):

    I am trying to install Invenio Framework but when I run the command $ ./scripts/bootstrap I have this error that I can't solve

    image

    bug 
    opened by Ouzy012 2
  • Typo in getting-started docs

    Typo in getting-started docs

    opened by mhucka 0
  • Adding a record fails with permission denied

    Adding a record fails with permission denied

    Package version (if known): 3.3

    Describe the bug and Steps to Reproduce

    I deployed Invenio following the documentation here: https://invenio.readthedocs.io/en/latest/quickstart/quickstart.html I followed the instruction to create a record: https://invenio.readthedocs.io/en/latest/quickstart/crud-operations.html#crud-operations.

    When executing the curl command to add a record:

    curl -k --header "Content-Type: application/json" \
        --request POST \
        --data '{"title":"Some title", "contributors": [{"name": "Doe, John"}]}' \
        https://127.0.0.1:5000/api/records/?prettyprint=1
    

    I got Unauthorized (401)

    "message": "The server could not verify that you are authorized to access the URL requested invenio
    

    Then I saw documentation on adding a user so I followed the steps here: https://github.com/inveniosoftware/training/tree/v3.1/02-invenio-tour I created an admin user and got a token for that user. I then added another header to the curl command and it looked like this:

    curl -k --header "Content-Type: application/json" --header "Authorization: Bearer $TOKEN\
        --request POST \
        --data '{"title":"Some title", "contributors": [{"name": "Doe, John"}]}' \
        https://127.0.0.1:5000/api/records/?prettyprint=1
    

    I got Permission denied (403)

    You don't have the permission to access the requested resource. It is either read-protected or not readable by the server.
    

    Expected behavior

    As indicated in the documentation, I should get:

    {
      "created": "2019-11-22T10:30:06.135431+00:00",
      "id": "1",
      "links": {
        "files": "https://127.0.0.1:5000/api/records/1/files",
        "self": "https://127.0.0.1:5000/api/records/1"
      },
      "metadata": {
        "contributors": [
          {
            "name": "Doe, John"
          }
        ],
        "id": "1",
        "title": "Some title"
      },
      "revision": 0,
      "updated": "2019-11-22T10:30:06.135438+00:00"
    }
    
    bug 
    opened by mohamadhayek 0
  • docs: write a system setup guide for linux

    docs: write a system setup guide for linux

    Write a system setup guide for Linux (see https://invenio.readthedocs.io/en/master/getting-started/development-environment.html#linux).Use the macOS example on the same page as a template.

    I would think we would likely need to split the guide into

    • Ubuntu/Debian
    • CentOS

    Create a VM with the system (CentOS or Ubuntu/Debian) to test with so that we don't forget important things for newcomers.

    Size: easy 
    opened by lnielsen 0
  • Vocabularies Sprint Goal (Dec 2020)

    Vocabularies Sprint Goal (Dec 2020)

    The goal of the sprint is to add vocabularies support in InvenioRDM as a small layer on top of a reusable vocabularies support in Invenio.

    Subgoals

    Add the following vocabularies to InvenioRDM:

    • License (SPDX vocabulary)
    • Subjects (mixed free text + others)
    • Affiliations (ROR.org source)
    • Languages (ISO-639-3 source)

    For each vocabulary that includes:

    • UI: The user interface widget and it's integration in the RDM deposit form.
    • API: The REST API for the vocabulary itself, as well as it's integration in the InvenioRDM record.
    • Display: The proper display of localized values from the vocabulary in search results and landing pages.
    • Import: The import from the vocabulary data source.

    How does a successful outcome look like?

    End-user

    For an end-user, a successful sprint outcome is visible in the deposit form and search results/landing pages (e.g aggregations, labels etc).

    Deposit form

    Affiliation:

    • As an uploader, I want organisations names auto-completed in the affiliation field, so that I can save time.
    • As an uploader, I want to be able to specify organisations names not yet in the database, so that I'm not constrained on the input.

    License:

    • As an uploader, I want help to select the license for my upload, so that I know what it means.
    • As an uploader, I want to be presented with the best license choice for my upload, so that I don't have to think.
    • As an uploader, I want to be able to specify a custom license text not known to the system, so that I can provide the correct license.

    Subjects:

    • As an uploader, I want subjects to be auto-completed, so that I can use similar subjects as other
    • As an uploader, I want to limit auto-completion to specific vocabularies, so that I don't get irrelevant suggestions.
    • As an uploader, I want to provide free text keywords, so that I can include keywords exactly as they are on my journal article.

    Languages:

    • As an uploader, I want to quickly specify multiple languages for my upload, so that I save time.
    • As an uploader, I want to see both the full name and the language code.

    Mockup

    Deposit - Protection v2

    Search results/landing page

    In search results, vocabularies are often used in facets or for showing classification labels and similar (see below):

    • As a visitor, I want to see human-readable titles in facets in my own language, so that the site looks professional and is understandable.
    • As a visitor, I want to see human-readable subjects on both landing pages and search result items, , so that the site looks professional and is understandable.

    Screenshot 2020-11-27 at 14 13 07

    Plan

    The work is divided into two parallel tracks:

    • Front-end track: Building the necessary UI widgets.
    • Backend track: Building the REST APIs to support the UI widgets and rendering of search results.

    Frontend track

    • Analyse, mockup and plan generic reusable widgets and it's integration with formik in the deposit form.
      • The UI widget itself.
      • The state management and data management.
      • Affiliation widget: auto-complete a single value, but allow non-vocabulary items as well.
      • License widget: auto-complete a single value using a modal select box (to be designed)
      • Subjects: auto-complete multiple values, with a possibility to limit to a specific subject scheme, and a possibility to specify subject terms not in the vocabulary.
      • Languages: auto-complete multiple values, restricted to only allowing vocabulary items.
    • Build the widgets with mock data.
    • Integrate them in the deposit form state and
    • Integrate the widgets with the REST API.

    If blocked by others:

    • Improve deposit form UX.

    Backend track

    • Design: See RFC 40 and 41.

    • Parallel track 1: Build the first REST API vocabularies endpoint into InvenioRDM (/api/vocabularies/languages).

      • Build basic record type factory into Invenio-Records-Resources
      • Build Invenio-Vocabularies module with a generic vocabulary (data, service, presentation layer) using common definitions.
      • Integrate the Invenio-Vocabularies generic module into InvenioRDM.
      • Build a way to import vocabularies into the generic vocabulary.
      • Import licenses and languages vocabulary into the generic model
      • CHECKPOINT: /api/vocabularies/languages/ and /api/vocabularies/licenses working and delivering data. This allows the frontend track to integrate it into the widgets.
    • Parallel track 2: Build the machinery for linking records

      • Build basic relations support into Invenio-Records (integrity checking, dereferencing, indexing)
        • Note: Invenio v3.4 sprint team depends on getting a final Invenio-Records release as early as possible.
      • Build basic scan() and reindex() support into Invenio-Records-Resources
      • CHECKPOINT: ability of data layer to check integrity, dereference a record, and index (allows integrating vocabulary into bibliographic record).
    • Integrate languages vocabulary into the RDM bibliographic record in Invenio-RDM-Records

      • Data layer: integrity checking, dereferencing and indexing
      • Service layer: a marshmallow schema
      • Presentation layer: show in
      • CHECKPOINT: REST API is now fully supporting the linking of languages
    • Build a facet over languages

      • Build programmatic vocabulary API
      • CHECKPOINT: Search results facet over languages is working.

    CHECKPOINT: One full vocabulary working all the way through the backend.

    • Build licenses vocabulary
    • Build subjects vocabulary
    • Build organisation vocabulary
    • Improve stack and APIs
      • Address performance challenges
      • Address machinery challenges (data flow, updates, etc)
    • Validate vocabularies on Invenio-App-ILS
    • Test migration of resource type vocabulary

    Training/Context

    • Ability to install and run InvenioRDM, with assets and module development workflows.
    • Training on Invenio-(Drafts|Records)-Resources data flow.
    opened by lnielsen 0
  • Investigate moving invenio.rtfd.io to MkDocs

    Investigate moving invenio.rtfd.io to MkDocs

    • [ ] Document what are the implications
      • Are there blockers?
      • What problems are we getting in exchange?
      • Do we have to put more work than needed to have the same content displayed? (i.e. imagine we need Sphinx autodoc and MkDocs doesn't provide it, we are not going to reimplement it)

    If it makes sense to make the migration:

    • [ ] Move docs
    • [ ] Change look and feel to inveniosoftware's Framework style (https://inveniordm.docs.cern.ch/, https://invenioils.docs.cern.ch/)
    • [ ] Manage redirects and broken links
    opened by diegodelemos 1
Releases(v3.1.0)
  • v1.2.2(Nov 25, 2016)

    Invenio v1.2.2 is released

    Invenio v1.2.2 was released on November 25, 2016.

    About

    Invenio is a digital library framework enabling you to build your own digital library or document repository on the web.

    This stable release update is recommended to all Invenio sites using v1.2.1 or previous releases.

    New features

    • installation
      • Initial release of kickstart installations scripts. Ported from the old tiborsimko/invenio-devscripts repository of helper scripts and adapted to resemble Invenio 3 kickstart installation scripts. Tested on Ubuntu 12.04 and CentOS 6.

    Improved features

    • BibDocFile
      • Escapes file name special characters including accents and spaces in document URLs.
    • BibFormat
      • Corrects subfield usage when displaying the DOI qualifying information, changing subfield y (not valid) by q. (#3195)
    • BibIndex
      • Enhances full-text indexing of external flles. (PR #3358)
    • BibRank
      • Allows ranking external files using Solr. (PR #3358)
    • I18N
      • Updates Slovak translation from Transifex.
      • Updates Slovak translation from Transifex.
      • Updates German, French, Slovak and Spanish translations from Transifex.
      • Updates Catalan, French, German, Italian, Russian, Slovak, and Spanish translations from Transifex.
      • Completes Italian translation for Invenio v1.2.
      • Completes Italian translation.
      • Completes French translation.
    • WebSession
      • Changes error message depending on CFG_ACCESS_CONTROL_LEVEL_ACCOUNTS value as the meaning of the column note also changes with it. (#1414) (PR #3414)
    • WebStyle
      • Cleans the port from the user's IP preventing issues in future manipulations of it. (PR #3255)
    • WebSubmit
      • Adds subtitle file to the file converter rules. (PR #3358)
      • Allows the stamping function to accept both files and directories.
    • crossrefutils
      • Supports querying CrossRef with free account (without password). (#3503) (#1277) (PR #3516)
    • installation
      • Installation scripts now support Ubuntu 14.04 LTS.
      • Uses /usr/sbin/service foo consistently everywhere to restart daemons instead of deprecated /etc/init.d/foo.
      • Pinned specific JSON-js and Mediaelement versions instead of using the latest master branch commits. (#11)
    • urlutils
      • Uses md5 from hashlib when available. (#3382)

    Bug fixes

    • BibCirculation
      • Fixes the number of copies of an item that is displayed in the circulation UI item search. (#2018) (PR #3574)
    • BibDocFile
      • Disallows % character in filenames since it may cause some problems with URL encoding/decoding leading to incorrect URLs. (#1918) (PR #2788)
      • Purges old extracted text too, when purging a BibDoc. (#3519)
    • BibFormat
      • Casts record ID type to integer in record editor formatting element. Various functions working with the record ID expect it to be an integer rather than a string. (PR #2796)
      • Fixes filtering of records not modified since the last bibreformat run, which could have skipped records that were, for whatever reason, not reformatted in the past. (PR #2824)
      • Changes when the missing caches are generated during bibreformat run. The missing cache is no longer generated for records if the bibreformat is run with -i, --collection, --field or --pattern option.
    • BibIndex
      • Fixes possible infinite loop in beautify_range_list() that could have been triggered in particular conditions. (PR #2758)
    • BibSched
      • Makes recid argument optional in tasklet bst_create_icons. (#2192)
    • I18N
      • Fixes a typo in the German translation.
    • OAIHarvest
      • Fixes an exception that would happen upon the initial harvest of a new OAI harvest source marked to be harvested "from beginning". (#2793)
      • Fixes the parsing of resumptiontoken in incoming OAI-PMH XML which could fail when the resumptiontoken was empty.
    • OAIRepository
      • Fixes default configuration of CFG_OAI_METADATA_FORMATS, correctly assigning the XSD and XML namespace to the corresponding metadata prefix.
    • WebAccess
      • Improves the WebAccess FireRole documentation by providing corrected example on how to use groups in FireRole definitions. (#3107) (#3225)
    • WebSearch
      • Takes into account the sort order when searching, even if no specific sort or rank method is used. (PR #3564)
      • Adds the proper language parameter on tabs if the user has selected different language from the browser preferred. (#308) (PR #3395)
      • Fixes a search regression test case that looks for records added in the past 10 years. This test started to fail because some records are declared with date added (see MARC tag 005) before
        1. Amends the test case to use safer value of last 100 years instead of last 10 years.
      • Fixes asynchronous external collection getter tests following the update of the Invenio project web site.
    • WebSession
      • Removes pending groups from user info object. (#3526)
    • bibupload
      • In case of replicating datasets between instances by means of OAI harvesting it is plausible to check for external OAI-IDs not only in the field specified by CFG_BIBUPLOAD_EXTERNAL_OAIID_TAG but also in CFG_OAI_ID_FIELD. (#2812) (PR #2816)
    • crossrefutils
      • Correctly URL-encodes the query sent to CrossRef in order to retrieve information about a given DOI.
      • Correctly passes the noredirect flag to CrossRef API.
    • global
      • Silences most MySQL UTF-8 warnings related to inserting into and updating BLOB table columns.
    • installation
      • Amends canonical location of py-editdist and pyRXP packages, fixing the installation problem.
      • Amends installation procedures to download necessary jQuery plugins from Invenio-hosted web site, fixing problems with non- existing Google Code pages. (#3620)
      • Fixes Apache virtual host configuration generation on CentOS 6.
    • inveniogc
      • Fixes garbage collection of temporary directories created by websubmit_icon_creator and websubmit_file_stamper. (#3556) (PR #3558)

    Download

    • http://invenio-software.org/download/invenio-1.2.2.tar.gz
    • http://invenio-software.org/download/invenio-1.2.2.tar.gz.md5
    • http://invenio-software.org/download/invenio-1.2.2.tar.gz.sig

    Installation

    Please follow the INSTALL file bundled in the distribution tarball.

    Upgrade

    Please proceed as follows:

    a) Stop your bibsched queue and your Apache server.

    b) Install the update::

     $ tar xvfz invenio-1.2.2.tar.gz
     $ cd invenio-1.2.2
     $ sudo rsync -a /opt/invenio/etc/ /opt/invenio/etc.OLD/
     $ sh /opt/invenio/etc/build/config.nice
     $ make
     $ make check-upgrade
     $ sudo -u www-data make install
     $ sudo rsync -a /opt/invenio/etc.OLD/ \
         --exclude invenio-autotools.conf \
         /opt/invenio/etc/ # (1)
     $ sudo -u www-data /opt/invenio/bin/inveniocfg --update-all
     $ sudo -u www-data /opt/invenio/bin/inveniocfg --upgrade
    
     (1) If you are upgrading from previous stable release series
         (v0.99, v1.0 or v1.1), please don't run this rsync command
         but diff, in order to inspect changes and adapt your old
         configuration to the new Invenio v1.2 release series.  For
         more information you may also want to consult release notes
         coming with Invenio v1.2.0.
    

    c) Restart your Apache server and your bibsched queue.

    Happy hacking and thanks for flying Invenio.

    | Invenio Development Team | Email: [email protected] | IRC: #invenio on irc.freenode.net | Twitter: http://twitter.com/inveniosoftware | GitHub: http://github.com/inveniosoftware | URL: http://invenio-software.org

    Source code(tar.gz)
    Source code(zip)
  • v1.1.7(Nov 21, 2016)

    Invenio v1.1.7 is released

    Invenio v1.1.7 was released on November 20, 2016.

    About

    Invenio is a digital library framework enabling you to build your own digital library or document repository on the web.

    This old stable release update is recommended to all Invenio sites using v1.1.6 or previous releases.

    New features

    • installation
      • Initial release of kickstart installations scripts. Ported from the old tiborsimko/invenio-devscripts repository of helper scripts and adapted to resemble Invenio 3 kickstart installation scripts. Tested on Ubuntu 12.04 and CentOS 6.

    Improved features

    • I18N
      • Updates Slovak translation from Transifex.
      • Updates German, French, Slovak and Spanish translations from Transifex.
      • Updates Catalan, French, German, Italian, Russian, Slovak, and Spanish translations from Transifex.
      • Completes Italian translation.
    • installation
      • Installation scripts now support Ubuntu 14.04 LTS.
      • Uses /usr/sbin/service foo consistently everywhere to restart daemons instead of deprecated /etc/init.d/foo.
      • Pinned specific JSON-js and Mediaelement versions instead of using the latest master branch commits. (#11)
    • urlutils
      • Uses md5 from hashlib when available. (#3382)

    Bug fixes

    • BibDocFile
      • Purges old extracted text too, when purging a BibDoc. (#3519)
    • BibSched
      • Makes recid argument optional in tasklet bst_create_icons. (#2192)
    • OAIHarvest
      • Fixes the parsing of resumptiontoken in incoming OAI-PMH XML which could fail when the resumptiontoken was empty.
    • OAIRepository
      • Fixes default configuration of CFG_OAI_METADATA_FORMATS, correctly assigning the XSD and XML namespace to the corresponding metadata prefix.
    • WebAccess
      • Improves the WebAccess FireRole documentation by providing corrected example on how to use groups in FireRole definitions. (#3107) (#3225)
    • WebSearch
      • Fixes asynchronous external collection getter tests following the update of the Invenio project web site.
    • WebSession
      • Removes pending groups from user info object. (#3526)
    • bibupload
      • In case of replicating datasets between instances by means of OAI harvesting it is plausible to check for external OAI-IDs not only in the field specified by CFG_BIBUPLOAD_EXTERNAL_OAIID_TAG but also in CFG_OAI_ID_FIELD. (#2812) (PR #2816)
    • global
      • Silences most MySQL UTF-8 warnings related to inserting into and updating BLOB table columns.
    • installation
      • Amends canonical location of py-editdist and pyRXP packages, fixing the installation problem.
      • Amends installation procedures to download necessary jQuery plugins from Invenio-hosted web site, fixing problems with non- existing Google Code pages. (#3620)
      • Fixes Apache virtual host configuration generation on CentOS 6.
    • inveniogc
      • Fixes garbage collection of temporary directories created by websubmit_icon_creator and websubmit_file_stamper. (#3556) (PR #3558)

    Download

    • http://invenio-software.org/download/invenio-1.1.7.tar.gz
    • http://invenio-software.org/download/invenio-1.1.7.tar.gz.md5
    • http://invenio-software.org/download/invenio-1.1.7.tar.gz.sig

    Installation

    Please follow the INSTALL file bundled in the distribution tarball.

    Upgrade

    Please proceed as follows:

    a) Stop your bibsched queue and your Apache server.

    b) Install the update::

     $ tar xvfz invenio-1.1.7.tar.gz
     $ cd invenio-1.1.7
     $ sudo rsync -a /opt/invenio/etc/ /opt/invenio/etc.OLD/
     $ sh /opt/invenio/etc/build/config.nice
     $ make
     $ make check-upgrade
     $ sudo -u www-data make install
     $ sudo rsync -a /opt/invenio/etc.OLD/ \
         --exclude invenio-autotools.conf \
         /opt/invenio/etc/ # (1)
     $ sudo -u www-data /opt/invenio/bin/inveniocfg --update-all
     $ sudo -u www-data /opt/invenio/bin/inveniocfg --upgrade
    
     (1) If you are upgrading from previous stable release series
         (v0.99 or v1.0), please don't run this rsync command but
         diff, in order to inspect changes and adapt your old
         configuration to the new Invenio v1.1 release series.
    

    c) Restart your Apache server and your bibsched queue.

    Happy hacking and thanks for flying Invenio.

    | Invenio Development Team | Email: [email protected] | IRC: #invenio on irc.freenode.net | Twitter: http://twitter.com/inveniosoftware | GitHub: http://github.com/inveniosoftware | URL: http://invenio-software.org

    Source code(tar.gz)
    Source code(zip)
  • v1.0.10(Nov 10, 2016)

    Invenio v1.0.10 is released

    Invenio v1.0.10 was released on November 9, 2016.

    About

    Invenio is a digital library framework enabling you to build your own digital library or document repository on the web.

    This old stable release update is recommended to all Invenio sites using v1.0.9 or previous releases.

    New features

    • installation
      • Initial release of kickstart installations scripts. Ported from the old tiborsimko/invenio-devscripts repository of helper scripts and adapted to resemble Invenio 3 kickstart installation scripts. Tested on Ubuntu 12.04 and CentOS 6.

    Improved features

    • I18N
      • Updates Catalan, French, German, Italian, Russian, Slovak, and Spanish translations from Transifex.
    • installation
      • Installation scripts now support Ubuntu 14.04 LTS.
      • Uses /usr/sbin/service foo consistently everywhere to restart daemons instead of deprecated /etc/init.d/foo.

    Bug fixes

    • WebAccess
      • Improves the WebAccess FireRole documentation by providing corrected example on how to use groups in FireRole definitions. (#3107) (#3225)
    • WebSearch
      • Fixes asynchronous external collection getter tests following the update of the Invenio project web site.
    • global
      • Silences most MySQL UTF-8 warnings related to inserting into and updating BLOB table columns.
    • installation
      • Amends canonical location of py-editdist and pyRXP packages, fixing the installation problem.
      • Fixes Apache virtual host configuration generation on CentOS 6.

    Download

    • http://invenio-software.org/download/invenio-1.0.10.tar.gz
    • http://invenio-software.org/download/invenio-1.0.10.tar.gz.md5
    • http://invenio-software.org/download/invenio-1.0.10.tar.gz.sig

    Installation

    Please follow the INSTALL file bundled in the distribution tarball.

    Upgrade

    If you are upgrading from Invenio v1.0.9, then:

    a) Stop your bibsched queue and your Apache server.

    b) Install the update::

     $ tar xvfz invenio-1.0.10.tar.gz
     $ cd invenio-1.0.10
     $ sudo rsync -a /opt/invenio/etc/ /opt/invenio/etc.OLD/
     $ sh /opt/invenio/etc/build/config.nice
     $ make
     $ make check-custom-templates
     $ make update-v1.0.9-tables
     $ sudo -u www-data make install
     $ sudo -u www-data /opt/invenio/bin/inveniocfg --update-all
     $ sudo rsync -a /opt/invenio/etc.OLD/ \
         --exclude invenio-autotools.conf \
         /opt/invenio/etc/
    

    c) Restart your Apache server and your bibsched queue.

    Happy hacking and thanks for flying Invenio.

    | Invenio Development Team | Email: [email protected] | IRC: #invenio on irc.freenode.net | Twitter: http://twitter.com/inveniosoftware | GitHub: http://github.com/inveniosoftware | URL: http://invenio-software.org

    Source code(tar.gz)
    Source code(zip)
  • v2.1.1(Sep 1, 2015)

    Invenio v2.1.1 is released

    Invenio v2.1.1 was released on September 1, 2015.

    About

    Invenio is a digital library framework enabling you to build your own digital library or document repository on the web.

    Security fixes

    • global
      • Fixes potential XSS issues by changing main flash messages template so that they are not displayed as safe HTML by default.
    • search
      • Fixes potential XSS issues by changing search flash messages template so that they are not displayed as safe HTML by default.

    Incompatible changes

    • access
      • Removes configuration option CFG_SUPERADMINROLE_ID.
      • Replaces all zero values with NULL in the table accROLE_accACTION_accARGUMENT. The usage of NULL value in substitution of zero value was introduced in the commit 7974188 because Foreign Key does not support it.

    Improved features

    • I18N
      • Completes Italian translation.
      • Completes French translation.
    • accounts
      • Uses the localized site name when sending email to users. (#3273)
    • docker
      • Improves Docker documentation notably related to how to work with Invenio site overlays.
    • global
      • Adds super(SmartDict, self).init call in the init method in SmartDict to be able to make multiple inheritance in Record class in invenio-records and be able to call both parent's init.
    • jasmine
      • Allows using variables from application config for building asset bundles.
    • legacy
      • Improves exception handling of integrity errors raised by MySQLdb library.

    Bug fixes

    • OAIHarvest
      • Fixes the parsing of resumptiontoken in incoming OAI-PMH XML which could fail when the resumptiontoken was empty.
    • access
      • Sets superadmin role ID included in roles list returned from acc_find_possible_roles to the correct, current value. (#3390) (#3392)
      • Fixes the authorization delete query to consider NULL value on id_accARGUMENT authorization column. The usage of NULL value in substitution of zero value was introduced in the commit 7974188 because Foreign Key does not support it.
      • Fixes property id_accARGUMENT of AccAuthorization model.
    • encoder
      • Corrects the compose_file function call in process_batch_job to produce <directory>/content.<extension> instead of <directory>/content.content;<extension>. (#3354)
    • global
      • Fixes the way configuration variables are parsed from ENV. It now uses the same method we are using in inveniomanage config set. This fixes the problem that False is not parsed correctly.
    • i18n
      • Updates PO message catalogues and cleans them of duplicated messages. (#3455)
    • indexer
      • Adds missing get_nearest_terms_in_idxphrase_with_collection import. Fixes the name of field argument, and returns an empty list when no model is passed. (#3271)
    • installation
      • Fixes database creation and upgrading by limiting Alembic version to <0.7.
    • legacy
      • Addresses an issue with calling six urllib.parse in a wrong way, making users unable to harvest manually from the command line.
    • login
      • Provides flash message to indicate that an email with password recovery could not be sent. (#3309)
    • search
      • Enforces query string to be unicode to overcome pypeg2 parsing issues. (#3296)
      • Fixes admin interface for managing facets. (#3333)

    Notes

    • global
      • Displaying HTML safe flash messages can be done by using one of these flash contexts: '(html_safe)', 'info(html_safe)', 'danger(html_safe)', 'error(html_safe)', 'warning(html_safe)', 'success(html_safe)' instead of the standard ones (which are the same without '(html safe)' at the end).
      • Backports Flask-IIIF extension from original commit 213b6f1144734c9ecf425a1bc7b78e56ee5e4e3e. The extension is not enabled by default in order to avoid feature addition to existing minor release.
    • search
      • Displaying HTML safe flash messages can be done by using one of these flash contexts: 'search-results-after(html_safe)', 'websearch-after-search-form(html_safe)' instead of the standard ones (which are the same without '(html safe)' at the end).

    Installation

    $ pip install invenio==2.1.1

    Upgrade

    $ bibsched stop $ sudo systemctl stop apache2 $ pip install --upgrade invenio==2.1.1 $ inveniomanage upgrader check $ inveniomanage upgrader run $ sudo systemctl start apache2 $ bibsched start

    Documentation

    http://invenio.readthedocs.org/en/v2.1.1

    Happy hacking and thanks for flying Invenio.

    | Invenio Development Team | Email: [email protected] | IRC: #invenio on irc.freenode.net | Twitter: http://twitter.com/inveniosoftware | GitHub: http://github.com/inveniosoftware | URL: http://invenio-software.org

    Source code(tar.gz)
    Source code(zip)
  • v2.0.6(Sep 1, 2015)

    Invenio v2.0.6 is released

    Invenio v2.0.6 was released on September 1, 2015.

    About

    Invenio is a digital library framework enabling you to build your own digital library or document repository on the web.

    Security fixes

    • global
      • Fixes potential XSS issues by changing main flash messages template so that they are not displayed as safe HTML by default.
    • search
      • Fixes potential XSS issues by changing search flash messages template so that they are not displayed as safe HTML by default.

    Improved features

    • I18N
      • Completes Italian translation.
      • Completes French translation.
    • global
      • Adds super(SmartDict, self).init call in the init method in SmartDict to be able to make multiple inheritance in Record class in invenio-records and be able to call both parent's init.

    Bug fixes

    • OAIHarvest
      • Fixes the parsing of resumptiontoken in incoming OAI-PMH XML which could fail when the resumptiontoken was empty.
    • i18n
      • Updates PO message catalogues and cleans them of duplicated messages. (#3455)
    • installation
      • Fixes database creation and upgrading by limiting Alembic version to <0.7.
    • legacy
      • Addresses an issue with calling six urllib.parse in a wrong way, making users unable to harvest manually from the command line.

    Notes

    • global
      • Displaying HTML safe flash messages can be done by using one of these flash contexts: '(html_safe)', 'info(html_safe)', 'danger(html_safe)', 'error(html_safe)', 'warning(html_safe)', 'success(html_safe)' instead of the standard ones (which are the same without '(html safe)' at the end).
    • search
      • Displaying HTML safe flash messages can be done by using one of these flash contexts: 'search-results-after(html_safe)', 'websearch-after-search-form(html_safe)' instead of the standard ones (which are the same without '(html safe)' at the end).

    Installation

    $ pip install invenio==2.0.6

    Upgrade

    $ bibsched stop $ sudo systemctl stop apache2 $ pip install --upgrade invenio==2.0.6 $ inveniomanage upgrader check $ inveniomanage upgrader run $ sudo systemctl start apache2 $ bibsched start

    Documentation

    http://invenio.readthedocs.org/en/v2.0.6

    Happy hacking and thanks for flying Invenio.

    | Invenio Development Team | Email: [email protected] | IRC: #invenio on irc.freenode.net | Twitter: http://twitter.com/inveniosoftware | GitHub: http://github.com/inveniosoftware | URL: http://invenio-software.org

    Source code(tar.gz)
    Source code(zip)
  • v2.0.5(Jul 17, 2015)

    Invenio v2.0.5 is released

    Invenio v2.0.5 was released on July 17, 2015.

    About

    Invenio is a digital library framework enabling you to build your own digital library or document repository on the web.

    Security fixes

    • docker:
      • Disables debug mode when using standard Docker image. Uses docker compose to set the variable instead.

    Improved features

    • deposit:
      • Improves handling of large files in deposit.
    • docker:
      • Improves Docker documentation notably related to how to work with Invenio site overlays.
      • Changes port number exposed by docker to non-reserved ones to avoid conflicts with local installations. Webport is now 28080, Redis 26379 and MySQL is 23306, which is a simple +20000 shift from the standard ports.
      • Integrates docker boot script into docker image.
      • Changes docker boot script to use exec. This ensure signal forwarding and reduces the overhead by one process. As a result container shutdown is faster now.
      • Changes manual master/slave configuration of Docker devboot script to automatic solution using file locks.
    • jasmine:
      • Allows using variables from application config for building asset bundles.

    Bug fixes

    • deposit:
      • Fixes issue with PLUpload chunking not being enabled.
    • encoder:
      • Corrects the compose_file function call in process_batch_job to produce <directory>/content.<extension> instead of <directory>/content.content;<extension>. (#3354)
    • global:
      • Fixes the way configuration variables are parsed from ENV. It now uses the same method we are using in inveniomanage config set. This fixes the problem that False is not parsed correctly.
    • installation:
      • Fixes capitalization of package names.
    • legacy:
      • Fixes inveniogc crash when mysql is NOT used to store sessions. (#3205)
    • login:
      • Provides flash message to indicate that an email with password recovery could not be sent. (#3309)

    Notes

    • global:
      • Backports Flask-IIIF extension from original commit 213b6f1144734c9ecf425a1bc7b78e56ee5e4e3e. The extension is not enabled by default in order to avoid feature addition to existing minor release.

    Installation

    $ pip install invenio==2.0.5

    Upgrade

    $ bibsched stop $ sudo systemctl stop apache2 $ pip install --upgrade invenio==2.0.5 $ inveniomanage upgrader check $ inveniomanage upgrader run $ sudo systemctl start apache2 $ bibsched start

    Documentation

    http://invenio.readthedocs.org/en/v2.0.5

    Happy hacking and thanks for flying Invenio.

    | Invenio Development Team | Email: [email protected] | IRC: #invenio on irc.freenode.net | Twitter: http://twitter.com/inveniosoftware | GitHub: http://github.com/inveniosoftware | URL: http://invenio-software.org

    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Jun 22, 2015)

    Invenio v2.1.0 is released

    Invenio v2.1.0 was released on June 16, 2015.

    About

    Invenio is a digital library framework enabling you to build your own digital library or document repository on the web.

    Security fixes

    • docker:
      • Disables debug mode when using standard Docker image. Uses docker compose to set the variable instead.

    Incompatible changes

    • access:
      • Removes proprietary authentication protocol for robotlogin. (#2972)
      • Removes external authentication engines. Please use invenio.modules.oauthclient or Flask-SSO instead. (#1083)
    • assets:
      • Removes support for runtime compiling of less files in debug mode when option LESS_RUN_IN_DEBUG is enabled. (#2923)
      • Requires update of bootstrap version of overlays.
    • collections:
      • Collection reclist is not populated anymore. Use collection phrase index using query matcher based on record data, hence no second order operator will work in collection query definition.
    • communities:
      • Removes 'communities' module that has been externalised to separate Python package called 'invenio_communities'. Migration can be done by running pip install invenio_communities and adding 'invenio_communites' to PACKAGES. (#3008)
    • formatter:
      • Database table 'format' and 'formatname' have been dropped and foreign keys in other tables has been changed to use lower case version of output format base filename without extension name.
      • Output formats are no longer modifiable from web interface as they syntax has been changed from custom "bfo" to "yml". (#2662)
      • Custom output formats from the database needs to by merged with bfo files to new yml files. Please follow instructions when running python scripts/output_format_migration_kit.py.
    • global:
      • Removes old URL handlers for /search and /record. (#2958)
      • Enables 'sql_mode' as 'ansi_quotes' for quotes compatibility for MySQL.
      • Drops all active sessions during upgrade. Might result in log entries about non-restorable sessions.
      • Drops all active sessions during upgrade. Might result in log entries about non-restorable sessions.
      • Moves deprecated decorator under invenio/utils/deprecation.py
      • Changes url_for behaviour to return always a unicode string. (#2967)
      • Deprecates invenio.config hack for legacy code. (#3106)
      • Deprecates use of invenio.utils.redis in favor of invenio.ext.cache. (#2885)
      • Removes support for custom remote debuggers. (#2945)
    • installation:
      • Upgrades minimum SQLAlchemy version to resolve Enum life cycle problems on PostgreSQL. (#2351)
    • legacy:
      • Specifies deprecation warnings for all remaining legacy modules according to the latest Invenio 3 road map.
      • Specifies deprecation warnings for legacy modules bibcirculation, bibdocfile, bibedit, elmsubmit, websearch_external_collections, and websubmit.
      • Enables 'sql_mode' as 'ansi_quotes' for quotes compatibility for MySQL.
      • Removes deprecated bibknowledge module.
      • Removes deprecated inveniocfg command line interface.
    • multimedia:
      • Depreactes multimedia module.
    • search:
      • Removes support for legacy perform_request_search and search_unit API functions.
      • Removes support for specific Aleph idendifiers from search engine.

    New features

    • access:
      • Adds 'usedeposit' action which enables per user access restrictions for different deposit types. (#2724)
      • Adds the ability to restrict access per object independently from the parent.
    • accounts:
      • Adds support for allowing users to update their profile (nickname, email, family name and given name).
      • Adds support for users to re-request an verification email to be sent.
      • Adds new Passlib Flask extension to support configurable password contexts in Invenio. (#2874)
      • Adds panel blocks to settings templates.
    • babel:
      • Adds datetime localization template filters.
    • collections:
      • Adds new calculated field '_collections' to records from which the 'collection' index is created. (#2638)
    • deposit:
      • Adds generic JinjaField and JinjaWidget to render templates as form fields. This might be used in case longer explainations are required for forms or to add pictures and other material that may increase usability.
    • global:
      • Uses Flask-IIIF extension providing various image manipulation capabilities.
      • Adds possibility to refer to documents and legacy BibDocFiles via special path such as /api/multimedia/image/recid:{recid} or /api/multimedia/image/recid:{recid}-{filename} or /api/multimedia/image/uuid with proper permission checking. (#3080) (#3084)
      • Adds general pagination macro for Flask-SQLAlchemy Pagination object. (PR #3006)
      • Adds 'noscript' block to the page template to warn users with disabled JavaScript on their browser. (#1039)
    • knowledge:
      • Adds manager to knowledge with a command to load mappings into an existing knowledge base from a file. E.g. inveniomanage knowledge load kb_name /path/to/file.kb
    • oauthclient:
      • Adds support for CERN OAuth authentication.
    • records:
      • Adds support for granting author/viewer rights to records via tags by specifying CFG_ACC_GRANT_AUTHOR_RIGHTS_TO_USERIDS_IN_TAGS and/or CFG_ACC_GRANT_VIEWER_RIGHTS_TO_USERIDS_IN_TAGS. (#2873)
    • script:
      • Implements optional TLS encryption directly by Werkzeug. Adds many configuration variables (SERVER_TLS_*) to control the behaviour.
      • Adds support for PostgreSQL database initialization.
    • search:
      • Implements a mechanism that enhances user queries. The enhancer functions are specified in the 'SEARCH_QUERY_ENHANCERS' and later they are applied to the query AST one after the other in the search method. (#2987)
      • Adds new API for querying records.
      • Adds new configuration option SEARCH_WALKERS which specifies visitor classes that should be applied to a search query.
      • Adds additional search units for the auxiliary author fields firstauthor, exactauthor, exactfirstauthor and authorityauthor.
      • Adds missing operator handling of greater than (>) queries.
      • Adds new configuration varibles SEARCH_QUERY_PARSER and SEARCH_QUERY_WALKERS for query parser.
      • Adds new API for record matching againts given query.
    • template:
      • Adds bootstrap scrollspy to the base template so it can be used by all modules.
    • workflows:
      • Adds new buttons to the Holding Pen details pages to delete and restart current task.

    Improved features

    • accounts:
      • Improves legend alignment in login form.
    • classifier:
      • Improves the stripping of reference section when extracting text from PDF by using a more appropriate refextract API.
    • deposit:
      • Corrects reflow on narrow screens and removes misused classes for labels.
      • Adds sticky navigation item to the deposit page to simplify overview on larger forms. Works well with collapsed elements. On narrow screens the navigation gets pushed in front of all other form elements.
      • Improves handling of large files in deposit.
      • Fixes problem with misaligned checkbox and radio list items. They are produced because wtforms does not wrap input elements into labels as it is intended by the bootstrap framework.
    • docker:
      • Changes port number exposed by docker to non-reserved ones to avoid conflicts with local installations. Webport is now 28080, Redis 26379 and MySQL is 23306, which is a simple +20000 shift from the standard ports.
      • Integrates docker boot script into docker image.
      • Changes docker boot script to use exec. This ensure signal forwarding and reduces the overhead by one process. As a result container shutdown is faster now.
      • Changes manual master/slave configuration of Docker devboot script to automatic solution using file locks.
    • formatter:
      • Improves support for translated output format names on search results page. (#2429)
    • global:
      • Supports database creation on PostgreSQL server.
      • Implements session signing. This avoids cache request for invalid sessions and reduces the DDoS attack surface.
      • Removes IP address storage+checks. This avoids data privacy issues and enables users with multiple connections (e.g. WIFI+LTE, multiple WIFI connections on trains+stations) to stay signed in.
      • Enhances run_py_func to be able to print both to some StringIO and to the terminal at the same time. This is enabled with the passthrough argument. It now also always returns stderr, deprecating the capture_stderr argument. The return value is now a namedtuple so that one can easily fetch the required value. Its arguments to a more natural order (name of the executable first and arguments afterwards.
      • Supports database creation on PostgreSQL server.
      • Improves compatibility of Text fields in PostrgeSQL by changing Text in models and removes Invenio hacks on MySQL Index and Primary Key creation because starting from SQLAlchemy>=1.0 it arises an exception if the length is specified. (#3037)
    • knowledge:
      • Relaxes constraints on dynamic search function that used to force us to create temporary knowledge base. (#698)
    • legacy:
      • Supports database creation on PostgreSQL server.
    • oauthclient:
      • Extra template block addition.
    • refextract:
      • Replaces usage of 'urllib' by 'requests' library and improves manipulation with temporary file used for extraction of references.
    • script:
      • Uses SQLAlchemy and SQLAlchemy-Utils to initialize the database instead of executing mysql in a python subshell. (#2846) (#2844)
    • search:
      • The search results pages emits proper Cache and TTL information in its HTTP headers, so that any eventual external cachers (such as varnish) could act accordingly to invalidate their caches automatically, without any configuration. (#2302)
      • Collection filtering of search results no longer returns orphan records.
      • Improves native facet creations.
    • template:
      • Replaces Invenio PNG logo with SVG version. This works better on high resolution (retina) screens and it is supported by all browers.
    • unapi:
      • Separates UnAPI url handling to a new module.
    • upgrader:
      • Clarifies that the upgrade dependency is only a best guess. (#2561)
    • workflows:
      • Updates the layout of the details pages in Holding Pen to display at which step the object is in the workflow.
      • When rendering the task results, the Holding Pen now passes a dictionary instead of a list in order to allow finer grained control in the template.

    Bug fixes

    • access:
      • Sets the superadmin role ID properly when elaborating access authorizations. Previously it was masked behind an application context exception. (#3184)
    • accounts:
      • Fixes invalid HTML of the 'remember me' login form checkbox.
      • Corrects conditions on when to sent a notification email. (addresses zenodo/zenodo#275) (#3163)
      • Fixes issue that allowed blocked accounts to login.
    • classifier:
      • Properly handles file paths containing a colon (:), avoiding bad text extraction that causes (1) wrong results and (2) much slower execution.
      • Properly tags the execution of classifier as fast in the standard workflow task when applicable.
    • deposit:
      • Fixes issue with PLUpload chunking not being enabled.
      • Fixes "both collapse arrows are shown" bug in deposit frontend.
    • formatter:
      • Changes the mimetype of the id output format to application/json and properly returns a JSON formatted list of results.
    • indexer:
      • Avoids an exception from happening when passing a unicode string to the BibIndex engine washer. (#2981)
    • installation:
      • Fixes capitalization of package names.
    • legacy:
      • Fixes inveniogc crash when mysql is NOT used to store sessions. (#3205)
      • Catches also any MySQLdb.OperationalError coming from legacy MySQL queries using run_sql(). (#3089)
      • Fixes an issue with outputting the post-process arguments when adding or editing an OAI source.
    • oauthclient:
      • Marks email address of users creating their account with oauth process as invalid.
      • Sends a validation email when users create their account with oauth. (#2739)
      • Improves security by leaving users' password uninitialized when their account is created by the oauth module.
    • records:
      • Improves type consistency of keys and values in JSON record created from MARC and retrieved from storage engine. (#2772)
      • Fixes double message flashing issues during 401 errors.
      • Fixes issue with empty records not returning an 404 error.
      • Fixes 500 error when record does not exist. (#2891)
    • search:
      • Fixes an issue of returning the wrong results when searching for single values in the author field (e.g. 'author:ellis').
    • submit:
      • Fixes upgrade recipe for SbmCOLLECTION_SbmCOLLECTION table introduced in commit @1021055. (#2954)
    • workflows:
      • Fixes an issue where the workflow engine would try to save a function reference in the extra_data task history, causing an error when serializing extra_data.

    Notes

    • access:
      • The default access role ID for the superadmin user is 1, but it can be configured via CFG_SUPERADMINROLE_ID.
      • Requires running webaccessadmin -u admin -c -a -D command.
    • accounts:
      • Changes user model fields family name/given names to store empty string as default instead of null.
      • Adds support for users to change email address/nickname. If you store email addresses in e.g. records or fireroles you are responsible for propagating the users change of email address by adding listeners to the 'profile-updated' signal. Alternatively you can migrate records (using CFG_ACC_GRANT_AUTHOR_RIGHTS_TO_USERIDS_IN_TAGS and CFG_ACC_GRANT_VIEWER_RIGHTS_TO_USERIDS_IN_TAGS) and fireroles (using "allow/deny uid ") to restrict access based on user id instead of user email address.
      • Refactors password hashing to (a) explicitly specify password salt instead of relying on the email address, since a change of email would cause the password to be invalidated (b) support multiple password hashing algorithms concurrently (c) automatic migration of deprecated hashes when users log in (d) allows overlays to specify their preferred hashing algorithms.
      • Deprecates legacy Invenio's hashing algorithm based on AES encryption of email address using the password as secret key in favor of SHA512 using random salt and 100000 rounds.
    • assets:
      • Updates Twitter Bootstrap to 3.3 to fix some issues, e.g. to low colour contrast of navbar background<->font. Requires update of Twitter Bootstrap version in Invenio overlays.
    • collections:
      • The tag table now contains 'collection idetifier' with correct 'value' and 'recjson_value' ('' and '_collections').
    • formatter:
      • Invenio 1.x BFT template language and BFE elements are being deprecated. Please migrate overlay output formats to use Jinja2. (#2662)
      • Removes fallback template rendering and puts standard exception logging in place. (#2958)
    • global:
      • Removes unused legacy cascade style sheets. (#2040)
    • indexer:
      • The lower_index_term() now returns the term as a Unicode string which can have an impact on custom tokenizers and regular indexing.
    • installation:
      • Adds missing access rights for database user accessing server from localhost. (#3146)
    • records:
      • Ports basic BibDocFile serving including access right checks. (#3160)
    • unapi:
      • Add invenio.modules.unapi to PACKAGES if you would like to keep the /unapi url.

    Installation

    $ pip install invenio

    Upgrade

    $ bibsched stop $ sudo systemctl stop apache2 $ pip install --upgrade invenio==2.1.0 $ inveniomanage upgrader check $ inveniomanage upgrader run $ sudo systemctl start apache2 $ bibsched start

    Documentation

    http://invenio.readthedocs.org/en/v2.1.0

    Happy hacking and thanks for flying Invenio.

    | Invenio Development Team | Email: [email protected] | IRC: #invenio on irc.freenode.net | Twitter: http://twitter.com/inveniosoftware | GitHub: http://github.com/inveniosoftware | URL: http://invenio-software.org

    Source code(tar.gz)
    Source code(zip)
  • v2.0.4(Jun 22, 2015)

    Invenio v2.0.4 is released

    Invenio v2.0.4 was released on June 1, 2015.

    About

    Invenio is a digital library framework enabling you to build your own digital library or document repository on the web.

    New features

    • template:
      • Adds Jinja2 filter 's' to convert anything to 'str'.

    Improved features

    • BibDocFile:
      • Escapes file name special characters including accents and spaces in document URLs.
    • installation:
      • Adds default priviledges for database user to access from any host.

    Bug fixes

    • arxiv:
      • Adds proper quotation around OAI-PMH query to avoid a query parser exception due to colons in the OAI identifiers.
    • global:
      • Catches possible KeyError exceptions when using dotted notation in a list to allow for the case when items are missing certain keys.
    • installation:
      • Fixes syntax error in generated Apache virtual host configuration.
    • knowledge:
      • Fixes HTML character encoding in admin templates. (#3118)
    • legacy:
      • Changes the default timestamp to a valid datetime value when reindexing via -R.
    • WebSearch:
      • Removes special behaviour of the "subject" index that was hard- coded based on the index name. Installations should rather specify wanted behaviour by means of configurable tokeniser instead.

    Installation

    $ pip install invenio

    Upgrade

    $ bibsched stop $ sudo systemctl stop apache2 $ pip install --upgrade invenio==2.0.4 $ inveniomanage upgrader check $ inveniomanage upgrader run $ sudo systemctl start apache2 $ bibsched start

    Documentation

    http://invenio.readthedocs.org/en/v2.0.4

    Happy hacking and thanks for flying Invenio.

    | Invenio Development Team | Email: [email protected] | IRC: #invenio on irc.freenode.net | Twitter: http://twitter.com/inveniosoftware | GitHub: http://github.com/inveniosoftware | URL: http://invenio-software.org

    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Jun 22, 2015)

    Invenio v1.2.1 is released

    Invenio v1.2.1 was released on May 21, 2015.

    About

    Invenio is a digital library framework enabling you to build your own digital library or document repository on the web.

    This stable release update is recommended to all Invenio sites using v1.2.0 or previous releases.

    Security fixes

    • BibAuthorID:
      • Improves URL redirecting by properly quoting all URL parts, in order to better protect against possible XSS attacks.
    • WebStyle:
      • Adds back the HttpOnly cookie attribute in order to better protect against potential XSS vulnerabilities. (#3064)

    Improved features

    • installation:
      • Apache virtual environments are now created with appropriate WSGIDaemonProcess user value, taken from the configuration variable CFG_BIBSCHED_PROCESS_USER, provided it is set. This change makes it easier to run Invenio under non-Apache user identity.
      • Apache virtual environments are now created with appropriate WSGIPythonHome directive so that it would be easier to run Invenio from within Python virtual environments.

    Bug fixes

    • BibDocFile:
      • Safer upgrade recipe for migrations from the old document storage model (used in v1.1) to the new document storage model (used in v1.2).
    • WebSearch:
      • Removes special behaviour of the "subject" index that was hard- coded based on the index name. Installations should rather specify wanted behaviour by means of configurable tokeniser instead.
      • Collection names containing slashes are now supported again. However we recommend not to use slashes in collection names; if slashes were wanted for aesthetic reasons, they can be added in visible collection translations. (#2902)
    • global:
      • Replaces invenio-demo.cern.ch by demo.invenio-software.org which is the new canonical URL of the demo site. (#2867)
    • installation:
      • Releases constraint on using an old version of h5py that was anyway no longer available on PyPI.
    • testutils:
      • Switches off SSL verification when running the test suite. Useful for Python-2.7.9 where self-signed SSL certificates (that are usually used on development installations) would cause apparent test failures. (#2868)

    Download

    • http://invenio-software.org/download/invenio-1.2.1.tar.gz
    • http://invenio-software.org/download/invenio-1.2.1.tar.gz.md5
    • http://invenio-software.org/download/invenio-1.2.1.tar.gz.sig

    Installation

    Please follow the INSTALL file bundled in the distribution tarball.

    Upgrade

    Please proceed as follows:

    a) Stop your bibsched queue and your Apache server.

    b) Install the update::

     $ tar xvfz invenio-1.2.1.tar.gz
     $ cd invenio-1.2.1
     $ sudo rsync -a /opt/invenio/etc/ /opt/invenio/etc.OLD/
     $ sh /opt/invenio/etc/build/config.nice
     $ make
     $ make check-upgrade
     $ sudo -u www-data make install
     $ sudo rsync -a /opt/invenio/etc.OLD/ \
         --exclude invenio-autotools.conf \
         /opt/invenio/etc/ # (1)
     $ sudo -u www-data /opt/invenio/bin/inveniocfg --update-all
     $ sudo -u www-data /opt/invenio/bin/inveniocfg --upgrade
    
     (1) If you are upgrading from previous stable release series
         (v0.99, v1.0 or v1.1), please don't run this rsync command
         but diff, in order to inspect changes and adapt your old
         configuration to the new Invenio v1.2 release series.  For
         more information you may also want to consult release notes
         coming with Invenio v1.2.0.
    

    c) Restart your Apache server and your bibsched queue.

    Happy hacking and thanks for flying Invenio.

    | Invenio Development Team | Email: [email protected] | IRC: #invenio on irc.freenode.net | Twitter: http://twitter.com/inveniosoftware | GitHub: http://github.com/inveniosoftware | URL: http://invenio-software.org

    Source code(tar.gz)
    Source code(zip)
  • v1.1.6(Jun 22, 2015)

    Invenio v1.1.6 is released

    Invenio v1.1.6 was released on May 21, 2015.

    About

    Invenio is a digital library framework enabling you to build your own digital library or document repository on the web.

    This old stable release update is recommended to all Invenio sites using v1.1.5 or previous releases.

    Security fixes

    • WebStyle:
      • Adds back the HttpOnly cookie attribute in order to better protect against potential XSS vulnerabilities. (#3064)

    Improved features

    • installation:
      • Apache virtual environments are now created with appropriate WSGIDaemonProcess user value, taken from the configuration variable CFG_BIBSCHED_PROCESS_USER, provided it is set. This change makes it easier to run Invenio under non-Apache user identity.
      • Apache virtual environments are now created with appropriate WSGIPythonHome directive so that it would be easier to run Invenio from within Python virtual environments.

    Bug fixes

    • global:
      • Replaces invenio-demo.cern.ch by demo.invenio-software.org which is the new canonical URL of the demo site. (#2867)
    • testutils:
      • Switches off SSL verification when running the test suite. Useful for Python-2.7.9 where self-signed SSL certificates (that are usually used on development installations) would cause apparent test failures. (#2868)

    Download

    • http://invenio-software.org/download/invenio-1.1.6.tar.gz
    • http://invenio-software.org/download/invenio-1.1.6.tar.gz.md5
    • http://invenio-software.org/download/invenio-1.1.6.tar.gz.sig

    Installation

    Please follow the INSTALL file bundled in the distribution tarball.

    Upgrade

    Please proceed as follows:

    a) Stop your bibsched queue and your Apache server.

    b) Install the update::

     $ tar xvfz invenio-1.1.6.tar.gz
     $ cd invenio-1.1.6
     $ sudo rsync -a /opt/invenio/etc/ /opt/invenio/etc.OLD/
     $ sh /opt/invenio/etc/build/config.nice
     $ make
     $ make check-upgrade
     $ sudo -u www-data make install
     $ sudo rsync -a /opt/invenio/etc.OLD/ \
         --exclude invenio-autotools.conf \
         /opt/invenio/etc/ # (1)
     $ sudo -u www-data /opt/invenio/bin/inveniocfg --update-all
     $ sudo -u www-data /opt/invenio/bin/inveniocfg --upgrade
    
     (1) If you are upgrading from previous stable release series
         (v0.99 or v1.0), please don't run this rsync command but
         diff, in order to inspect changes and adapt your old
         configuration to the new Invenio v1.1 release series.
    

    c) Restart your Apache server and your bibsched queue.

    Happy hacking and thanks for flying Invenio.

    | Invenio Development Team | Email: [email protected] | IRC: #invenio on irc.freenode.net | Twitter: http://twitter.com/inveniosoftware | GitHub: http://github.com/inveniosoftware | URL: http://invenio-software.org

    Source code(tar.gz)
    Source code(zip)
  • v1.0.9(Jun 22, 2015)

    Invenio v1.0.9 is released

    Invenio v1.0.9 was released on May 21, 2015.

    About

    Invenio is a digital library framework enabling you to build your own digital library or document repository on the web.

    This old stable release update is recommended to all Invenio sites using v1.0.8 or previous releases.

    Security fixes

    • WebStyle:
      • Adds back the HttpOnly cookie attribute in order to better protect against potential XSS vulnerabilities. (#3064)

    Improved features

    • installation:
      • Apache virtual environments are now created with appropriate WSGIDaemonProcess user value, taken from the configuration variable CFG_BIBSCHED_PROCESS_USER, provided it is set. This change makes it easier to run Invenio under non-Apache user identity.
      • Apache virtual environments are now created with appropriate WSGIPythonHome directive so that it would be easier to run Invenio from within Python virtual environments.

    Bug fixes

    • global:
      • Replaces invenio-demo.cern.ch by demo.invenio-software.org which is the new canonical URL of the demo site. (#2867)
    • testutils:
      • Switches off SSL verification when running the test suite. Useful for Python-2.7.9 where self-signed SSL certificates (that are usually used on development installations) would cause apparent test failures. (#2868)

    Download

    • http://invenio-software.org/download/invenio-1.0.9.tar.gz
    • http://invenio-software.org/download/invenio-1.0.9.tar.gz.md5
    • http://invenio-software.org/download/invenio-1.0.9.tar.gz.sig

    Installation

    Please follow the INSTALL file bundled in the distribution tarball.

    Upgrade

    If you are upgrading from Invenio v1.0.8, then:

    a) Stop your bibsched queue and your Apache server.

    b) Install the update::

     $ tar xvfz invenio-1.0.9.tar.gz
     $ cd invenio-1.0.9
     $ sudo rsync -a /opt/invenio/etc/ /opt/invenio/etc.OLD/
     $ sh /opt/invenio/etc/build/config.nice
     $ make
     $ make check-custom-templates
     $ make update-v1.0.8-tables
     $ sudo -u www-data make install
     $ sudo -u www-data /opt/invenio/bin/inveniocfg --update-all
     $ sudo rsync -a /opt/invenio/etc.OLD/ \
         --exclude invenio-autotools.conf \
         /opt/invenio/etc/
    

    c) Restart your Apache server and your bibsched queue.

    Happy hacking and thanks for flying Invenio.

    | Invenio Development Team | Email: [email protected] | IRC: #invenio on irc.freenode.net | Twitter: http://twitter.com/inveniosoftware | GitHub: http://github.com/inveniosoftware | URL: http://invenio-software.org

    Source code(tar.gz)
    Source code(zip)
  • v2.0.3(Jun 22, 2015)

    Invenio v2.0.3 is released

    Invenio v2.0.3 was released on May 15, 2015.

    About

    Invenio is a digital library framework enabling you to build your own digital library or document repository on the web.

    Security fixes

    • script:
      • Switches from insecure standard random number generator to secure OS-driven entropy source (/dev/urandom on linux) for secret key generation.

    New features

    • formatter:
      • Adds html_class and link_label attributes to bfe_edit_record. (#3020)
    • script:
      • Adds SERVER_BIND_ADDRESS and SERVER_BIND_PORT to overwrite bind address and port independently from the public URL. This gives control over the used network interface as well as the ability to bind Invenio to a protected port and use a reverse proxy for access. Priority of the config is (1) runserver command arguments, (2) SERVER_BIND_ADDRESS and SERVER_BIND_PORT configuration, (3) data from CFG_SITE_URL, (4) defaults (127.0.0.1:80).

    Improved features

    • docker:
      • Slims down docker image by building on top of less bloated base image and only install what is really required. Also purges unneeded packages, flushes caches and clean temporary files. All these parts should not be in a production image and are also not required by developers. You can still install components when extending the Invenio base image.
    • docs:
      • Adds missing 'libffi' library and howto start redis server. Causing an exception when running pip install --process- dependency-links -e .[development]: 'ffi.h' file not found and 'sudo: service: command not found' when starting redis server (OS X Yosemite, 10.10).
      • Adds a step describing how to install MySQL on CentOS 7 because it does not have 'mysql-server' package by default.

    Bug fixes

    • email:
      • Fixes 'send_email' to expect an 'EmailMessage' object from the 'forge_email' method rather than a string-like object. (#3076)
      • Fixes reference to CFG_SITE_ADMIN_EMAIL (not a global).
    • legacy:
      • Makes lazy loading of stopwords_kb variable to avoid file parsing during script loading. (#1462)
    • logging:
      • Fixes Sentry proxy definition pointing to a wrong application attribute.
    • matcher:
      • Fixes Unicode conversion required to use the levenshtein_distance function. (#3047)

    Installation

    $ pip install invenio

    Documentation

    http://invenio.readthedocs.org/en/v2.0.3

    Homepage

    https://github.com/inveniosoftware/invenio

    Happy hacking and thanks for choosing Invenio.

    | Invenio Development Team | Email: [email protected] | IRC: #invenio on irc.freenode.net | Twitter: http://twitter.com/inveniosoftware | GitHub: http://github.com/inveniosoftware | URL: http://invenio-software.org

    Source code(tar.gz)
    Source code(zip)
  • v2.0.2(Jun 22, 2015)

    Invenio v2.0.2 is released

    Invenio v2.0.2 was released on April 17, 2015.

    About

    Invenio is a digital library framework enabling you to build your own digital library or document repository on the web.

    Security fixes

    • celery:
      • Forces Celery to only accept msgpack content when using standard configuration. This disallows pickle messages which can be used for remote code execution. (#3003)
    • global:
      • Disables all attempts to serve directory listings for directories found under static root.

    Incompatible changes

    • celery:
      • If you use any Celery serializer other than msgpack, you must update configuration variable CELERY_ACCEPT_CONTENT to include that serializer.
    • pidstore:
      • Refactors DataCite provider to use the new external DataCite API client.
      • Removes DataCite API client from Invenio.

    New features

    • docs:
      • Adds "Code of Conduct" to the "Community" documentation.
      • Adds new fast track deprecation policy.
      • Documents commit message labels used by developers (such as NEW, SECURITY, FIX, etc.) used in automatic generation of structured release notes. (#2856)
    • global:
      • Adds a inveniomanage config locate command to request the location of the instance config file.
      • Adds new configurable variable INVENIO_APP_CONFIG_ENVS that can be set both from invenio.cfg and OS environment. Application factory iterates over comma separated list of configuration variable names and updates application config with equivalent OS environment value. (#2858)
    • template:
      • Adds 'u' filter that converts str to unicode in Jinja2 templates since support for str has been deprecated. Example: {{ mystr|u }}. (#2862)

    Improved features

    • docs:
      • Adds example of how to deprecate a feature and includes deprecation policy in documentation.
    • global:
      • Moves datacite API wrapper to external package.
      • Escapes all unicode characters in Jinja2 templates.
    • installation:
      • Apache virtual environments are now created with appropriate WSGIDaemonProcess user value, taken from the configuration variable CFG_BIBSCHED_PROCESS_USER, provided it is set. This change makes it easier to run Invenio under non-Apache user identity.
      • Apache virtual environments are now created with appropriate WSGIPythonHome directive so that it would be easier to run Invenio from within Python virtual environments.
    • jsonalchemy:
      • Introduces support for accepting MARC fields having any indicator. (#1722 #2075)

    Bug fixes

    • admin:
      • Adds admin.js bundle that loads select2.js library on /admin pages. (#2690 #2781)
    • assets:
      • Implements __deepcopy__ method for webassets.filter.option in order to fix unexpected behavior of the option class contructor. (#2777 #2864 #2921)
    • documents:
      • Flask-Login import in field definition. (#2905)
      • Safer upgrade recipe for migrations from the old document storage model (used in v1.1) to the new document storage model (used in v1.2).
    • global:
      • Drops support for serving directories in Apache site configuration to avoid problems with loading '/admin' url without trailing slash that attempts to serve the static directory of the same name. (#2470 #2943)
    • installation:
      • Adds Babel as setup requirements for installing compile_catalog command.
    • jsonalchemy:
      • Fixes the definition of time_and_place_of_event_note, series_statement and source_of_description fields.
    • oairepository:
      • Switches keys in CFG_OAI_METADATA_FORMATS configuration mapping. (#2962)
      • Amends bfe_oai_marcxml element since get_preformatted_record does not return a tuple anymore.
    • search:
      • Fixes portalbox text overflow and and syntax error in CSS. (#3023)
      • Collection names containing slashes are now supported again. However we recommend not to use slashes in collection names; if slashes were wanted for aesthetic reasons, they can be added in visible collection translations. (#2902)
    • sorter:
      • Comparison function of record tags uses space concatened string from list of all tags values. (#2750)

    Notes

    • assets:
      • Adds deprecation warning when LESS_RUN_IN_DEBUG is used. (#2923)
    • global:
      • Deprecates use of invenio.utils.datacite:DataCite (to be removed in Invenio 2.2).
      • External authentication methods are being deprecated. Please use invenio.modules.oauthclient or Flask-SSO instead. (#1083)
      • Recreate Apache site configurations using new template. Run following command: inveniomanage apache create-config.
      • Deprecates custom remote debuggers. Please use native Werkzeug debugger or other (*)pdb equivalents. (#2945)
      • Adds deprecation warning for invenio.ext.jinja2hacks and all detected non-ascii strings usage in templates mainly coming from legacy (1.x) modules. (#2862)
    • installation:
      • Limits version of SQLAlchemy<=1.0 and SQLAlchemy-Utils<=0.30.
    • oairepository:
      • Changes current behavior of OAI-PMH server for logged in users to take into account all records a user can view and not only public records.

    Installation

    $ pip install invenio

    Documentation

    http://invenio.readthedocs.org/en/v2.0.2

    Homepage

    https://github.com/inveniosoftware/invenio

    Happy hacking and thanks for choosing Invenio.

    | Invenio Development Team | Email: [email protected] | IRC: #invenio on irc.freenode.net | Twitter: http://twitter.com/inveniosoftware | GitHub: http://github.com/inveniosoftware | URL: http://invenio-software.org

    Source code(tar.gz)
    Source code(zip)
  • v2.0.1(Jun 22, 2015)

    Invenio v2.0.1 is released

    Invenio v2.0.1 was released on March 20, 2015.

    About

    Invenio is a digital library framework enabling you to build your own digital library or document repository on the web.

    New features

    • global:
      • Deprecation policy comes with new deprecation warnings wrappers. (#2875)

    Bug fixes

    • assets:
      • Avoids bundle changes to persist between requests in DEBUG mode, which is not desired. (#2777)
    • docs:
      • Adds missing invenio.base package to the config.py file for a custom overlay in the docs.
    • global:
      • Replaces invenio-demo.cern.ch by demo.invenio-software.org which is the new canonical URL of the demo site. (#2867)
    • installation:
      • Reorders 'compile_catalog' and 'install' commands to fix installation process from PyPI.
      • Adds apache2 xsendfile package to installation script. (#2857)
    • messages:
      • Defines a path for jquery.ui required by jQuery-Timepicker-Addon and sets an exact version for the plugin instead of latest. (#2910)
    • records:
      • Changes creation_date field definition in tests. (#2214)
    • search:
      • Generates correct url for /collection redirect.

    Installation

    $ pip install invenio

    Documentation

    http://invenio.readthedocs.org/en/v2.0.1

    Homepage

    https://github.com/inveniosoftware/invenio

    Happy hacking and thanks for choosing Invenio.

    | Invenio Development Team | Email: [email protected] | IRC: #invenio on irc.freenode.net | Twitter: http://twitter.com/inveniosoftware | GitHub: http://github.com/inveniosoftware | URL: http://invenio-software.org

    Source code(tar.gz)
    Source code(zip)
Owner
Invenio digital repository framework
Invenio digital repository framework
A CalDAV/CardDAV server

Xandikos is a lightweight yet complete CardDAV/CalDAV server that backs onto a Git repository. Xandikos (Ξανδικός or Ξανθικός) takes its name from the

Jelmer Vernooij 255 Jan 05, 2023
Collect your thoughts and notes without leaving the command line.

jrnl To get help, submit an issue on Github. jrnl is a simple journal application for your command line. Journals are stored as human readable plain t

Manuel Ebert 31 Dec 01, 2022
Main repository of the zim desktop wiki project

Zim - A Desktop Wiki Editor Zim is a graphical text editor used to maintain a collection of wiki pages. Each page can contain links to other pages, si

Zim Desktop Wiki 1.6k Dec 30, 2022
:mag: Ambar: Document Search Engine

🔍 Ambar: Document Search Engine Ambar is an open-source document search engine with automated crawling, OCR, tagging and instant full-text search. Am

RD17 1.9k Jan 09, 2023
Automatic Movie Downloading via NZBs & Torrents

CouchPotato CouchPotato (CP) is an automatic NZB and torrent downloader. You can keep a "movies I want"-list and it will search for NZBs/torrents of t

CouchPotato 3.9k Jan 04, 2023
A :baby: buddy to help caregivers track sleep, feedings, diaper changes, and tummy time to learn about and predict baby's needs without (as much) guess work.

Baby Buddy A buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs wit

Baby Buddy 1.5k Jan 02, 2023
ProPublica's collaborative tip-gathering framework. Import and manage CSV, Google Sheets and Screendoor data with ease.

Collaborate This is a web application for managing and building stories based on tips solicited from the public. This project is meant to be easy to s

ProPublica 86 Oct 18, 2022
🦉Data Version Control | Git for Data & Models

Website • Docs • Blog • Twitter • Chat (Community & Support) • Tutorial • Mailing List Data Version Control or DVC is an open-source tool for data sci

Iterative 10.9k Jan 05, 2023
:bookmark: Browser-independent bookmark manager

buku buku in action! Introduction buku is a powerful bookmark manager written in Python3 and SQLite3. When I started writing it, I couldn't find a fle

Mischievous Meerkat 5.4k Jan 02, 2023
Plugin-based, unopinionated membership administration software

byro is a membership administration tool for small and medium sized clubs/NGOs/associations of all kinds, with a focus on the DACH region. While it is

123 Nov 16, 2022
Open source platform for the machine learning lifecycle

MLflow: A Machine Learning Lifecycle Platform MLflow is a platform to streamline machine learning development, including tracking experiments, packagi

MLflow 13.3k Jan 04, 2023
A collection of self-contained and well-documented issues for newcomers to start contributing with

fedora-easyfix A collection of self-contained and well-documented issues for newcomers to start contributing with How to setup the local development e

Akashdeep Dhar 8 Oct 16, 2021
Indico - A feature-rich event management system, made @ CERN, the place where the Web was born.

Indico Indico is: 🗓 a general-purpose event management tool; 🌍 fully web-based; 🧩 feature-rich but also extensible through the use of plugins; ⚖️ O

Indico 1.4k Jan 09, 2023
Automatic music downloader for SABnzbd

Headphones Headphones is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, µTorrent, De

3.2k Dec 31, 2022
Wikidata scholarly profiles

Scholia is a python package and webapp for interaction with scholarly information in Wikidata. Webapp As a webapp, it currently runs from Wikimedia To

Finn Årup Nielsen 181 Jan 03, 2023
Free and open-source digital preservation system designed to maintain standards-based, long-term access to collections of digital objects.

Archivematica By Artefactual Archivematica is a web- and standards-based, open-source application which allows your institution to preserve long-term

Artefactual 338 Dec 16, 2022
Fava - web interface for Beancount

Fava is a web interface for the double-entry bookkeeping software Beancount with a focus on features and usability. Check out the online demo and lear

1.5k Dec 30, 2022
Scan, index, and archive all of your paper documents

[ en | de | el ] Important news about the future of this project It's been more than 5 years since I started this project on a whim as an effort to tr

Paperless 7.8k Jan 06, 2023
This is your launchpad that comes with a variety of applications waiting to run on your kubernetes cluster with a single click

This is your launchpad that comes with a variety of applications waiting to run on your kubernetes cluster with a single click.

M. Rehan 2 Jun 26, 2022
WikidPad is a single user desktop wiki

What is WikidPad? WikidPad is a Wiki-like notebook for storing your thoughts, ideas, todo lists, contacts, or anything else you can think of to write

WikidPad 176 Dec 14, 2022