xref: /petsc/doc/install/download.md (revision 6c006fdf708e254dd4f47e201e35f5a938d9ab7b)
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