19b92b1d3SBarry Smith(doc_download)= 29b92b1d3SBarry Smith 39b92b1d3SBarry Smith# Download 49b92b1d3SBarry Smith 59b92b1d3SBarry Smith## Recommended: Obtain Release Version With Git 69b92b1d3SBarry Smith 79b92b1d3SBarry SmithUse `release` branch from PETSc git repository - it provides the latest release with additional crucial bug fixes. 89b92b1d3SBarry Smith 99b92b1d3SBarry Smith```console 109b92b1d3SBarry Smith$ git clone -b release https://gitlab.com/petsc/petsc.git petsc 119b92b1d3SBarry Smith$ git pull # obtain new release fixes (since a prior clone or pull) 129b92b1d3SBarry Smith``` 139b92b1d3SBarry Smith 149b92b1d3SBarry SmithTo anchor to a release version (without intermediate fixes), use: 159b92b1d3SBarry Smith 169b92b1d3SBarry Smith```console 179b92b1d3SBarry Smith$ git checkout vMAJOR.MINOR.PATCH 189b92b1d3SBarry Smith``` 199b92b1d3SBarry Smith 209b92b1d3SBarry SmithWe recommend users join the official PETSc {ref}`mailing lists <doc_mail>` to submit 219b92b1d3SBarry Smithany questions they may have directly to the development team, to be notified of new 229b92b1d3SBarry Smithreleases, or to simply keep up to date with the current state of the 239b92b1d3SBarry Smithlibrary. 249b92b1d3SBarry Smith 259b92b1d3SBarry Smith## Alternative: Obtain Release Version with Tarball 269b92b1d3SBarry Smith 279b92b1d3SBarry SmithTarball which contains only the source. Documentation available [online](https://petsc.org/release). 289b92b1d3SBarry Smith 29*0bd50eb5SSatish Balay- [petsc-3.24.4.tar.gz](https://web.cels.anl.gov/projects/petsc/download/release-snapshots/petsc-3.24.4.tar.gz) 309b92b1d3SBarry Smith 319b92b1d3SBarry SmithTarball which includes all documentation, recommended for offline use. 329b92b1d3SBarry Smith 33*0bd50eb5SSatish Balay- [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) 349b92b1d3SBarry Smith 359b92b1d3SBarry SmithTarball to enable a separate installation of petsc4py. 369b92b1d3SBarry Smith 37*0bd50eb5SSatish Balay- [petsc4py-3.24.4.tar.gz](https://web.cels.anl.gov/projects/petsc/download/release-snapshots/petsc4py-3.24.4.tar.gz) 389b92b1d3SBarry Smith 399b92b1d3SBarry SmithTo extract the sources use: 409b92b1d3SBarry Smith 419b92b1d3SBarry Smith```console 429b92b1d3SBarry Smith$ tar xf petsc-<version number>.tar.gz 439b92b1d3SBarry Smith``` 449b92b1d3SBarry Smith 459b92b1d3SBarry SmithCurrent and older release tarballs are available at: 469b92b1d3SBarry Smith 479b92b1d3SBarry Smith- [Primary server](https://web.cels.anl.gov/projects/petsc/download/release-snapshots/) 489b92b1d3SBarry Smith 499b92b1d3SBarry Smith:::{Note} 509b92b1d3SBarry SmithOlder release tarballs of PETSc should only be used for 519b92b1d3SBarry Smithapplications that have not been updated to the latest release. We urge you, whenever 529b92b1d3SBarry Smithpossible, to upgrade to the latest version of PETSc. 539b92b1d3SBarry Smith::: 549b92b1d3SBarry Smith 559b92b1d3SBarry Smith## Advanced: Obtain PETSc Development Version With Git 569b92b1d3SBarry Smith 57f0b74427SPierre JolivetImprovements and new features get added to `main` branch of PETSc Git repository. To obtain development sources, use: 589b92b1d3SBarry Smith 599b92b1d3SBarry Smith```console 609b92b1d3SBarry Smith$ git clone https://gitlab.com/petsc/petsc.git petsc 619b92b1d3SBarry Smith``` 629b92b1d3SBarry Smith 63f0b74427SPierre Jolivetor if you already have a local clone of PETSc Git repository 649b92b1d3SBarry Smith 659b92b1d3SBarry Smith```console 669b92b1d3SBarry Smith$ git checkout main 679b92b1d3SBarry Smith$ git pull 689b92b1d3SBarry Smith``` 699b92b1d3SBarry Smith 709b92b1d3SBarry SmithMore details on contributing to PETSc development are at {any}`ch_contributing`. The development version of 719b92b1d3SBarry Smiththe documentation, which is largely the same as the release documentation is [available](https://petsc.org/main). 729b92b1d3SBarry Smith 739b92b1d3SBarry Smith(doc_releaseschedule)= 749b92b1d3SBarry Smith 759b92b1d3SBarry Smith## Release Schedule 769b92b1d3SBarry Smith 779b92b1d3SBarry SmithWe provide new releases every 6 months, and patch updates to the current release every month. 789b92b1d3SBarry Smith 799b92b1d3SBarry SmithReleases (for example: 3.20.0, 3.21.0, etc. with corresponding Git tags v3.20.0, v3.21.0, etc): 809b92b1d3SBarry Smith 819b92b1d3SBarry Smith- March (end of the month) 829b92b1d3SBarry Smith- September (end of the month) 839b92b1d3SBarry Smith 849b92b1d3SBarry SmithPatch updates (for example: 3.21.1, 2.21.2, etc. with corresponding Git tags v3.21.1, v3.21.2, etc) 859b92b1d3SBarry Smithcontain the latest release plus crucial bug fixes since that release: 869b92b1d3SBarry Smith 879b92b1d3SBarry Smith- Last week of every month (or first week on next month - if delayed) 889b92b1d3SBarry Smith 899b92b1d3SBarry SmithThe monthly updates do not contain new features or any development work since the release, they merely contain crucial 909b92b1d3SBarry Smithbug fixes. 919b92b1d3SBarry Smith 929b92b1d3SBarry SmithThe ordering of PETSc branches and tags, as of May 2024 is given by (each level also contains the commits below it): 939b92b1d3SBarry Smith 949b92b1d3SBarry Smith- May (features added since v3.21.0) main branch 959b92b1d3SBarry Smith- May (bug fixes since v3.21.1) release branch 969b92b1d3SBarry Smith- April end (bug fixes since v3.21.0) v3.21.1 tag and tarball 979b92b1d3SBarry Smith- March end (features added after v3.20.0) v3.21.0 tag and tarball 989b92b1d3SBarry Smith- March end (bug fixes since v3.20.5) v3.20.6 tag and tarball 999b92b1d3SBarry Smith- etc 1009b92b1d3SBarry Smith- October end (bug fixes since v3.20.0) v3.20.1 tag and tarball 1019b92b1d3SBarry Smith- September end (features added after v3.19.0) v3.20.0 tag and tarball 1029b92b1d3SBarry Smith 1039b92b1d3SBarry SmithAfter a new release of PETSc, the old version no longer gets patch updates. I.e., when 3.22.0 is released, bug fixes 1049b92b1d3SBarry Smithwill go to 3.22.x - and petsc-3.21, petsc-3.20, etc., will not get any additional patch updates. 1059b92b1d3SBarry Smith 1069b92b1d3SBarry SmithPETSc does not follow **Semantic Versioning**, {cite}`semver-webpage`, rather it follows: 1079b92b1d3SBarry Smith 1089b92b1d3SBarry Smith- MAJOR version, a major reorganization. Unlikely to change in foreseeable future. 1099b92b1d3SBarry Smith- MINOR version, with new functionality and likely small API changes; most changes are backward compatible with deprecation. On a 6 month cycle. 1109b92b1d3SBarry Smith- PATCH version, with bug fixes - and minor functionality updates preserving the current API. On a monthly cycle. 1119b92b1d3SBarry Smith 1129b92b1d3SBarry SmithPETSc 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 1139b92b1d3SBarry Smith{any}`ch_versionchecking`. 1149b92b1d3SBarry Smith 1159b92b1d3SBarry Smith```{rubric} References 1169b92b1d3SBarry Smith``` 1179b92b1d3SBarry Smith 1189b92b1d3SBarry Smith```{bibliography} /petsc.bib 1199b92b1d3SBarry Smith:filter: docname in docnames 1209b92b1d3SBarry Smith``` 121