Skip to content

Commit 99cad8c

Browse files
committed
rdev: provide mechanism to update robotpy entrypoints
- See robotpy/robotpy-cli#5
1 parent 8bed6a9 commit 99cad8c

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

devtools/config.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ class Parameters:
2424
wpilib_bin_version: str
2525
wpilib_bin_url: str
2626

27+
#: renames [project.entry-points.KEY*] to [project.entry-points.VALUE]
28+
entrypoints: T.Dict[str, str]
29+
2730
exclude_artifacts: T.Set[str]
2831

2932
requirements: T.Dict[str, str]

devtools/update_pyproject.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,30 @@ def wpilib_bin_version(self) -> str:
6868
def wpilib_bin_url(self) -> str:
6969
return self.cfg.params.wpilib_bin_url
7070

71+
def _update_entrypoints(
72+
self,
73+
info: ProjectInfo,
74+
pypi_name: str,
75+
):
76+
data = info.data
77+
eps = data["project"].get("entry-points")
78+
if eps is None:
79+
return
80+
81+
for name in list(eps.keys()):
82+
for prefix, replace in self.cfg.params.entrypoints.items():
83+
if name.startswith(prefix):
84+
eps[replace] = eps[name]
85+
del eps[name]
86+
print(
87+
f"* {pypi_name}: entry-points.{name} -> entry-points.{replace}"
88+
)
89+
self.commit_changes.add(
90+
f"{pypi_name}: entry-points.{name} -> entry-points.{replace}"
91+
)
92+
info.changed = True
93+
break
94+
7195
def _update_requirements(
7296
self,
7397
info: ProjectInfo,
@@ -126,6 +150,12 @@ def update_requirements(self):
126150
data["project"]["dependencies"],
127151
)
128152

153+
# project.entry-points
154+
self._update_entrypoints(
155+
info,
156+
pypi_name,
157+
)
158+
129159
def _update_maven(self, info: ProjectInfo):
130160
data = info.data
131161
iter = (

rdev.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ exclude_artifacts = [
3333

3434
robot_wheel_platform = "linux-roborio"
3535

36+
[params.entrypoints]
37+
# prefix = "actual"
38+
# - ensures that [project.entry-points.prefix*] are renamed to "actual", which
39+
# makes it easy to upgrade them each year (https://github.com/robotpy/robotpy-cli/issues/5)
40+
# - also reminds me that we have to bump it every year ^_^
41+
3642
[params.requirements]
3743
semiwrap = "~=0.1.7"
3844
hatch-meson = "~=0.1.0b2"

0 commit comments

Comments
 (0)