Skip to content

Commit 71065af

Browse files
authored
Merge pull request #60 from xsuite/release/v0.3.3
Release 0.3.3
2 parents ed4a595 + 20bfb40 commit 71065af

File tree

4 files changed

+208
-211
lines changed

4 files changed

+208
-211
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "xcoll"
3-
version = "0.3.2"
3+
version = "0.3.3"
44
description = "Xsuite collimation package"
55
homepage = "https://github.com/xsuite/xcoll"
66
repository = "https://github.com/xsuite/xcoll"

version.sh

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
# Copyright (c) CERN, 2023. #
66
# ######################################### #
77

8+
# Check necessary setup and installs
9+
gh pr list || exit 1
10+
811
if [ $# -eq 0 ]
912
then
1013
echo "This script needs one argument: the new version number or a bump."
@@ -81,40 +84,35 @@ case ${answer:0:1} in
8184
;;
8285
esac
8386

84-
# Update version in a temporary branch
85-
poetry version $bump || (echo "Poetry version failed! Aborting..."; exit 1)
87+
# Update version in the release branch
88+
poetry version $bump || (echo "Poetry version failed! Aborting..."; exit 1);[ "$?" -eq 1 ] && exit 1
8689
new_ver=$( poetry version | awk '{print $2;}' )
8790
if [[ "$new_ver" != "$expected_ver" ]]
8891
then
8992
echo "Fatal error: poetry --dry-run expected $expected_ver, but result is $new_ver..."
9093
exit 1
9194
fi
92-
sed -i "s/\(__version__ =\).*/\1 '"${new_ver}"'/" xcoll/general.py
93-
sed -i "s/\(assert __version__ ==\).*/\1 '"${new_ver}"'/" tests/test_version.py
95+
sed -i "s/\(__version__ =\).*/\1 '"${new_ver}"'/" xcoll/general.py || (echo "Sed failed! Aborting..."; exit 1);[ "$?" -eq 1 ] && exit 1
96+
sed -i "s/\(assert __version__ ==\).*/\1 '"${new_ver}"'/" tests/test_version.py || (echo "Sed failed! Aborting..."; exit 1);[ "$?" -eq 1 ] && exit 1
9497
git reset
9598
git add pyproject.toml xcoll/general.py tests/test_version.py
96-
git commit --no-verify -m "Updated version number to v"${new_ver}"." || (echo "Git commit version failed! Aborting..."; exit 1)
99+
git commit --no-verify -m "Updated version number to v"${new_ver}"." || (echo "Git commit version failed! Aborting..."; exit 1);[ "$?" -eq 1 ] && exit 1
97100
git push
98101

99102
# Make and accept pull request
100-
gh pr create --base main --title "Release "${new_ver} --fill || (echo "gh pr create failed! Aborting..."; exit 1)
103+
gh pr create --base main --title "Release "${new_ver} --fill || (echo "gh pr create failed! Aborting..."; exit 1);[ "$?" -eq 1 ] && exit 1
101104
git switch main
102105
git pull
103106
PR=$( gh pr list --head $branch | tail -1 | awk '{print $1;}' )
104-
gh pr merge ${PR} --merge --admin --delete-branch || (echo "gh pr merge failed! Aborting..."; exit 1)
107+
gh pr merge ${PR} --merge --admin --delete-branch || (echo "gh pr merge failed! Aborting..."; exit 1);[ "$?" -eq 1 ] && exit 1
105108
git pull
106109

107110
# Make a tag
108111
git tag v${new_ver}
109112
git push origin v${new_ver}
110113

111-
# Draft release notes
112-
curl \
113-
-X POST \
114-
-H "Accept: application/vnd.github+json" \
115-
-H "Authorization: Bearer "$(cat ../github_token) \
116-
https://api.github.com/repos/xsuite/xcoll/releases \
117-
-d '{"tag_name":"v'${new_ver}'","target_commitish":"main","name":"Xcoll release '${new_ver}'","body":"","draft":true,"prerelease":false,"generate_release_notes":true}'
114+
# Draft release
115+
gh release create v${new_ver} --draft --generate-notes --title "Xcoll release ${new_ver}" --verify-tag
118116

119117
# Build release and publish to PyPi
120118
poetry publish --build

xcoll/beam_elements/everest.py

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,9 @@ def __init__(self, **kwargs):
6969
if '_xobject' not in kwargs:
7070
try: # TODO: small workaround until PR
7171
self.compile_kernels(use_prebuilt_kernels=use_prebuilt_kernels,
72-
particles_class=xp.Particles,
73-
only_if_needed=True)
72+
only_if_needed=True)
7473
except TypeError:
75-
self.compile_kernels(particles_class=xp.Particles,
76-
only_if_needed=True)
74+
self.compile_kernels(only_if_needed=True)
7775
self._context.kernels.EverestBlock_set_material(el=self)
7876

7977

@@ -88,7 +86,7 @@ def material(self, material):
8886
raise ValueError("Invalid material!")
8987
if not xt.line._dicts_equal(self.material.to_dict(), material.to_dict()):
9088
self._material = material
91-
self.compile_kernels(particles_class=xp.Particles, only_if_needed=True)
89+
self.compile_kernels(only_if_needed=True)
9290
self._context.kernels.EverestBlock_set_material(el=self)
9391

9492
def get_backtrack_element(self, _context=None, _buffer=None, _offset=None):
@@ -141,11 +139,9 @@ def __init__(self, **kwargs):
141139
if '_xobject' not in kwargs:
142140
try: # TODO: small workaround until PR
143141
self.compile_kernels(use_prebuilt_kernels=use_prebuilt_kernels,
144-
particles_class=xp.Particles,
145-
only_if_needed=True)
142+
only_if_needed=True)
146143
except TypeError:
147-
self.compile_kernels(particles_class=xp.Particles,
148-
only_if_needed=True)
144+
self.compile_kernels(only_if_needed=True)
149145
self._context.kernels.EverestCollimator_set_material(el=self)
150146

151147
@property
@@ -159,7 +155,7 @@ def material(self, material):
159155
raise ValueError("Invalid material!")
160156
if not xt.line._dicts_equal(self.material.to_dict(), material.to_dict()):
161157
self._material = material
162-
self.compile_kernels(particles_class=xp.Particles, only_if_needed=True)
158+
self.compile_kernels(only_if_needed=True)
163159
self._context.kernels.EverestCollimator_set_material(el=self)
164160

165161
def get_backtrack_element(self, _context=None, _buffer=None, _offset=None):
@@ -242,11 +238,9 @@ def __init__(self, **kwargs):
242238
self._bending_radius = self.active_length / np.sin(bending_angle)
243239
try: # TODO: small workaround until PR
244240
self.compile_kernels(use_prebuilt_kernels=use_prebuilt_kernels,
245-
particles_class=xp.Particles,
246-
only_if_needed=True)
241+
only_if_needed=True)
247242
except TypeError:
248-
self.compile_kernels(particles_class=xp.Particles,
249-
only_if_needed=True)
243+
self.compile_kernels(only_if_needed=True)
250244
self._context.kernels.EverestCrystal_set_material(el=self)
251245

252246

@@ -296,7 +290,7 @@ def material(self, material):
296290
raise ValueError("Invalid material!")
297291
if not xt.line._dicts_equal(self.material.to_dict(), material.to_dict()):
298292
self._material = material
299-
self.compile_kernels(particles_class=xp.Particles, only_if_needed=True)
293+
self.compile_kernels(only_if_needed=True)
300294
self._context.kernels.EverestCrystal_set_material(el=self)
301295

302296

@@ -313,18 +307,3 @@ def _lattice_setter(lattice):
313307
else:
314308
raise ValueError(f"Illegal value {lattice} for 'lattice'! "
315309
+ "Only use 'strip' (110) or 'quasi-mosaic' (111).")
316-
317-
318-
# TODO: We want this in the HybridClass to get Kernels attached automatically,
319-
# like the PerParticlePyMethod in BeamElement
320-
# def _exec_kernel(el, kernel_name, **kwargs):
321-
# # context = el._context
322-
# # desired_classes = tuple(a.atype for a in el._kernels[kernel_name].args)
323-
# # if (kernel_name, desired_classes) not in context.kernels:
324-
# # el.compile_kernels(particles_class=xp.Particles)
325-
# # kern = context.kernels[(kernel_name, desired_classes)]
326-
# # return kern(el=el._xobject, **kwargs)
327-
# el.compile_kernels(particles_class=xp.Particles, only_if_needed=True)
328-
# return getattr(el._context.kernels, kernel_name)(el=el, **kwargs)
329-
330-

0 commit comments

Comments
 (0)