UPGRADING.rst 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906
  1. Upgrading Pagure
  2. ================
  3. From 5.13 to 6.0
  4. -----------------
  5. The 6.0 release contains database schema updates, so:
  6. * Update the data schema using alembic: ``alembic upgrade head``
  7. (As usual, do your backups before).
  8. Removed features (in 6.0):
  9. * repoSpanner, which was never completed and eventually abandoned.
  10. * gitolite, ``pagure_authorized_keys`` is now the default auth backend.
  11. Configuration keys removed (in 6.0);
  12. * REPOSPANNER_PSEUDO_FOLDER
  13. * REPOSPANNER_NEW_REPO
  14. * REPOSPANNER_NEW_REPO_ADMIN_OVERRIDE
  15. * REPOSPANNER_NEW_FORK
  16. * REPOSPANNER_ADMIN_MIGRATION
  17. * REPOSPANNER_REGIONS
  18. * GITOLITE_CONFIG
  19. * GITOLITE_HOME
  20. * GITOLITE_VERSION
  21. * GITOLITE_KEYDIR
  22. * GITOLITE_BACKEND
  23. * GITOLITE_HAS_COMPILE_1
  24. * GL_RC
  25. * GL_BINDIR
  26. * HTTP_REPO_ACCESS_GITOLITE
  27. * GITOLITE_CELERY_QUEUE
  28. * GL_REPO_BASE
  29. * GITOLITE_PRE_CONFIG
  30. * GITOLITE_POST_CONFIG
  31. From 5.12 to 5.13
  32. -----------------
  33. The 5.13 release does not contain any database schema changes.
  34. From 5.12 to 5.12.1
  35. -------------------
  36. The 5.12.1 release contains a database schema updates, so:
  37. * Update the data schema using alembic: ``alembic upgrade head``
  38. (As usual, do your backups before).
  39. From 5.11 to 5.12
  40. -----------------
  41. The 5.12 release does not contain any database schema changes.
  42. New configuration key added (in 5.12):
  43. * NOGITHOOKS (must not be touched)
  44. * ALLOW_USER_REGISTRATION
  45. * GIT_DEFAULT_BRANCH
  46. From 5.10 to 5.11
  47. -----------------
  48. The 5.11 release contains a database schema updates, so:
  49. * Update the data schema using alembic: ``alembic upgrade head``
  50. (As usual, do your backups before).
  51. New configuration key added (in 5.11.2):
  52. * LOGGING_GIT_HOOKS
  53. .. warning:: When upgrading MySQL database you can encounter issue with
  54. incompatible columns. In this case try to check the collation of the
  55. mentioned column by ``show full columns from <table>;`` in ``mysql``.
  56. If the collation is something else then `utf8` you need to convert
  57. your database to `utf8` first. See
  58. `this guide <https://stackoverflow.com/questions/1294117/how-to-change-collation-of-database-table-column>`_
  59. for how to do it or if you have SQL script for db setup,
  60. you can change it directly in the script.
  61. From 5.9 to 5.10
  62. ----------------
  63. The 5.10 release does not contain any database schema changes.
  64. The 5.10 release does include a new API ACL, so you may still want to re-run the
  65. createdb script which populates the database with the ACL set in the
  66. configuration file.
  67. New environment variable and configuration key added:
  68. * PAGURE_PLUGIN_CONFIG
  69. Deprecated environment variable:
  70. * PAGURE_PLUGIN
  71. From 5.8 to 5.9
  72. ---------------
  73. The 5.9 release does not contain any database schema changes.
  74. New configuration key added:
  75. * SSH_ACCESS_GROUPS
  76. * ALLOW_API_UPDATE_GIT_TAGS
  77. From 5.7 to 5.8
  78. ---------------
  79. The 5.8 release does not contain any database schema changes nor changes in the
  80. configuration keys.
  81. From 5.6 to 5.7
  82. ---------------
  83. The 5.7 release does not contain any database schema changes nor changes in the
  84. configuration keys.
  85. From 5.5 to 5.6
  86. ---------------
  87. The 5.6 release contains a database schema updates, so:
  88. * Update the data schema using alembic: ``alembic upgrade head``
  89. (As usual, do your backups before).
  90. New configuration key added:
  91. * CSP_HEADERS
  92. From 5.4 to 5.5
  93. ---------------
  94. The 5.5 release contains a database schema updates, so:
  95. * Update the data schema using alembic: ``alembic upgrade head``
  96. New configuration key added:
  97. * GIT_HOOK_DB_RO
  98. From 5.3.x to 5.4
  99. -----------------
  100. The 5.4 release does not contain any database schema changes, nor any new
  101. configuration key.
  102. From 5.2 to 5.3
  103. ---------------
  104. The 5.3 release contains a database schema updates, so:
  105. * Update the data schema using alembic: ``alembic upgrade head``
  106. (As usual, do your backups before).
  107. While working on pagure 5.3, we found that the version of python werkzeug
  108. available in CentOS 7 is too old and makes some of pagure's tests fail. We
  109. recomment it to be upgrade to at least 0.9.6.
  110. New configuration keys have been added:
  111. * ENABLE_TICKETS_NAMESPACE
  112. * FEDORA_MESSAGING_NOTIFICATIONS
  113. * SYNTAX_ALIAS_OVERRIDES
  114. * ALWAYS_STOMP_ON_COMMITS
  115. * ALWAYS_MQTT_ON_COMMITS
  116. * MQTT_TOPIC_PREFIX
  117. From 5.1.x to 5.2
  118. -----------------
  119. The 5.2 release contains a database schema updates, so:
  120. * Update the data schema using alembic: ``alembic upgrade head``
  121. (As usual, do your backups before).
  122. If you run into issues with the ``hook_mirror``, see the upgrade notes for
  123. the release 5.1.4 below.
  124. Note that the minimal version of pygit2 has been bumped to: 0.26.0
  125. New configuration keys have been added:
  126. * MQTT_NOTIFICATIONS
  127. * MQTT_HOST
  128. * MQTT_PORT
  129. * MQTT_USERNAME
  130. * MQTT_PASSWORD
  131. * MQTT_CA_CERTS
  132. * MQTT_CERTFILE
  133. * MQTT_KEYFILE
  134. * MQTT_CERT_REQS
  135. * MQTT_TLS_VERSION
  136. * MQTT_CIPHERS
  137. * DISABLE_MIRROR_IN
  138. * SSH_ADMIN_TOKEN
  139. * GIT_GARBAGE_COLLECT
  140. * DISABLE_REMOTE_PR
  141. * ADMIN_EMAIL
  142. * LOG_ALL_COMMITS
  143. * ARCHIVE_FOLDER
  144. One configuration key changes its default structure:
  145. * TRIGGER_CI
  146. Changes in dependencies:
  147. * Mimimal version of pygit2 version bumped to: 0.26.0
  148. * Minimal version of openssh set to: 7.4
  149. From 5.1 to 5.1.4
  150. -----------------
  151. In the development of 5.1.4 it was found out that the alembic migration
  152. ``ba538b2648b7`` that creates the ``hook_mirror`` table was incomplete.
  153. If you created that table via alembic, you will likely want to re-run it. Beware
  154. that applying the following commands will destroy any data you have in this
  155. table.
  156. * Mark the database to this migration::
  157. alembic stamp ba538b2648b7
  158. * Remove the ``hook_mirror`` table so it can be re-generated::
  159. alembic downgrade -1
  160. * Re-run that single migration::
  161. alembic upgrade +1
  162. * Marking the database to the last current migration (as of 5.1.4)::
  163. alembic stamp f16ab75e4d32
  164. Again, any project that tried to setup the mirroring feature in pagure will need
  165. to be reconfigured.
  166. Another option (that will prevent loosing any data in this table) is to
  167. adjust the table manually using these SQL queries:
  168. ::
  169. ALTER TABLE hook_mirror ADD COLUMN 'public_key' TEXT;
  170. ALTER TABLE hook_mirror ADD COLUMN 'target' TEXT;
  171. ALTER TABLE hook_mirror ADD COLUMN 'last_log' TEXT;
  172. From 5.x to 5.1
  173. ---------------
  174. The 5.1 release contains a database schema updates, so:
  175. * Update the data schema using alembic: ``alembic upgrade head``
  176. (As usual, do your backups before).
  177. New configuration keys added:
  178. * ALLOW_ADMIN_IGNORE_EXISTING_REPOS
  179. * ALLOW_HTTP_PULL_PUSH
  180. * ALLOW_HTTP_PUSH
  181. * HTTP_REPO_ACCESS_GITOLITE
  182. From 5.0 to 5.0.1
  183. -----------------
  184. The 5.0 release was missing a database schema migration to add the
  185. ``hook_mirror`` table. This alembic migration has been added, so if you have
  186. note update to 5.0, you will want to update your database schema using:
  187. ``alembic upgrade head``. If you went around this issue by running the
  188. ``pagure_createdb.py`` script, you can mark you database schema up to date using
  189. ``alembic stamp ba538b2648b7``.
  190. From 4.x to 5.0
  191. ---------------
  192. The release 5.0 brings some changes to the database schema.
  193. * Update the data schema using alembic: ``alembic upgrade head``
  194. New configuration keys added:
  195. * PR_TARGET_MATCHING_BRANCH
  196. * EMAIL_ON_WATCHCOMMITS
  197. * THEME
  198. * GIT_AUTH_BACKEND (replacing GITOLITE_BACKEND, backward compatibility kept for
  199. now)
  200. * REPOSPANNER_PSEUDO_FOLDER
  201. * REPOSPANNER_NEW_REPO
  202. * REPOSPANNER_NEW_REPO_ADMIN_OVERRIDE
  203. * REPOSPANNER_NEW_FORK
  204. * REPOSPANNER_ADMIN_MIGRATION
  205. * REPOSPANNER_REGIONS
  206. * SSH_KEYS_USERNAME_LOOKUP
  207. * SSH_KEYS_USERNAME_EXPECT
  208. * SSH_KEYS_OPTIONS
  209. Configuration deprecated:
  210. * BOOTSTRAP_URLS_CSS
  211. * BOOTSTRAP_URLS_JS
  212. * FILE_SIZE_HIGHLIGHT
  213. * HTML_TITLE
  214. * GITOLITE_BACKEND
  215. Note: Some configuration keys changed their default value:
  216. * LOGGING
  217. * PRIVATE_PROJECTS
  218. * EMAIL_ERROR
  219. * FROM_EMAIL
  220. * DOMAIN_EMAIL_NOTIFICATIONS
  221. * APP_URL
  222. * DOC_APP_URL
  223. * GIT_URL_SSH
  224. * GIT_URL_GIT
  225. * FEDMSG_NOTIFICATIONS
  226. * PAGURE_AUTH
  227. New dependencies:
  228. * trololio (replaces trollius that is no longer a direct dependency)
  229. From 3.x to 4.0
  230. ---------------
  231. The release 4.0 brings some changes to the database schema.
  232. * Update the data schema using alembic: ``alembic upgrade head``
  233. New configuration keys added:
  234. * EMAIL_ON_WATCHCOMMITS
  235. * ALWAYS_FEDMSG_ON_COMMITS
  236. * SESSION_TYPE
  237. * PROJECT_TEMPLATE_PATH
  238. * FORK_TEMPLATE_PATH
  239. From 3.13 to 3.13.1
  240. -------------------
  241. The release 3.13.1 brings one change to the database schema to remove a database
  242. constraint (pull_requests_check in the pull_requests table) that is not only no
  243. longer needed but even blocking now.
  244. * Update the data schema using alembic: ``alembic upgrade head``
  245. From 3.12 to 3.13
  246. -----------------
  247. The release 3.13 brings some features and bug fixes but does not have any
  248. changes made to the database schema or new configuration keys. Update should be
  249. straight forward.
  250. From 3.11 to 3.12
  251. -----------------
  252. The release 3.12 brings some changes to the database schema.
  253. * Update the data schema using alembic: ``alembic upgrade head``
  254. Note that this release bring support for `OpenID
  255. Connect<https://en.wikipedia.org/wiki/OpenID_Connect>`_ authentication, meaning
  256. pagure can now be deployed with authentication coming from, for example, google.
  257. This brings a number of new configuration keys:
  258. * OIDC_CLIENT_SECRETS
  259. * OIDC_ID_TOKEN_COOKIE_SECURE
  260. * OIDC_SCOPES
  261. * OIDC_PAGURE_EMAIL
  262. * OIDC_PAGURE_FULLNAME
  263. * OIDC_PAGURE_USERNAME
  264. * OIDC_PAGURE_SSH_KEY
  265. * OIDC_PAGURE_GROUPS
  266. * OIDC_PAGURE_USERNAME_FALLBACK
  267. From 3.10 to 3.11
  268. -----------------
  269. The release 3.11 brings some changes to the database schema.
  270. * Update the data schema using alembic: ``alembic upgrade head``
  271. In addition, if you are deploying pagure with fedmsg support you had to set
  272. fedmsg to the
  273. `active <https://fedmsg.readthedocs.io/en/stable/publishing/#publishing-through-a-relay>`_
  274. mode for the workers to be able to send fedmsg messages. This is now the
  275. default and forced configuration.
  276. New API acls:
  277. * commit_flag
  278. * pull_request_subscribe
  279. From 3.9 to 3.10
  280. ----------------
  281. The release 3.10 brings some changes to the database schema.
  282. * Update the data schema using alembic: ``alembic upgrade head``
  283. From 3.8 to 3.9
  284. ---------------
  285. This release brings a number of bug fixes and features but does not require
  286. any special precaution when upgrading.
  287. From 3.7 to 3.8
  288. ---------------
  289. The release 3.8 brings some changes to the database schema.
  290. * Update the data schema using alembic: ``alembic upgrade head``
  291. New configuration keys added:
  292. * PROJECT_NAME_REGEX
  293. From 3.6 to 3.7
  294. ---------------
  295. The release 3.7 brings some changes to the database schema.
  296. * Update the data schema using alembic: ``alembic upgrade head``
  297. New configuration keys added:
  298. * ENABLE_DEL_FORKS
  299. * ENABLE_UI_NEW_PROJECTS
  300. From 3.5 to 3.6
  301. ---------------
  302. New configuration keys added:
  303. * GITOLITE_CELERY_QUEUE
  304. From 3.4 to 3.5
  305. ---------------
  306. New configuration keys added:
  307. * USER_ACLS
  308. * CASE_SENSITIVE
  309. * HTML_TITLE
  310. From 3.3 to 3.4
  311. ---------------
  312. New configuration keys added:
  313. * DEPLOY_KEY
  314. * LOCAL_SSH_KEY
  315. * ALLOW_DELETE_BRANCH
  316. From 3.2 to 3.3
  317. ---------------
  318. [SECURITY FIX]: The 3.3 release contains an important security fix.
  319. If you are using the private project feature of pagure, the gitolite
  320. configuration generated was still granting access to the private projects. This
  321. made the private projects visible and accessible.
  322. After updating to 3.3, ensure your gitolite configuration gets re-generated
  323. (pagure-admin refresh-gitolite can help you with this).
  324. The 3.3 release brings some adjustments to the database schema.
  325. * Update the database schema using alembic: ``alembic upgrade head``
  326. From 3.1 to 3.2
  327. ---------------
  328. While not being a bug fix, this release has no database schema changes.
  329. However, this release breaks the plugin interface for auth introduced in 3.1 and
  330. changed in 3.1. If you are using pagure-dist-git, make sure to upgrade to at
  331. least 0.4. This interface will be considered stable in 3.4 and announced as
  332. such.
  333. From 3.0 to 3.1
  334. ---------------
  335. While not being a bug fix, this release has no database schema changes.
  336. However, this release breaks the plugin interface for auth introduced in 3.0. If
  337. you are using pagure-dist-git, make sure to upgrade to at least 0.3.
  338. From 2.15 to 3.0
  339. ----------------
  340. The 3.0 version was released with some major re-architecturing. The interaction
  341. with the backend git repo (being the main source repo or the tickets or requests
  342. repos) are now done by a worker that is triggered via a message queue.
  343. This communication is done using `celery <http://www.celeryproject.org/>`_ and
  344. via one of the message queue celery supports (pagure currently defaulting to
  345. `redis <https://redis.io/>`_.
  346. So to get pagure 3.0 running, you will need to get your own message queue (such
  347. as redis) up running and configured in pagure's configuration.
  348. This major version bump has also been an opportunity to rename all the services
  349. to use the same naming schema of pagure-<service>.
  350. The rename is as such:
  351. +------------------+-----------------+
  352. | In 2.x | From 3.0 |
  353. +==================+=================+
  354. | pagure-ci | pagure-ci |
  355. +------------------+-----------------+
  356. | ev-server | pagure-ev |
  357. +------------------+-----------------+
  358. | pagure-loadjson | pagure-loadjson |
  359. +------------------+-----------------+
  360. | pagure-logcom | pagure-logcom |
  361. +------------------+-----------------+
  362. | milters | pagure-milters |
  363. +------------------+-----------------+
  364. | webhook-server | pagure-webhook |
  365. +------------------+-----------------+
  366. | | pagure-worker |
  367. +------------------+-----------------+
  368. .. note:: This last service is the service mentioned above and it is part of
  369. pagure core, not optional unlike the other services in this table.
  370. This release also introduces some new configuration keys:
  371. - ``CELERY_CONFIG`` defaults to ``{}``
  372. - ``ATTACHMENTS_FOLDER``, to be configured
  373. - ``GITOLITE_BACKEND`` defaults to ``gitolite3``, deprecates ``GITOLITE_VERSION``
  374. - ``EXTERNAL_COMMITTER`` defaults to ``{}``
  375. - ``REQUIRED_GROUPS`` defaults to ``{}``
  376. This version also introduces a few database changes, so you will need to update
  377. the database schema using alembic: ``alembic upgrade head``.
  378. From 2.14 to 2.15
  379. -----------------
  380. The 2.15 release brings some adjustments to the database scheme.
  381. * Update the database schame using alembic: ``alembic upgrade head``
  382. From 2.13 to 2.14
  383. -----------------
  384. The 2.14 release brings some adjustments to the database scheme.
  385. * Update the database schame using alembic: ``alembic upgrade head``
  386. From 2.12 to 2.13
  387. -----------------
  388. The 2.13 release brings some adjustments to the database scheme.
  389. * Update the database schame using alembic: ``alembic upgrade head``
  390. From 2.11 to 2.12
  391. -----------------
  392. From this release on, we will have alembic migration script for new table
  393. creation, so there will no longer be a need to use ``createdb.py``
  394. The 2.12 release brings some adjustments to the database scheme.
  395. * Update the database schame using alembic: ``alembic upgrade head``
  396. From 2.10 to 2.11
  397. -----------------
  398. The 2.10 releases brings some adjustments to the database scheme.
  399. * Create the new DB tables and the new status field using the ``createdb.py``
  400. script.
  401. * Update the database schame using alembic: ``alembic upgrade head``
  402. From 2.9 to 2.10
  403. ----------------
  404. The 2.10 releases brings some little changes to the database scheme.
  405. Therefore when upgrading to 2.10, you will have to:
  406. * Update the database schame using alembic: ``alembic upgrade head``
  407. From 2.8 to 2.9
  408. ---------------
  409. The 2.9 releases brings some adjustments to the database scheme.
  410. * Create the new DB tables and the new status field using the ``createdb.py``
  411. script.
  412. * Update the database schame using alembic: ``alembic upgrade head``
  413. If you are interested in loading your local data into the ``pagure_logs`` table
  414. that this new release adds (data which is then displayed in the calendar heatmap
  415. on the user's page), you can find two utility scripts in
  416. https://pagure.io/pagure-utility that will help you to do that. They are:
  417. * fill_logs_from_db - Based on the data present in the database, this script
  418. fills the ``pagure_logs`` table (this will add: new ticket, new comment, new
  419. PR, closing a PR or a ticket and so on).
  420. * fill_logs_from_gits - By going through all the git repo hosted in your pagure
  421. instance, it will log who did what when.
  422. From 2.7 to 2.8
  423. ---------------
  424. 2.8 brings a little change to the database scheme.
  425. Therefore when upgrading to from 2.7 to 2.8, you will have to:
  426. * Update the database schame using alembic: ``alembic upgrade head``
  427. From 2.6 to 2.7
  428. ---------------
  429. 2.7 adds new tables as well as changes some of the existing ones.
  430. Therefore when upgrading to 2.7, you will have to:
  431. * Create the new DB tables and the new status field using the ``createdb.py``
  432. script.
  433. * Update the database schame using alembic, one of the upgrade will require
  434. access to pagure's configuration file, which should thus be passed onto the
  435. command via an environment variable:
  436. ``PAGURE_CONFIG=/path/to/pagure.cf alembic upgrade head``
  437. This release also brings a new configuration key:
  438. * ``INSTANCE_NAME`` used in the welcome screen shown upon first login (only with
  439. FAS and OpenID auth) to describe the instance
  440. The API has also been upgraded to a version ``0.8`` due to the changes (backward
  441. compatible) made to support the introduction of `close_status` to issues.
  442. From 2.5 to 2.6
  443. ---------------
  444. 2.6 brings quite a few changes and some of them impacting the database scheme.
  445. Therefore when upgrading from 2.4 to 2.6, you will have to:
  446. * Update the database schame using alembic: ``alembic upgrade head``
  447. From 2.4 to 2.5
  448. ---------------
  449. 2.5 brings quite a few changes and some of them impacting the database scheme.
  450. Therefore when upgrading from 2.4 to 2.5, you will have to:
  451. * Update the database schame using alembic: ``alembic upgrade head``
  452. From 2.3 to 2.4
  453. ---------------
  454. 2.4 brings quite a few changes and some of them impacting the database scheme.
  455. Therefore when upgrading from 2.3.x to 2.4, you will have to:
  456. * Update the database schame using alembic: ``alembic upgrade head``
  457. This update also brings some new configuration keys:
  458. * ``VIRUS_SCAN_ATTACHMENTS`` allows turning on or off checking attachments for
  459. virus using clamav. This requires pyclamd but is entirely optional (and off by
  460. default)
  461. * ``PAGURE_CI_SERVICES`` allows specifying with which CI (Continuous
  462. Integration) services this pagure instance can integrate with. Currently, only
  463. `Jenkins` is supported, but this configuration key defaults to ``None``.
  464. From 2.2 to 2.3
  465. ---------------
  466. 2.3 brings a few changes impacting the database scheme, including a new
  467. `duplicate` status for tickets, a feature allowing one to `watch` or
  468. `unwatch` a project and notifications on tickets as exist on pull-requests.
  469. Therefore, when upgrading from 2.2.x to 2.3, you will have to :
  470. * Create the new DB tables and the new status field using the ``createdb.py`` script.
  471. * Update the database schame using alembic: ``alembic upgrade head``
  472. This update also brings a new configuration key:
  473. * ``PAGURE_ADMIN_USERS`` allows to mark some users as instance-wide admins, giving
  474. them full access to every projects, private or not. This feature can then be
  475. used as a way to clean spams.
  476. * ``SMTP_PORT`` allows to specify the port to use when contacting the SMTP
  477. server
  478. * ``SMTP_SSL`` allows to specify whether to use SSL when contacting the SMTP
  479. server
  480. * ``SMTP_USERNAME`` and ``SMTP_PASSWORD`` if provided together allow to contact
  481. an SMTP requiring authentication.
  482. In this update is also added the script ``api_key_expire_mail.py`` meant to be
  483. run by a daily cron job and warning users when their API token is nearing its
  484. expiration date.
  485. 2.2.2
  486. -----
  487. Release 2.2.2 contains an important security fix, blocking a source of XSS
  488. attack.
  489. From 2.1 to 2.2
  490. ---------------
  491. 2.2 brings a number of bug fixes and a few improvements.
  492. One of the major changes impacts the databases where we must change some of the
  493. table so that the foreign key cascade on delete (fixes deleting a project when a
  494. few plugins were activated).
  495. When upgrading for 2.1 to 2.2 all you will have to do is:
  496. * Update the database scheme using alembic: ``alembic upgrade head``
  497. .. note:: If you run another database system than PostgreSQL the alembic
  498. revision ``317a285e04a8_delete_hooks.py`` will require adjustment as the
  499. foreign key constraints are named and the names are driver dependant.
  500. From 2.0 to 2.1
  501. ---------------
  502. 2.1 brings its usual flow of improvements and bug fixes.
  503. When upgrading from 2.0.x to 2.1 all you will have to:
  504. * Update the database schame using alembic: ``alembic upgrade head``
  505. From 1.x to 2.0
  506. ---------------
  507. As the version change indicates, 2.0 brings quite a number of changes,
  508. including some that are not backward compatible.
  509. When upgrading to 2.0 you will have to:
  510. * Update the database schema using alembic: ``alembic upgrade head``
  511. * Create the new DB tables so that the new plugins work using the
  512. ``createdb.py`` script
  513. * Move the forks git repo
  514. Forked git repos are now located under the same folder as the regular git
  515. repos, just under a ``forks/`` subfolder.
  516. So the structure changes from: ::
  517. repos/
  518. ├── foo.git
  519. └── bar.git
  520. forks/
  521. ├── patrick/
  522. │  ├── test.git
  523. │  └── ipsilon.git
  524. └── pingou/
  525. ├── foo.git
  526. └── bar.git
  527. to: ::
  528. repos/
  529. ├── foo.git
  530. ├── bar.git
  531. └── forks/
  532. ├── patrick/
  533. │  ├── test.git
  534. │  └── ipsilon.git
  535. └── pingou/
  536. ├── foo.git
  537. └── bar.git
  538. So the entire ``forks`` folder is moved under the ``repos`` folder where
  539. the other repositories are, containing the sources of the projects.
  540. Git repos for ``tickets``, ``requests`` and ``docs`` will be trickier to
  541. move as the structure changes from: ::
  542. tickets/
  543. ├── foo.git
  544. ├── bar.git
  545. ├── patrick/
  546. │  ├── test.git
  547. │  └── ipsilon.git
  548. └── pingou/
  549. ├── foo.git
  550. └── bar.git
  551. to: ::
  552. tickets/
  553. ├── foo.git
  554. ├── bar.git
  555. └── forks/
  556. ├── patrick/
  557. │  ├── test.git
  558. │  └── ipsilon.git
  559. └── pingou/
  560. ├── foo.git
  561. └── bar.git
  562. Same for the ``requests`` and the ``docs`` git repos.
  563. As you can see in the ``tickets``, ``requests`` and ``docs`` folders there
  564. are two types of folders, git repos which are folder with a name ending
  565. with ``.git``, and folder corresponding to usernames. These last ones are
  566. the ones to be moved into a subfolder ``forks/``.
  567. This can be done using something like: ::
  568. mkdir forks
  569. for i in `ls -1 |grep -v '\.git'`; do mv $i forks/; done
  570. * Re-generate the gitolite configuration.
  571. This can be done via the ``Re-generate gitolite ACLs file`` button in the
  572. admin page.
  573. * Keep URLs backward compatible
  574. The support of pseudo-namespace in pagure 2.0 has required some changes
  575. to the URL schema:
  576. https://pagure.io/pagure/053d8cc95fcd50c23a8b0a7f70e55f8d1cc7aebb
  577. became:
  578. https://pagure.io/pagure/c/053d8cc95fcd50c23a8b0a7f70e55f8d1cc7aebb
  579. (Note the added /c/ in it)
  580. We introduced a backward compatibility fix for this.
  581. This fix is however *disabled* by default so if you wish to keep the URLs
  582. valid, you will need to adjust you configuration file to include: ::
  583. OLD_VIEW_COMMIT_ENABLED = True