Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
d6f56d8
Add xmipp3-installer to dependencies so it is automatically installed
martin-s-a Mar 12, 2025
bc6c567
Modify dependency versions to use dynamically generated tag
martin-s-a Mar 12, 2025
e16c207
Fix to major version 1 of the installer
martin-s-a Mar 17, 2025
bfc9cac
Install plugin in build pipeline
martin-s-a Mar 17, 2025
30ce9b7
Fix command syntax
martin-s-a Mar 17, 2025
44b49a1
Modify versioning system
martin-s-a Mar 17, 2025
875c294
Correct version number
martin-s-a Mar 17, 2025
2fefdb8
Using a slash at the end of the plugin path
oierlauzi Mar 20, 2025
f333416
Scipion path fix
oierlauzi Mar 20, 2025
f953c4a
Trying with pip install
oierlauzi Mar 24, 2025
6b0fd8d
Properly set config variables
martin-s-a Mar 24, 2025
4ead999
Removed unused env variable
martin-s-a Mar 24, 2025
77d62ac
Merge branch 'devel' into ms_dynamic_dependencies
albertmena Jul 22, 2025
c82103f
Update version to v4.00.0
albertmena Nov 7, 2025
6ab1bc9
Update version to v4.0.0 and binVersion to v4
albertmena Nov 7, 2025
5bce085
Remove unused variable '_pluginTagVersion'
albertmena Nov 7, 2025
f445166
Change release branch to 'main' and update changelog logic
albertmena Nov 7, 2025
347df79
Update release workflow triggers
albertmena Nov 7, 2025
971c3e5
Merge branch 'devel' into ms_dynamic_dependencies
martin-s-a Nov 7, 2025
acb53bc
Fixed build action
martin-s-a Nov 7, 2025
8542890
Scipion installation path
martin-s-a Nov 7, 2025
d6f78f1
Cloning xmipp
martin-s-a Nov 7, 2025
eb3cd6e
Right path to xmipp
martin-s-a Nov 7, 2025
78a16e6
Try with installp
martin-s-a Nov 7, 2025
fdebed6
Rollback
martin-s-a Nov 7, 2025
d2a25be
Update release.yml
albertmena Nov 11, 2025
7254791
Merge branch 'devel' into ms_dynamic_dependencies
martin-s-a Nov 11, 2025
9d74397
Update build.yml
albertmena Nov 11, 2025
4495884
Update GitHub Actions workflow for build process
albertmena Nov 11, 2025
a988d51
Fix working directory for Scipion installation
albertmena Nov 11, 2025
2b5e382
Refactor build workflow to include Xmipp compilation
albertmena Nov 12, 2025
061e79f
Fix working directory for Xmipp compilation step
albertmena Nov 12, 2025
7b71b90
Update build.yml
albertmena Nov 12, 2025
ce20a2f
Update build.yml
albertmena Nov 12, 2025
14d617a
Fix path for Xmipp compilation command
albertmena Nov 12, 2025
a646be3
Update build.yml
albertmena Nov 12, 2025
bd2c1b8
Update build workflow to clone scipion-em-xmipp
albertmena Nov 12, 2025
d0086ff
Update build.yml
albertmena Nov 12, 2025
bcd61a9
Update build workflow for xmipp installation
albertmena Nov 12, 2025
db0c170
Update build.yml
albertmena Nov 12, 2025
fd5992e
Update build.yml
albertmena Nov 12, 2025
880c83c
Update build.yml
albertmena Nov 12, 2025
1610280
Update build.yml
albertmena Nov 13, 2025
33b9a56
Update build.yml
albertmena Nov 13, 2025
79cd9f7
Update build.yml
albertmena Nov 13, 2025
26911da
Update build.yml
albertmena Nov 13, 2025
b7eea15
Update __init__.py
albertmena Nov 13, 2025
989c253
Update build.yml
albertmena Nov 13, 2025
a88e70a
Update build.yml
albertmena Nov 13, 2025
af84d18
Update build.yml
albertmena Nov 13, 2025
ceaa46f
Update build.yml
albertmena Nov 13, 2025
649ad17
Update build.yml
albertmena Nov 13, 2025
edff6bf
Update build.yml
albertmena Nov 13, 2025
f650d09
Update build.yml
albertmena Nov 13, 2025
2c5673b
Update build.yml
albertmena Nov 13, 2025
bafdd13
Fixed paths
martin-s-a Nov 13, 2025
a755ba9
Merge branch 'devel' into ms_dynamic_dependencies
martin-s-a Nov 13, 2025
95d430e
Update build.yml
albertmena Nov 13, 2025
063f48a
Rename xmipp-bundle to plain xmipp (also fixing paths)
martin-s-a Nov 13, 2025
ddd2f78
Scipion path
martin-s-a Nov 13, 2025
db2e8c3
Adding numpy 2 as a dependency (to be discussed as it's an xmipp's de…
martin-s-a Nov 15, 2025
672cabe
Downgraded numpy to match scipion's requirements
martin-s-a Nov 17, 2025
4382c50
Update version.py
albertmena Nov 17, 2025
3a70161
Update __init__.py
albertmena Nov 17, 2025
32e756a
Removed bin tag version
martin-s-a Nov 17, 2025
4d1187d
Update xmipp's repository name
martin-s-a Nov 17, 2025
e3187cc
Update xmipp automatically from devel to release
martin-s-a Nov 17, 2025
14ffdc5
Use new xmipp's repository name
martin-s-a Nov 17, 2025
1425a44
Fixed xmipp's path
martin-s-a Nov 17, 2025
0f3a683
Remove xmipp compilation related steps
martin-s-a Nov 17, 2025
6526915
Use new xmipp3-installer version
martin-s-a Nov 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 16 additions & 43 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,11 @@ name: Build plugin

on:
pull_request:
branches: [devel, master]
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-22.04

# Avoid send statistics
env:
SEND_INSTALLATION_STATISTICS: OFF

steps:
- name: Checkout repository
Expand All @@ -23,14 +19,6 @@ jobs:
sudo apt-get update
sudo apt-get install -y libfftw3-dev libopenmpi-dev libhdf5-dev libtiff5-dev libsqlite3-dev default-jdk git cmake openmpi-bin gcc g++

- name: Install CUDA
uses: Jimver/cuda-toolkit@master
id: cuda-toolkit
with:
cuda: '11.8.0'
method: network
sub-packages: '["nvcc", "toolkit"]'

- name: Install Miniconda
uses: conda-incubator/setup-miniconda@main
with:
Expand All @@ -39,41 +27,26 @@ jobs:
auto-activate-base: true
activate-environment: scipion3
python-version: "3.8"

- name: Install Scipion
working-directory: ${{ github.workspace }}
working-directory: ${{ github.workspace }}/../
run: |
pwd
pip install --user scipion-installer
python -m scipioninstaller -conda -noAsk scipion


- name: Cloning scipion-em-xmipp
working-directory: ${{ github.workspace }}/scipion/
- name: Install xmipp3-installer
working-directory: ${{ github.workspace }}
run: |
pwd
rm -rf scipion-em-xmipp
git clone https://github.com/I2PC/scipion-em-xmipp.git
pip install --user xmipp3-installer

- name: Conditionally checkout to ${{ github.head_ref }}
working-directory: ${{ github.workspace }}/scipion/scipion-em-xmipp
env:
BRANCH_NAME: ${{ github.head_ref }}
run: |
pwd
git checkout $BRANCH_NAME

- name: Install and compile Xmipp and show log
working-directory: ${{ github.workspace }}/scipion/
env:
BUILD_TESTS: True
BRANCH_NAME: ${{ github.head_ref }}
SEND_INSTALLATION_STATISTICS: OFF
- name: Cloning xmipp and getting sources
working-directory: ${{ github.workspace }}/../
run: |
pwd
./scipion3 installp -p scipion-em-xmipp --devel || {
echo "First attempt failed. Retrying..."
sleep 10
./scipion3 installp -p scipion-em-xmipp --devel || (cat compilation.log && false)
}
# Duplicated because a defineVariables scipion plugin fails
git clone https://github.com/I2PC/xmipp3.git
./xmipp3/xmipp getSources --keep-output
cd xmipp3/src/
ln -s "${{ github.workspace }}" "${{ github.workspace }}/../xmipp3/src/scipion-em-xmipp"

- name: Installing scipion-em-xmipp
working-directory: ${{ github.workspace}}/../xmipp3/src
run: ../../scipion/scipion3 installp -p scipion-em-xmipp/ --devel
35 changes: 22 additions & 13 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
name: Release
on:
push:
branches: [ master ]
workflow_dispatch:

jobs:
release:
environment:
name: release-approval

runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@main
Expand All @@ -17,37 +20,43 @@ jobs:
uses: actions/setup-python@main
with:
python-version: '3.8'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine build
pip install -r requirements.txt


- name: Switch xmipp from devel to release
run: |
sed -i -E "s/^(type_of_version[[:space:]]*=[[:space:]]*)'devel'/\1'release'/" xmipp3/version.py
git add xmipp3/version.py
git config --global user.name "github-actions"
git config --global user.email "[email protected]"
git commit -m "Switch xmipp from devel to release"

- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
python -m build --no-isolation
twine upload dist/* -c "${{ secrets.PYPI_COMMENT }}"

- name: Get changelog, tag name, & release name
id: variables
run: |
awk '/## Release/{if (p) exit; p=1} p' CHANGELOG.md > latest_changelog_with_title.md
cat latest_changelog_with_title.md | tail -n +2 > latest_changelog.md
RELEASE_NAME=$(cat latest_changelog_with_title.md | head -n 1 | sed 's/## Release //' | sed 's/^ *//')
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_OUTPUT
echo "TAG_NAME=${RELEASE_NAME// /}" >> $GITHUB_OUTPUT

run:
TAG_NAME=$(grep "_pluginVersion" xmipp3/version.py | sed -E 's/.*"([^"]+)".*/\1/')
RELEASE_NAME="Release ${TAG_NAME}"
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_OUTPUT

- name: Generate tag
id: tag_version
uses: mathieudutour/[email protected]
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
custom_tag: ${{ steps.variables.outputs.TAG_NAME }}

- name: Create a GitHub release
uses: ncipollo/release-action@main
with:
Expand Down
3 changes: 2 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ joblib
peppercorn
plotter
PyWavelets

xmipp3-installer==2.*
numpy==1.*
11 changes: 4 additions & 7 deletions xmipp3/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@

type_of_version = version.type_of_version
_logo = version._logo
_binTagVersion = version._binTagVersion
_pluginTagVersion= version._pluginTagVersion
_currentDepVersion = version._currentDepVersion
__version__ = version.__version__

Expand Down Expand Up @@ -199,16 +197,15 @@ def defineBinaries(cls, env):
default=False
)
else:
xmippSrc = f'xmippSrc-{version._binTagVersion}'
xmippSrc = f'xmipp3-{version._binVersion}'
installCommands = [
(f'cd .. && rm -rf {xmippSrc} && '
f'git clone {XMIPP_GIT_URL} {xmippSrc} && '
f'git clone {XMIPP_GIT_URL} -b {version._binVersion} {xmippSrc} && '
f'cd {xmippSrc} && '
f'git checkout {version._binTagVersion} && '
f'./xmipp --production True ', COMPILE_TARGETS)
]
env.addPackage(
'xmippSrc', version=version._binTagVersion,
'xmipp3', version=version._binVersion,
tar='void.tgz',
commands=installCommands,
neededProgs=['git', 'gcc', 'g++', 'cmake', 'make'],
Expand All @@ -228,7 +225,7 @@ def __getBundleDirectory(cls):

isBundle = (os.path.isdir(os.path.join(bundleDir, 'src')) and
os.path.isfile(os.path.join(bundleDir, 'xmipp')))

print(f'pluginDir: {pluginDir}\n, bundleDir: {bundleDir}\n, isBundle: {isBundle}')
return bundleDir if isBundle else None

def getNvidiaDriverVersion(plugin):
Expand Down
2 changes: 1 addition & 1 deletion xmipp3/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"""

# ------------------ Constants values --------------------------------------
XMIPP_GIT_URL = 'https://github.com/I2PC/xmipp.git'
XMIPP_GIT_URL = 'https://github.com/I2PC/xmipp3.git'
XMIPP_URL = 'https://github.com/i2pc/scipion-em-xmipp'
XMIPP_HOME = 'XMIPP_HOME'
NMA_HOME = 'NMA_HOME'
Expand Down
19 changes: 13 additions & 6 deletions xmipp3/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,18 @@
type_of_version = 'devel' #'release' 'devel'
_logo = "xmipp_logo" + ("" if type_of_version == 'release' else '_devel') + '.png'

_binVersion = 'v3.25.06.0' # Increase it if hotfix in binaries (xmipp, xmippCore and/or XmippViz)
_pluginVersion = 'v3.25.06.0' # Increase it if hotfix in binaries (xmipp, xmippCore and/or XmippViz) or in scipion-em-xmipp

_binTagVersion = _binVersion + '-Rhea' #'devel' or _binVersion + '-Poseidon'
_pluginTagVersion = _pluginVersion + '-Rhea' #'devel' or _pluginVersion + '-Poseidon'
_binVersion = 'v4' # Increase it if major release is generated in xmipp
# Increase according to SemVer rules:
# Rules with initial package version of vX.Y.Z
# - If the change consists of fixing a bug (that does not change at all
# how the protocols are used), increase Z by 1.
# - If the change is adding new functionality (extra params for a protocol,
# or new protocols), increase Y by 1.
# - If the change deprecates existing functionality (remove a protocol,
# or a param), increase X by 1
# - If several of the above are true, only change the biggest one applicable (
# for example, if a fix is made and a new protocol are included in the same
# pull request, increase the one related to the new protocol).
__version__ = 'v4.0.0'

_currentDepVersion = '1.0'
__version__ = _pluginVersion[3:] # Name of the pypi package
Loading