Blame UPGRADING.rst

Pierre-Yves Chibon 24cf2b
Upgrading Pagure
Pierre-Yves Chibon 24cf2b
================
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon b663fc
From 3.7 to 3.8
Pierre-Yves Chibon b663fc
---------------
Pierre-Yves Chibon b663fc
Pierre-Yves Chibon b663fc
The release 3.8 brings some changes to the database schema.
Pierre-Yves Chibon b663fc
Pierre-Yves Chibon b663fc
* Update the data schema using alembic: ``alembic upgrade head``
Pierre-Yves Chibon b663fc
Pierre-Yves Chibon b663fc
New configuration keys added:
Pierre-Yves Chibon b663fc
Pierre-Yves Chibon b663fc
* PROJECT_NAME_REGEX
Pierre-Yves Chibon b663fc
Pierre-Yves Chibon b663fc
Pierre-Yves Chibon dedc70
From 3.6 to 3.7
Pierre-Yves Chibon dedc70
---------------
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
The release 3.7 brings some changes to the database schema.
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
* Update the data schema using alembic: ``alembic upgrade head``
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
New configuration keys added:
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
* ENABLE_DEL_FORKS
Pierre-Yves Chibon dedc70
* ENABLE_UI_NEW_PROJECTS
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
From 3.5 to 3.6
Pierre-Yves Chibon dedc70
---------------
Pierre-Yves Chibon dedc70
New configuration keys added:
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
* GITOLITE_CELERY_QUEUE
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
From 3.4 to 3.5
Pierre-Yves Chibon dedc70
---------------
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
New configuration keys added:
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
* USER_ACLS
Pierre-Yves Chibon dedc70
* CASE_SENSITIVE
Pierre-Yves Chibon dedc70
* HTML_TITLE
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
From 3.3 to 3.4
Pierre-Yves Chibon dedc70
---------------
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
New configuration keys added:
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
* DEPLOY_KEY
Pierre-Yves Chibon dedc70
* LOCAL_SSH_KEY
Pierre-Yves Chibon dedc70
* ALLOW_DELETE_BRANCH
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon dedc70
Pierre-Yves Chibon f5d66f
From 3.2 to 3.3
Pierre-Yves Chibon f5d66f
---------------
Pierre-Yves Chibon f5d66f
Pierre-Yves Chibon f5d66f
[SECURITY FIX]: The 3.3 release contains an important security fix.
Pierre-Yves Chibon f5d66f
If you are using the private project feature of pagure, the gitolite
Pierre-Yves Chibon f5d66f
configuration generated was still granting access to the private projects. This
Pierre-Yves Chibon f5d66f
made the private projects visible and accessible.
Pierre-Yves Chibon f5d66f
After updating to 3.3, ensure your gitolite configuration gets re-generated
Pierre-Yves Chibon f5d66f
(pagure-admin refresh-gitolite can help you with this).
Pierre-Yves Chibon f5d66f
Pierre-Yves Chibon f5d66f
Pierre-Yves Chibon dedc70
The 3.3 release brings some adjustments to the database schema.
Pierre-Yves Chibon f5d66f
Pierre-Yves Chibon dedc70
* Update the database schema using alembic: ``alembic upgrade head``
Pierre-Yves Chibon f5d66f
Pierre-Yves Chibon f5d66f
Pierre-Yves Chibon f5d66f
Pierre-Yves Chibon 9f4434
From 3.1 to 3.2
Pierre-Yves Chibon 9f4434
---------------
Pierre-Yves Chibon 9f4434
Pierre-Yves Chibon 9f4434
While not being a bug fix, this release has no database schema changes.
Pierre-Yves Chibon 9f4434
However, this release breaks the plugin interface for auth introduced in 3.1 and
Pierre-Yves Chibon 9f4434
changed in 3.1. If you are using pagure-dist-git, make sure to upgrade to at
Pierre-Yves Chibon 9f4434
least 0.4. This interface will be considered stable in 3.4 and announced as
Pierre-Yves Chibon 9f4434
such.
Pierre-Yves Chibon 9f4434
Pierre-Yves Chibon 9f4434
Pierre-Yves Chibon 9a8ed8
From 3.0 to 3.1
Pierre-Yves Chibon 9a8ed8
---------------
Pierre-Yves Chibon 9a8ed8
Pierre-Yves Chibon 9a8ed8
While not being a bug fix, this release has no database schema changes.
Pierre-Yves Chibon 9a8ed8
However, this release breaks the plugin interface for auth introduced in 3.0. If
Pierre-Yves Chibon 9a8ed8
you are using pagure-dist-git, make sure to upgrade to at least 0.3.
Pierre-Yves Chibon 9a8ed8
Pierre-Yves Chibon 9a8ed8
Pierre-Yves Chibon bdd328
From 2.15 to 3.0
Pierre-Yves Chibon bdd328
----------------
Pierre-Yves Chibon bdd328
Pierre-Yves Chibon bdd328
The 3.0 version was released with some major re-architecturing. The interaction
Pierre-Yves Chibon bdd328
with the backend git repo (being the main source repo or the tickets or requests
Pierre-Yves Chibon bdd328
repos) are now done by a worker that is triggered via a message queue.
Pierre-Yves Chibon bdd328
This communication is done using `celery <http: www.celeryproject.org="">`_ and</http:>
Pierre-Yves Chibon bdd328
via one of the message queue celery supports (pagure currently defaulting to
Pierre-Yves Chibon bdd328
`redis <https: redis.io="">`_.</https:>
Pierre-Yves Chibon bdd328
So to get pagure 3.0 running, you will need to get your own message queue (such
Pierre-Yves Chibon bdd328
as redis) up running and configured in pagure's configuration.
Pierre-Yves Chibon bdd328
Pierre-Yves Chibon bdd328
This major version bump has also been an opportunity to rename all the services
Pierre-Yves Chibon bdd328
to use the same naming schema of pagure-<service>.</service>
Pierre-Yves Chibon bdd328
The rename is as such:
Pierre-Yves Chibon bdd328
Pierre-Yves Chibon bdd328
+------------------+-----------------+
Pierre-Yves Chibon bdd328
|  In 2.x          | From 3.0        |
Pierre-Yves Chibon bdd328
+==================+=================+
Pierre-Yves Chibon bdd328
| pagure-ci        | pagure-ci       |
Pierre-Yves Chibon bdd328
+------------------+-----------------+
Pierre-Yves Chibon bdd328
| ev-server        | pagure-ev       |
Pierre-Yves Chibon bdd328
+------------------+-----------------+
Pierre-Yves Chibon bdd328
| pagure-loadjson  | pagure-loadjson |
Pierre-Yves Chibon bdd328
+------------------+-----------------+
Pierre-Yves Chibon bdd328
| pagure-logcom    | pagure-logcom   |
Pierre-Yves Chibon bdd328
+------------------+-----------------+
Pierre-Yves Chibon bdd328
| milters          | pagure-milters  |
Pierre-Yves Chibon bdd328
+------------------+-----------------+
Pierre-Yves Chibon bdd328
| webhook-server   | pagure-webhook  |
Pierre-Yves Chibon bdd328
+------------------+-----------------+
Pierre-Yves Chibon bdd328
|                  | pagure-worker   |
Pierre-Yves Chibon bdd328
+------------------+-----------------+
Pierre-Yves Chibon bdd328
Pierre-Yves Chibon bdd328
.. note:: This last service is the service mentioned above and it is part of
Pierre-Yves Chibon bdd328
          pagure core, not optional unlike the other services in this table.
Pierre-Yves Chibon bdd328
Pierre-Yves Chibon bdd328
This release also introduces some new configuration keys:
Pierre-Yves Chibon bdd328
Pierre-Yves Chibon bdd328
- ``CELERY_CONFIG`` defaults to ``{}``
Pierre-Yves Chibon bdd328
- ``ATTACHMENTS_FOLDER``, to be configured
Pierre-Yves Chibon bdd328
- ``GITOLITE_BACKEND`` defaults to ``gitolite3``, deprecates ``GITOLITE_VERSION``
Pierre-Yves Chibon bdd328
- ``EXTERNAL_COMMITTER`` defaults to ``{}``
Pierre-Yves Chibon bdd328
- ``REQUIRED_GROUPS`` defaults to ``{}``
Pierre-Yves Chibon bdd328
Pierre-Yves Chibon bdd328
This version also introduces a few database changes, so you will need to update
Pierre-Yves Chibon bdd328
the database schema using alembic: ``alembic upgrade head``.
Pierre-Yves Chibon bdd328
Pierre-Yves Chibon bdd328
Pierre-Yves Chibon 15abe5
From 2.14 to 2.15
Pierre-Yves Chibon 15abe5
-----------------
Pierre-Yves Chibon 15abe5
Pierre-Yves Chibon 15abe5
The 2.15 release brings some adjustments to the database scheme.
Pierre-Yves Chibon 15abe5
Pierre-Yves Chibon 15abe5
* Update the database schame using alembic: ``alembic upgrade head``
Pierre-Yves Chibon 15abe5
Pierre-Yves Chibon 15abe5
Pierre-Yves Chibon d11021
From 2.13 to 2.14
Pierre-Yves Chibon d11021
-----------------
Pierre-Yves Chibon d11021
Pierre-Yves Chibon d11021
The 2.14 release brings some adjustments to the database scheme.
Pierre-Yves Chibon d11021
Pierre-Yves Chibon d11021
* Update the database schame using alembic: ``alembic upgrade head``
Pierre-Yves Chibon d11021
Pierre-Yves Chibon d11021
Pierre-Yves Chibon 1cb2c3
From 2.12 to 2.13
Pierre-Yves Chibon d11021
-----------------
Pierre-Yves Chibon 1cb2c3
Pierre-Yves Chibon 1cb2c3
The 2.13 release brings some adjustments to the database scheme.
Pierre-Yves Chibon 1cb2c3
Pierre-Yves Chibon 1cb2c3
* Update the database schame using alembic: ``alembic upgrade head``
Pierre-Yves Chibon 1cb2c3
Pierre-Yves Chibon 1cb2c3
Pierre-Yves Chibon fc7b57
From 2.11 to 2.12
Pierre-Yves Chibon d11021
-----------------
Pierre-Yves Chibon 1cb2c3
Pierre-Yves Chibon fc7b57
From this release on, we will have alembic migration script for new table
Pierre-Yves Chibon fc7b57
creation, so there will no longer be a need to use ``createdb.py``
Pierre-Yves Chibon fc7b57
Pierre-Yves Chibon fc7b57
The 2.12 release brings some adjustments to the database scheme.
Pierre-Yves Chibon fc7b57
Pierre-Yves Chibon fc7b57
* Update the database schame using alembic: ``alembic upgrade head``
Pierre-Yves Chibon fc7b57
Pierre-Yves Chibon fc7b57
Pierre-Yves Chibon 2c1389
From 2.10 to 2.11
Pierre-Yves Chibon d11021
-----------------
Pierre-Yves Chibon 1cb2c3
Pierre-Yves Chibon 2c1389
The 2.10 releases brings some adjustments to the database scheme.
Pierre-Yves Chibon 2c1389
Pierre-Yves Chibon 2c1389
* Create the new DB tables and the new status field using the ``createdb.py``
Pierre-Yves Chibon 2c1389
    script.
Pierre-Yves Chibon 2c1389
Pierre-Yves Chibon 2c1389
* Update the database schame using alembic: ``alembic upgrade head``
Pierre-Yves Chibon 2c1389
Pierre-Yves Chibon 2c1389
Pierre-Yves Chibon 6e2986
From 2.9 to 2.10
Pierre-Yves Chibon 6e2986
----------------
Pierre-Yves Chibon 6e2986
Pierre-Yves Chibon 6e2986
The 2.10 releases brings some little changes to the database scheme.
Pierre-Yves Chibon 6e2986
Pierre-Yves Chibon 6e2986
Therefore when upgrading to 2.10, you will have to:
Pierre-Yves Chibon 6e2986
Pierre-Yves Chibon 6e2986
* Update the database schame using alembic: ``alembic upgrade head``
Pierre-Yves Chibon 6e2986
Pierre-Yves Chibon f8b181
Pierre-Yves Chibon 65dd40
From 2.8 to 2.9
Pierre-Yves Chibon 65dd40
---------------
Pierre-Yves Chibon 65dd40
Pierre-Yves Chibon 65dd40
The 2.9 releases brings some adjustments to the database scheme.
Pierre-Yves Chibon 65dd40
Pierre-Yves Chibon 65dd40
* Create the new DB tables and the new status field using the ``createdb.py``
Pierre-Yves Chibon 65dd40
    script.
Pierre-Yves Chibon 65dd40
Pierre-Yves Chibon 65dd40
* Update the database schame using alembic: ``alembic upgrade head``
Pierre-Yves Chibon 65dd40
Pierre-Yves Chibon 65dd40
If you are interested in loading your local data into the ``pagure_logs`` table
Pierre-Yves Chibon 65dd40
that this new release adds (data which is then displayed in the calendar heatmap
Pierre-Yves Chibon 65dd40
on the user's page), you can find two utility scripts in
Pierre-Yves Chibon 65dd40
https://pagure.io/pagure-utility that will help you to do that. They are:
Pierre-Yves Chibon 65dd40
Pierre-Yves Chibon 65dd40
* fill_logs_from_db - Based on the data present in the database, this script
Pierre-Yves Chibon 65dd40
  fills the ``pagure_logs`` table (this will add: new ticket, new comment, new
Pierre-Yves Chibon 65dd40
  PR, closing a PR or a ticket and so on).
Pierre-Yves Chibon 65dd40
* fill_logs_from_gits - By going through all the git repo hosted in your pagure
Pierre-Yves Chibon 65dd40
  instance, it will log who did what when.
Pierre-Yves Chibon 65dd40
Pierre-Yves Chibon 65dd40
Pierre-Yves Chibon f8b181
From 2.7 to 2.8
Pierre-Yves Chibon f8b181
---------------
Pierre-Yves Chibon f8b181
Pierre-Yves Chibon f8b181
2.8 brings a little change to the database scheme.
Pierre-Yves Chibon f8b181
Pierre-Yves Chibon f8b181
Therefore when upgrading to from 2.7 to 2.8, you will have to:
Pierre-Yves Chibon f8b181
Pierre-Yves Chibon f8b181
* Update the database schame using alembic: ``alembic upgrade head``
Pierre-Yves Chibon f8b181
Pierre-Yves Chibon f8b181
Pierre-Yves Chibon 87f714
From 2.6 to 2.7
Pierre-Yves Chibon 87f714
---------------
Pierre-Yves Chibon 87f714
Pierre-Yves Chibon 87f714
2.7 adds new tables as well as changes some of the existing ones.
Pierre-Yves Chibon 87f714
Pierre-Yves Chibon 87f714
Therefore when upgrading to 2.7, you will have to:
Pierre-Yves Chibon 87f714
Pierre-Yves Chibon 87f714
* Create the new DB tables and the new status field using the ``createdb.py``
Pierre-Yves Chibon 87f714
  script.
Pierre-Yves Chibon 87f714
Pierre-Yves Chibon 87f714
* Update the database schame using alembic, one of the upgrade will require
Pierre-Yves Chibon 87f714
  access to pagure's configuration file, which should thus be passed onto the
Pierre-Yves Chibon 87f714
  command via an environment variable:
Pierre-Yves Chibon 87f714
  ``PAGURE_CONFIG=/path/to/pagure.cf alembic upgrade head``
Pierre-Yves Chibon 87f714
Pierre-Yves Chibon 87f714
Pierre-Yves Chibon 87f714
This release also brings a new configuration key:
Pierre-Yves Chibon 87f714
Pierre-Yves Chibon 87f714
* ``INSTANCE_NAME`` used in the welcome screen shown upon first login (only with
Pierre-Yves Chibon 87f714
  FAS and OpenID auth) to describe the instance
Pierre-Yves Chibon 87f714
Pierre-Yves Chibon 87f714
Pierre-Yves Chibon 87f714
The API has also been upgraded to a version ``0.8`` due to the changes (backward
Pierre-Yves Chibon 87f714
compatible) made to support the introduction of `close_status` to issues.
Pierre-Yves Chibon 87f714
Pierre-Yves Chibon 87f714
Pierre-Yves Chibon 523fbd
From 2.5 to 2.6
Pierre-Yves Chibon 523fbd
---------------
Pierre-Yves Chibon 523fbd
Pierre-Yves Chibon 523fbd
2.6 brings quite a few changes and some of them impacting the database scheme.
Pierre-Yves Chibon 523fbd
Pierre-Yves Chibon 523fbd
Therefore when upgrading from 2.4 to 2.6, you will have to:
Pierre-Yves Chibon 523fbd
Pierre-Yves Chibon 523fbd
* Update the database schame using alembic: ``alembic upgrade head``
Pierre-Yves Chibon 523fbd
Pierre-Yves Chibon 523fbd
Pierre-Yves Chibon ea386a
From 2.4 to 2.5
Pierre-Yves Chibon ea386a
---------------
Pierre-Yves Chibon ea386a
Pierre-Yves Chibon ea386a
2.5 brings quite a few changes and some of them impacting the database scheme.
Pierre-Yves Chibon ea386a
Pierre-Yves Chibon ea386a
Therefore when upgrading from 2.4 to 2.5, you will have to:
Pierre-Yves Chibon ea386a
Pierre-Yves Chibon ea386a
* Update the database schame using alembic: ``alembic upgrade head``
Pierre-Yves Chibon ea386a
Pierre-Yves Chibon ea386a
Pierre-Yves Chibon 4cd012
From 2.3 to 2.4
Pierre-Yves Chibon 4cd012
---------------
Pierre-Yves Chibon 4cd012
Pierre-Yves Chibon 4cd012
2.4 brings quite a few changes and some of them impacting the database scheme.
Pierre-Yves Chibon 4cd012
Pierre-Yves Chibon 4cd012
Therefore when upgrading from 2.3.x to 2.4, you will have to:
Pierre-Yves Chibon 4cd012
Pierre-Yves Chibon 4cd012
* Update the database schame using alembic: ``alembic upgrade head``
Pierre-Yves Chibon 4cd012
Pierre-Yves Chibon 4cd012
Pierre-Yves Chibon 4cd012
This update also brings some new configuration keys:
Pierre-Yves Chibon 4cd012
Pierre-Yves Chibon 4cd012
* ``VIRUS_SCAN_ATTACHMENTS`` allows turning on or off checking attachments for
Pierre-Yves Chibon 4cd012
  virus using clamav. This requires pyclamd but is entirely optional (and off by
Pierre-Yves Chibon 4cd012
  default)
Pierre-Yves Chibon 4cd012
* ``PAGURE_CI_SERVICES`` allows specifying with which CI (Continuous
Pierre-Yves Chibon 4cd012
  Integration) services this pagure instance can integrate with. Currently, only
Pierre-Yves Chibon 4cd012
  `Jenkins` is supported, but this configuration key defaults to ``None``.
Pierre-Yves Chibon 4cd012
Pierre-Yves Chibon 4cd012
Pierre-Yves Chibon 4912c9
From 2.2 to 2.3
Pierre-Yves Chibon 4912c9
---------------
Pierre-Yves Chibon 4912c9
Pierre-Yves Chibon 4912c9
2.3 brings a few changes impacting the database scheme, including a new
Pierre-Yves Chibon 4912c9
`duplicate` status for tickets, a feature allowing one to `watch` or
Pierre-Yves Chibon 4912c9
`unwatch` a project and notifications on tickets as exist on pull-requests.
Pierre-Yves Chibon 4912c9
Pierre-Yves Chibon 4912c9
Therefore, when upgrading from 2.2.x to 2.3, you will have to :
Pierre-Yves Chibon 4912c9
Pierre-Yves Chibon 4912c9
* Create the new DB tables and the new status field using the ``createdb.py`` script.
Pierre-Yves Chibon 4912c9
Pierre-Yves Chibon 4912c9
* Update the database schame using alembic: ``alembic upgrade head``
Pierre-Yves Chibon 4912c9
Pierre-Yves Chibon 4912c9
This update also brings a new configuration key:
Pierre-Yves Chibon 4912c9
Pierre-Yves Chibon 4912c9
* ``PAGURE_ADMIN_USERS`` allows to mark some users as instance-wide admins, giving
Pierre-Yves Chibon 4912c9
  them full access to every projects, private or not. This feature can then be
Pierre-Yves Chibon 4912c9
  used as a way to clean spams.
Pierre-Yves Chibon 4912c9
* ``SMTP_PORT`` allows to specify the port to use when contacting the SMTP
Pierre-Yves Chibon 4912c9
  server
Pierre-Yves Chibon 4912c9
* ``SMTP_SSL`` allows to specify whether to use SSL when contacting the SMTP
Pierre-Yves Chibon 4912c9
  server
Pierre-Yves Chibon 4912c9
* ``SMTP_USERNAME`` and ``SMTP_PASSWORD`` if provided together allow to contact
Pierre-Yves Chibon 4912c9
  an SMTP requiring authentication.
Pierre-Yves Chibon 4912c9
Pierre-Yves Chibon 4912c9
In this update is also added the script ``api_key_expire_mail.py`` meant to be
Pierre-Yves Chibon 4912c9
run by a daily cron job and warning users when their API token is nearing its
Pierre-Yves Chibon 4912c9
expiration date.
Pierre-Yves Chibon 4912c9
Pierre-Yves Chibon 4912c9
Pierre-Yves Chibon 4912c9
Pierre-Yves Chibon 4912c9
2.2.2
Pierre-Yves Chibon 4912c9
-----
Pierre-Yves Chibon 4912c9
Pierre-Yves Chibon 4912c9
Release 2.2.2 contains an important security fix, blocking a source of XSS
Pierre-Yves Chibon 4912c9
attack.
Pierre-Yves Chibon 4912c9
Pierre-Yves Chibon 4912c9
Pierre-Yves Chibon 4912c9
Pierre-Yves Chibon 4cc330
From 2.1 to 2.2
Pierre-Yves Chibon 4cc330
---------------
Pierre-Yves Chibon 4cc330
Pierre-Yves Chibon 4cc330
2.2 brings a number of bug fixes and a few improvements.
Pierre-Yves Chibon 4cc330
Pierre-Yves Chibon 4cc330
One of the major changes impacts the databases where we must change some of the
Pierre-Yves Chibon 4cc330
table so that the foreign key cascade on delete (fixes deleting a project when a
Pierre-Yves Chibon 4cc330
few plugins were activated).
Pierre-Yves Chibon 4cc330
Pierre-Yves Chibon 4cc330
When upgrading for 2.1 to 2.2 all you will have to do is:
Pierre-Yves Chibon 4cc330
Pierre-Yves Chibon 4cc330
* Update the database scheme using alembic: ``alembic upgrade head``
Pierre-Yves Chibon 4cc330
Pierre-Yves Chibon 4cc330
.. note:: If you run another database system than PostgreSQL the alembic
Pierre-Yves Chibon 4cc330
  revision ``317a285e04a8_delete_hooks.py`` will require adjustment as the
Pierre-Yves Chibon 4cc330
  foreign key constraints are named and the names are driver dependant.
Pierre-Yves Chibon 4cc330
Pierre-Yves Chibon 4cc330
Pierre-Yves Chibon 4cc330
Pierre-Yves Chibon b945b9
From 2.0 to 2.1
Pierre-Yves Chibon b945b9
---------------
Pierre-Yves Chibon b945b9
Pierre-Yves Chibon b945b9
2.1 brings its usual flow of improvements and bug fixes.
Pierre-Yves Chibon b945b9
Pierre-Yves Chibon b945b9
When upgrading from 2.0.x to 2.1 all you will have to:
Pierre-Yves Chibon b945b9
Pierre-Yves Chibon b945b9
* Update the database schame using alembic: ``alembic upgrade head``
Pierre-Yves Chibon b945b9
Pierre-Yves Chibon b945b9
Pierre-Yves Chibon b945b9
Pierre-Yves Chibon 24cf2b
From 1.x to 2.0
Pierre-Yves Chibon 24cf2b
---------------
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 24cf2b
As the version change indicates, 2.0 brings quite a number of changes,
Pierre-Yves Chibon 24cf2b
including some that are not backward compatible.
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 24cf2b
When upgrading to 2.0 you will have to:
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 24cf2b
* Update the database schema using alembic: ``alembic upgrade head``
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon b01b78
* Create the new DB tables so that the new plugins work using the
Pierre-Yves Chibon b01b78
  ``createdb.py`` script
Pierre-Yves Chibon b01b78
Pierre-Yves Chibon 24cf2b
* Move the forks git repo
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 24cf2b
Forked git repos are now located under the same folder as the regular git
Pierre-Yves Chibon 24cf2b
repos, just under a ``forks/`` subfolder.
Pierre-Yves Chibon 24cf2b
So the structure changes from: ::
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 24cf2b
    repos/
Pierre-Yves Chibon 24cf2b
    ├── foo.git
Pierre-Yves Chibon 24cf2b
    └── bar.git
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 24cf2b
    forks/
Pierre-Yves Chibon a591b5
    ├── patrick/
Pierre-Yves Chibon a591b5
    │   ├── test.git
Pierre-Yves Chibon a591b5
    │   └── ipsilon.git
Pierre-Yves Chibon a591b5
    └── pingou/
Pierre-Yves Chibon af2450
        ├── foo.git
Pierre-Yves Chibon af2450
        └── bar.git
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 24cf2b
to: ::
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 24cf2b
    repos/
Pierre-Yves Chibon 24cf2b
    ├── foo.git
Pierre-Yves Chibon af2450
    ├── bar.git
Pierre-Yves Chibon a591b5
    └── forks/
Pierre-Yves Chibon a591b5
        ├── patrick/
Pierre-Yves Chibon a591b5
        │   ├── test.git
Pierre-Yves Chibon a591b5
        │   └── ipsilon.git
Pierre-Yves Chibon a591b5
        └── pingou/
Pierre-Yves Chibon af2450
            ├── foo.git
Pierre-Yves Chibon af2450
            └── bar.git
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon af2450
So the entire ``forks`` folder is moved under the ``repos`` folder where
Pierre-Yves Chibon af2450
the other repositories are, containing the sources of the projects.
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 6e788b
Git repos for ``tickets``, ``requests`` and ``docs`` will be trickier to
Pierre-Yves Chibon 6e788b
move as the structure changes from: ::
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 24cf2b
    tickets/
Pierre-Yves Chibon 24cf2b
    ├── foo.git
Pierre-Yves Chibon af2450
    ├── bar.git
Pierre-Yves Chibon a591b5
    ├── patrick/
Pierre-Yves Chibon a591b5
    │   ├── test.git
Pierre-Yves Chibon a591b5
    │   └── ipsilon.git
Pierre-Yves Chibon a591b5
    └── pingou/
Pierre-Yves Chibon af2450
        ├── foo.git
Pierre-Yves Chibon af2450
        └── bar.git
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 24cf2b
to: ::
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 24cf2b
    tickets/
Pierre-Yves Chibon 24cf2b
    ├── foo.git
Pierre-Yves Chibon af2450
    ├── bar.git
Pierre-Yves Chibon a591b5
    └── forks/
Pierre-Yves Chibon a591b5
        ├── patrick/
Pierre-Yves Chibon a591b5
        │   ├── test.git
Pierre-Yves Chibon a591b5
        │   └── ipsilon.git
Pierre-Yves Chibon a591b5
        └── pingou/
Pierre-Yves Chibon af2450
            ├── foo.git
Pierre-Yves Chibon af2450
            └── bar.git
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 6e788b
Same for the ``requests`` and the ``docs`` git repos.
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 6e788b
As you can see in the ``tickets``, ``requests`` and ``docs`` folders there
Pierre-Yves Chibon 6e788b
are two types of folders, git repos which are folder with a name ending
Pierre-Yves Chibon 6e788b
with ``.git``, and folder corresponding to usernames. These last ones are
Pierre-Yves Chibon 6e788b
the ones to be moved into a subfolder ``forks/``.
Pierre-Yves Chibon 6e788b
Pierre-Yves Chibon 6e788b
This can be done using something like: ::
Pierre-Yves Chibon 6e788b
Pierre-Yves Chibon 6e788b
    mkdir forks
Pierre-Yves Chibon 6e788b
    for i in `ls -1 |grep -v '\.git'`; do mv $i forks/; done
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 24cf2b
* Re-generate the gitolite configuration.
Pierre-Yves Chibon 24cf2b
Pierre-Yves Chibon 24cf2b
This can be done via the ``Re-generate gitolite ACLs file`` button in the
Pierre-Yves Chibon 24cf2b
admin page.
Pierre-Yves Chibon 226c9a
Pierre-Yves Chibon 226c9a
* Keep URLs backward compatible
Pierre-Yves Chibon 226c9a
Pierre-Yves Chibon 6e59c1
The support of pseudo-namespace in pagure 2.0 has required some changes
Pierre-Yves Chibon 226c9a
to the URL schema:
Pierre-Yves Chibon 226c9a
https://pagure.io/pagure/053d8cc95fcd50c23a8b0a7f70e55f8d1cc7aebb
Pierre-Yves Chibon 226c9a
became:
Pierre-Yves Chibon 226c9a
https://pagure.io/pagure/c/053d8cc95fcd50c23a8b0a7f70e55f8d1cc7aebb
Pierre-Yves Chibon 226c9a
(Note the added /c/ in it)
Pierre-Yves Chibon 226c9a
Pierre-Yves Chibon 226c9a
We introduced a backward compatibility fix for this.
Pierre-Yves Chibon 226c9a
Pierre-Yves Chibon 226c9a
This fix is however *disabled* by default so if you wish to keep the URLs
Pierre-Yves Chibon 226c9a
valid, you will need to adjust you configuration file to include: ::
Pierre-Yves Chibon 226c9a
Pierre-Yves Chibon 226c9a
    OLD_VIEW_COMMIT_ENABLED = True