1(doc_download)= 2 3# Download 4 5## Recommended: Obtain Release Version With Git 6 7Use `release` branch from PETSc git repository - it provides the latest release with additional crucial bug fixes. 8 9```console 10$ git clone -b release https://gitlab.com/petsc/petsc.git petsc 11$ git pull # obtain new release fixes (since a prior clone or pull) 12``` 13 14To anchor to a release version (without intermediate fixes), use: 15 16```console 17$ git checkout vMAJOR.MINOR.PATCH 18``` 19 20We recommend users join the official PETSc {ref}`mailing lists <doc_mail>` to submit 21any questions they may have directly to the development team, to be notified of new 22releases, or to simply keep up to date with the current state of the 23library. 24 25## Alternative: Obtain Release Version with Tarball 26 27Tarball which contains only the source. Documentation available [online](https://petsc.org/release). 28 29- [petsc-3.24.4.tar.gz](https://web.cels.anl.gov/projects/petsc/download/release-snapshots/petsc-3.24.4.tar.gz) 30 31Tarball which includes all documentation, recommended for offline use. 32 33- [petsc-with-docs-3.24.4.tar.gz](https://web.cels.anl.gov/projects/petsc/download/release-snapshots/petsc-with-docs-3.24.4.tar.gz) 34 35Tarball to enable a separate installation of petsc4py. 36 37- [petsc4py-3.24.4.tar.gz](https://web.cels.anl.gov/projects/petsc/download/release-snapshots/petsc4py-3.24.4.tar.gz) 38 39To extract the sources use: 40 41```console 42$ tar xf petsc-<version number>.tar.gz 43``` 44 45Current and older release tarballs are available at: 46 47- [Primary server](https://web.cels.anl.gov/projects/petsc/download/release-snapshots/) 48 49:::{Note} 50Older release tarballs of PETSc should only be used for 51applications that have not been updated to the latest release. We urge you, whenever 52possible, to upgrade to the latest version of PETSc. 53::: 54 55## Advanced: Obtain PETSc Development Version With Git 56 57Improvements and new features get added to `main` branch of PETSc Git repository. To obtain development sources, use: 58 59```console 60$ git clone https://gitlab.com/petsc/petsc.git petsc 61``` 62 63or if you already have a local clone of PETSc Git repository 64 65```console 66$ git checkout main 67$ git pull 68``` 69 70More details on contributing to PETSc development are at {any}`ch_contributing`. The development version of 71the documentation, which is largely the same as the release documentation is [available](https://petsc.org/main). 72 73(doc_releaseschedule)= 74 75## Release Schedule 76 77We provide new releases every 6 months, and patch updates to the current release every month. 78 79Releases (for example: 3.20.0, 3.21.0, etc. with corresponding Git tags v3.20.0, v3.21.0, etc): 80 81- March (end of the month) 82- September (end of the month) 83 84Patch updates (for example: 3.21.1, 2.21.2, etc. with corresponding Git tags v3.21.1, v3.21.2, etc) 85contain the latest release plus crucial bug fixes since that release: 86 87- Last week of every month (or first week on next month - if delayed) 88 89The monthly updates do not contain new features or any development work since the release, they merely contain crucial 90bug fixes. 91 92The ordering of PETSc branches and tags, as of May 2024 is given by (each level also contains the commits below it): 93 94- May (features added since v3.21.0) main branch 95- May (bug fixes since v3.21.1) release branch 96- April end (bug fixes since v3.21.0) v3.21.1 tag and tarball 97- March end (features added after v3.20.0) v3.21.0 tag and tarball 98- March end (bug fixes since v3.20.5) v3.20.6 tag and tarball 99- etc 100- October end (bug fixes since v3.20.0) v3.20.1 tag and tarball 101- September end (features added after v3.19.0) v3.20.0 tag and tarball 102 103After a new release of PETSc, the old version no longer gets patch updates. I.e., when 3.22.0 is released, bug fixes 104will go to 3.22.x - and petsc-3.21, petsc-3.20, etc., will not get any additional patch updates. 105 106PETSc does not follow **Semantic Versioning**, {cite}`semver-webpage`, rather it follows: 107 108- MAJOR version, a major reorganization. Unlikely to change in foreseeable future. 109- MINOR version, with new functionality and likely small API changes; most changes are backward compatible with deprecation. On a 6 month cycle. 110- PATCH version, with bug fixes - and minor functionality updates preserving the current API. On a monthly cycle. 111 112PETSc provides tools to allow you to stipulate what versions of PETSc it works with at configure time, compile time, or runtime of your package, see 113{any}`ch_versionchecking`. 114 115```{rubric} References 116``` 117 118```{bibliography} /petsc.bib 119:filter: docname in docnames 120``` 121