Skip to content

Commit

Permalink
global: Invenio 3 compatibility
Browse files Browse the repository at this point in the history
* INCOMPATIBLE Makes `invenio-oaiharvester` compatible with Invenio 3
  release series.

* NEW Adds Python 3.3+ support.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
  • Loading branch information
jalavik committed Apr 6, 2016
1 parent bcf3d87 commit c0669f7
Show file tree
Hide file tree
Showing 58 changed files with 6,378 additions and 1,501 deletions.
41 changes: 0 additions & 41 deletions .kwalitee.yml

This file was deleted.

40 changes: 0 additions & 40 deletions .travis.invenio.cfg

This file was deleted.

75 changes: 41 additions & 34 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,70 +1,77 @@
# -*- coding: utf-8 -*-
#
# This file is part of Invenio
# Copyright (C) 2015 CERN
# Copyright (C) 2015, 2016 CERN
#
# Invenio is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# Invenio is free software; you can redistribute it
# and/or modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# Invenio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# Invenio is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Invenio; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
# along with Invenio; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307, USA.
#
# In applying this license, CERN does not waive the privileges and immunities
# granted to it by virtue of its status as an Intergovernmental Organization
# or submit itself to any jurisdiction.
# In applying this license, CERN does not
# waive the privileges and immunities granted to it by virtue of its status
# as an Intergovernmental Organization or submit itself to any jurisdiction.

addons:
postgresql: 9.3

notifications:
email: false

services:
- mysql
- redis

sudo: false

language: python

cache:
- apt
- pip

services:
- mysql
- postgresql


env:
- REQUIREMENTS=lowest REXTRAS=docs,tests
- REQUIREMENTS=release REXTRAS=docs,tests
- REQUIREMENTS=devel REXTRAS=docs,tests
- REQUIREMENTS=lowest EXTRAS=all,sqlite SQLALCHEMY_DATABASE_URI="sqlite:///test.db"
- REQUIREMENTS=lowest EXTRAS=all,mysql SQLALCHEMY_DATABASE_URI="mysql+pymysql://travis@localhost:3306/invenio"
- REQUIREMENTS=lowest EXTRAS=all,postgresql SQLALCHEMY_DATABASE_URI="postgresql+psycopg2://postgres@localhost:5432/invenio"
- REQUIREMENTS=release EXTRAS=all,sqlite SQLALCHEMY_DATABASE_URI="sqlite:///test.db"
- REQUIREMENTS=release EXTRAS=all,mysql SQLALCHEMY_DATABASE_URI="mysql+pymysql://travis@localhost:3306/invenio"
- REQUIREMENTS=release EXTRAS=all,postgresql SQLALCHEMY_DATABASE_URI="postgresql+psycopg2://postgres@localhost:5432/invenio"
- REQUIREMENTS=devel EXTRAS=all,sqlite SQLALCHEMY_DATABASE_URI="sqlite:///test.db"
- REQUIREMENTS=devel EXTRAS=all,mysql SQLALCHEMY_DATABASE_URI="mysql+pymysql://travis@localhost:3306/invenio"
- REQUIREMENTS=devel EXTRAS=all,postgresql SQLALCHEMY_DATABASE_URI="postgresql+psycopg2://postgres@localhost:5432/invenio"

python:
- "2.7"
- "3.3"
- "3.4"
- "3.5"

before_install:
- "travis_retry pip install --upgrade pip"
- "travis_retry pip install check-manifest mock twine wheel coveralls"
- "python requirements.py --extras=$REXTRAS --level=min > .travis-lowest-requirements.txt"
- "python requirements.py --extras=$REXTRAS --level=pypi > .travis-release-requirements.txt"
- "python requirements.py --extras=$REXTRAS --level=dev > .travis-devel-requirements.txt"
- "mkdir -p ${VIRTUAL_ENV}/var/invenio.base-instance/"
- "cp .travis.invenio.cfg ${VIRTUAL_ENV}/var/invenio.base-instance/invenio.cfg"
- "travis_retry pip install --upgrade pip setuptools py"
- "travis_retry pip install twine wheel coveralls requirements-builder"
- "requirements-builder -e all --level=min setup.py > .travis-lowest-requirements.txt"
- "requirements-builder -e all --level=pypi setup.py > .travis-release-requirements.txt"
- "requirements-builder -e all --level=dev --req requirements-devel.txt setup.py > .travis-devel-requirements.txt"
- "mysql -e 'CREATE DATABASE IF NOT EXISTS invenio;' -uroot"
- "psql -c 'CREATE DATABASE invenio;' -U postgres"

install:
- "travis_retry pip install -r .travis-$REQUIREMENTS-requirements.txt --allow-all-external"
- "travis_retry pip install -e .[$REXTRAS]"

before_script:
- "inveniomanage database init --yes-i-know || echo ':('"
- "inveniomanage database create --quiet || echo ':('"
- "travis_retry pip install -r .travis-${REQUIREMENTS}-requirements.txt"
- "travis_retry pip install -e .[${EXTRAS}]"

script:
- "check-manifest --ignore .travis-\\*-requirements.txt"
- "sphinx-build -qnN docs docs/_build/html"
- "python setup.py test"
- "./run-tests.sh"

after_success:
- coveralls
Expand Down
50 changes: 50 additions & 0 deletions .tx/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
#
# This file is part of Invenio.
# Copyright (C) 2016 CERN.
#
# Invenio is free software; you can redistribute it
# and/or modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# Invenio is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Invenio; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307, USA.
#
# In applying this license, CERN does not
# waive the privileges and immunities granted to it by virtue of its status
# as an Intergovernmental Organization or submit itself to any jurisdiction.


# TODO: Transifex integration
#
# 1) Create message catalog:
# $ python setup.py extract_messages
# $ python setup.py init_catalog -l <lang>
# $ python setup.py compile_catalog
# 2) Ensure project has been created on Transifex under the inveniosoftware
# organisation.
# 3) Install the transifex-client
# $ pip install transifex-client
# 4) Push source (.pot) and translations (.po) to Transifex
# $ tx push -s -t
# 5) Pull translations for a single language from Transifex
# $ tx pull -l <lang>
# 6) Pull translations for all languages from Transifex
# $ tx pull -a

[main]
host = https://www.transifex.com

[invenio-oaiharvester.messagespot]
file_filter = invenio_oaiharvester/translations/<lang>/LC_MESSAGES/messages.po
source_file = invenio_oaiharvester/translations/messages.pot
source_lang = en
type = PO
113 changes: 113 additions & 0 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
Contributing
============

Contributions are welcome, and they are greatly appreciated! Every
little bit helps, and credit will always be given.

Types of Contributions
----------------------

Report Bugs
~~~~~~~~~~~

Report bugs at https://github.com/inveniosoftware/invenio-oaiharvester/issues.

If you are reporting a bug, please include:

* Your operating system name and version.
* Any details about your local setup that might be helpful in troubleshooting.
* Detailed steps to reproduce the bug.

Fix Bugs
~~~~~~~~

Look through the GitHub issues for bugs. Anything tagged with "bug"
is open to whoever wants to implement it.

Implement Features
~~~~~~~~~~~~~~~~~~

Look through the GitHub issues for features. Anything tagged with "feature"
is open to whoever wants to implement it.

Write Documentation
~~~~~~~~~~~~~~~~~~~

Invenio-OAIHarvester could always use more documentation, whether as part of the
official Invenio-OAIHarvester docs, in docstrings, or even on the web in blog posts,
articles, and such.

Submit Feedback
~~~~~~~~~~~~~~~

The best way to send feedback is to file an issue at
https://github.com/inveniosoftware/invenio-oaiharvester/issues.

If you are proposing a feature:

* Explain in detail how it would work.
* Keep the scope as narrow as possible, to make it easier to implement.
* Remember that this is a volunteer-driven project, and that contributions
are welcome :)

Get Started!
------------

Ready to contribute? Here's how to set up `invenio` for local development.

1. Fork the `invenio` repo on GitHub.
2. Clone your fork locally:

.. code-block:: console
$ git clone git@github.com:your_name_here/invenio-oaiharvester.git
3. Install your local copy into a virtualenv. Assuming you have
virtualenvwrapper installed, this is how you set up your fork for local
development:

.. code-block:: console
$ mkvirtualenv invenio-oaiharvester
$ cd invenio-oaiharvester/
$ pip install -e .[all]
4. Create a branch for local development:

.. code-block:: console
$ git checkout -b name-of-your-bugfix-or-feature
Now you can make your changes locally.

5. When you're done making changes, check that your changes pass tests:

.. code-block:: console
$ ./run-tests.sh
The tests will provide you with test coverage and also check PEP8
(code style), PEP257 (documentation), flake8 as well as build the Sphinx
documentation and run doctests.

6. Commit your changes and push your branch to GitHub:

.. code-block:: console
$ git add .
$ git commit -s -m "Your detailed description of your changes."
$ git push origin name-of-your-bugfix-or-feature
7. Submit a pull request through the GitHub website.

Pull Request Guidelines
-----------------------

Before you submit a pull request, check that it meets these guidelines:

1. The pull request should include tests and must not decrease test coverage.
2. If the pull request adds functionality, the docs should be updated. Put
your new functionality into a function with a docstring.
3. The pull request should work for Python 2.7, 3.3, 3.4 and 3.5. Check
https://travis-ci.com/inveniosoftware/invenio-oaiharvester/pull_requests
and make sure that the tests pass for all supported Python versions.
2 changes: 2 additions & 0 deletions INSTALL.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Installation
============
5 changes: 4 additions & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,14 @@ include *.in
include *.py
include *.rst
include *.txt
include .editorconfig .dockerignore .travis.yml .kwalitee.yml .travis.invenio.cfg
include .editorconfig .dockerignore .travis.yml .tx/config
include LICENSE
include babel.ini
include pytest.ini
include tox.ini
include *.sh

recursive-include examples *.py
recursive-include docs *.bat
recursive-include docs *.py
recursive-include docs *.rst
Expand Down
Loading

0 comments on commit c0669f7

Please sign in to comment.