==========================================
Xmipp Release Procedures
==========================================
This document describes how to manage versions following `semantic version standar `_ , and releases for the different
components of the Xmipp ecosystem: xmipp3-installer, scipion-em-xmipp,
xmipp3, xmippCore and xmippViz.
.. figure:: ../../../_static/images/DiagramInstaller.png
:alt: Repositories dependencies diagram
:width: 400
:align: center
Repositories dependencies
==============================================
.. list-table::
:header-rows: 1
:widths: 15 100
* - Repository
- Steps to Create a New Version
* - xmipp3-installer
- - Trigger GitHub manual action
- Uploads automatically to `PyPI `_
- Scipion-em-xmipp installs it via requirements.txt ``xmipp3-installer==1.*``
* - scipion-em-xmipp
- - Update ``changelog.md``
- Update version in ``xmipp3/version.py`` (``__version__``)
- If Xmipp major version changes: update ``_binVersion`` and ``_binTagVersion``
- Trigger GitHub ``Release`` action β uploads to PyPI and creates tag
* - xmipp3
- - Edit ``xmipp/version-info.json``: ``version_number``, ``release_date``
- Edit ``version_name`` only if major changes
- Update dependency versions for ``xmippCore`` / ``xmippViz`` if major changes
- Update ``changelog.md``
- Trigger GitHub ``Release`` action β creates tag and release
* - xmippCore
- - Add new version and changes in ``changeLOG.md``
- Trigger GitHub ``Release`` action β creates new tag
* - xmippViz
- - Add new version and changes in ``changeLOG.md``
- Trigger GitHub ``Release`` action β creates new tag
xmipp3-installer ποΈ
-------------------
xmipp3-installer packages the Xmipp binaries and is published on PyPI. It is automatically installed by the Scipion plugin scipion-em-xmipp.
Release Generation
~~~~~~~~~~~~~~~~~~
Releases are produced via the GitHub manual action ``Generate release (Pypi, tag, & GitHub Release)``. Executing this action will upload a new `version to PyPI `_ and create the corresponding Git tag and GitHub Release.
Installation Through Scipion
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The scipion-em-xmipp plugin installs it using its ``requirements.txt``:
.. code-block:: text
xmipp3-installer==1.*
scipion-em-xmipp ποΈ
-------------------
This is the Scipion plugin that integrates Xmipp into Scipion.
Steps to Create a New Release
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. **Update the changelog**
Edit ``changelog.md`` with the new version and a list of changes.
2. **Update the version**
Modify the ``__version__`` variable in:
.. code-block:: text
scipion-em-xmipp/xmipp3/version.py
3. **Run the GitHub Release action**
Trigger the manual action ``Release``. This will upload the new version to `PyPI `_ and create a new Git tag and GitHub Release.
Major Xmipp Version Changes
~~~~~~~~~~~~~~~~~~~~~~~~~~~
If the **major version of Xmipp** changes, update these fields:
.. code-block:: text
scipion-em-xmipp/xmipp3/version.py
_binVersion
_binTagVersion
Use the `Protein cataloge for Xmipp releases name `_
xmipp3 ποΈ
-----------
Top-level Xmipp distribution, bundling submodules such as xmippCore and
xmippViz.
Version Updates
~~~~~~~~~~~~~~~
Edit the version information in:
.. code-block:: text
xmipp/version-info.json
The fields to modify are:
- ``version_number``
- ``version_name``: only when the **major version** changes. Use the `Protein cataloge for Xmipp releases name `_
- ``release_date``
If xmippCore or xmippViz increase their **major** version, update their
version references inside ``version-info.json``.
Release Procedure
~~~~~~~~~~~~~~~~~
1. Update ``changelog.md`` with the new version and changes.
2. Trigger the GitHub manual action ``Release`` to Create a new Git tag and Publish a GitHub Release
xmippCore ποΈ
------------
Core Xmipp libraries and algorithms.
Steps to Create a New Release
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Add a new section in ``changeLOG.md`` including Version number and Description of changes
2. Trigger the ``Release`` GitHub manual action to generate a new Git tag
xmippViz ποΈ
-----------
Visualization module for Xmipp and Scipion
Steps to Create a New Release
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Add the new version and changes to ``changeLOG.md`` including Version number and Description of changes
2. Execute the GitHub manual action ``Release`` to create the new tag
𧬠Protein Catalog for Xmipp releases naming π§¬
-------------------------------------------------------
A
~
Actin β Cell structure and movement
Apoferritin β Iron storage scaffold protein
ATP synthase β Produces ATP from ADP
B
~
Bacteriorhodopsin β Light-driven proton pump
Beta-tubulin β Microtubule structural protein
Biotin carboxylase β Catalyzes carboxylation reactions
C
~
Cas9 β DNA cutting enzyme
CFTR β Chloride ion channel
Clathrin β Vesicle formation protein
D
~
Dynein β Moves cargo along microtubules
DNA polymerase β DNA replication enzyme
Dicer β Processes microRNA precursors
E
~
Elastin β Provides tissue elasticity
Electron transfer flavoprotein β Transfers electrons in mitochondria
Elongation factor 2 β Assists protein translation
F
~
Ferritin β Iron storage protein
Fibrinogen β Blood clot formation
Flagellin β Builds bacterial flagella
G
~
GAPDH β Glycolysis enzyme
GroEL β Protein folding chaperone
GPCR β Signal reception and transduction
H
~
Hemoglobin β Oxygen transport
Histone β DNA packaging protein
Hsp90 β Protein folding chaperone
I
~
Integrin β Cell adhesion receptor
Immunoglobulin G β Antibody immune defense
Ion channel TRPV1 β Heat/pain sensor channel
K
~
Keratin β Structural hair/nail protein
Kinesin β Microtubule cargo transport
Kinase (PKA) β Phosphorylates target proteins
L
~
Lactate dehydrogenase β Converts lactate to pyruvate
Laminin β Extracellular matrix structural protein
Lipase β Breaks down fats
M
~
Myosin β Motor protein for movement
Myoglobin β Oxygen storage in muscles
Mitochondrial complex I β Electron transport in mitochondria
N
~
NADH dehydrogenase β Oxidizes NADH in mitochondria
NaβΊ/KβΊ-ATPase β Maintains ion gradients
Nucleosome β DNA wound around histones
O
~
Opsin β Light-detecting protein
Outer membrane porin β Small molecule transport
Oxytocin β Hormone, induces contractions
P
~
p53 β Tumor suppressor
Photosystem II β Splits water in photosynthesis
Proteasome β Degrades unwanted proteins
R
~
Ribosome β Protein synthesis machine
RNA polymerase II β Transcribes mRNA
Rubisco β Fixes carbon dioxide
S
~
Spike (SARS-CoV-2) β Virus entry protein
Sec61 translocon β Inserts proteins into ER
Synapsin β Regulates neurotransmitter release
T
~
Tubulin β Microtubule building block
Troponin β Regulates muscle contraction
TRPV1 β Heat/pain sensory channel
U
~
Ubiquitin β Marks proteins for degradation
Urease β Breaks down urea
Uncoupling protein β Dissipates mitochondrial proton gradient
V
~
V-ATPase β Acidifies organelles
Vinculin β Connects cytoskeleton to membrane
Voltage-gated sodium channel β Action potential initiation
W
~
Wnt protein β Cell signaling and development
Wee1 kinase β Controls cell cycle
Wilms tumor protein (WT1) β Kidney development regulator
Y
~
YAP β Transcription coactivator, growth
Y-box binding protein β Regulates transcription and translation
Z
~
Zinc finger protein β DNA binding protein
ZO-1 β Tight junction scaffolding