Skip to content

Conversation

@mdavidsaver
Copy link
Member

@mdavidsaver mdavidsaver commented Dec 16, 2025

This PR contains two large changes. Merging in epics-base 7.0.10. And a refresh of the github actions. I'm combining them because it would be more work to isolate them (aka. laziness). Many of the current GHA jobs are broken. Also, the 7.0.7 source fails to build with recent gcc/clang.

Changes to the GHA recipe would have the effect of only uploading wheels for cpython 3.8+ on Linux amd64, windows amd64, and OSX universal (I think). So no more i686 uploads. There is still a linux 2.7 job to check function, but the result is not uploaded. My idea being to drop py2.7 support after this set of releases. I picked 3.8 because it is currently the oldest available with actions/setup-python, the oldest cpython available in the oldest supported manylinux2014 image, and the oldest supported by cython >= 3.1 .

I prototyped this recipe for the set of packages down to p4p with https://github.com/mdavidsaver/p4p-integration

TODOs

minijackson and others added 30 commits April 4, 2025 08:29
This enables referring to e.g. {option}`msi -o` in the documentation,
and it will link to the correct location
This allows optionally printing out the value of one or more fields
for each record found.
Certain windows build environments (see
https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=1234387&view=results
for an example) fail unless the echo command is properly quoted. This
seems to be due to how Make handles various commands on non-posix
systems; without the quotes it directly tries to run
```
echo foo bar
```
inside cmd.exe, which fails as echo is not a valid command in that context.

Co-authored-by: Anders Harrisson <anders.harrisson@ess.eu>
This allows other modules like pvxs to find files there, too.
Also, the install locations of homebrew and MacPorts are now
detected rather than assumed.

If a package is installed in both, the homebrew version is preferred.
Includes some unification of error text, narrower wrap margin.
'var' output now lists the variable types.
The bldEnvData.pl script now syntax-checks the envParam
default values, allowing ANSI color macros to be used
in the IOCSH_PS1 parameter.
dirk-zimoch and others added 10 commits December 15, 2025 16:15
But it also does not know warning -Wformat-security.
../fdManagerTest.cpp:76:29: warning: suggest braces around initialization of subobject [-Wmissing-braces]
   76 |         osiSockAddr addr = {0};
      |                             ^
      |                             {}
* github/7.0: (490 commits)
  fix clang warning missing-braces
  gcc < 5 does not know #pragma GCC diagnostic push
  use c++ style output to avoid porability problems with printf format
  fix format warning on mingw
  Updates to the Release Checklist
  Update core version numbers after tagging
  Generate RELEASE-7.0.10.md notes file
  Set core version numbers for release
  Another PR release note
  Replace UNRELEASED => 7.0.10
  Add submodule release note entries
  Update git submodules for release
  Docs: Mention that pva is supported for JSON links
  Convert Release Checklist to Markdown
  Various fixes to the new-notes files
  Split PR-624 release notes
  iocsh.h: import documentation from AppDevGuide, minor tweaks
  doc clarify callbackRequestDelayed() timer allocation
  process doc comments in callback.h
  doc and callbackSetQueueSize sanity check
  ...
Copy link
Contributor

@AlexanderWells-diamond AlexanderWells-diamond left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This all looks good to me. Only a couple of minor comments. I'm happy with the support provided by this CI.

@mdavidsaver
Copy link
Member Author

I think that the problems I am seeing with epics-base/p4p#193 are due to some ABI issue with mixing manylinux1 and manylinux2010, which will stop as these PRs get merged. So I plan to move forward with merging, and pushing pre-releases to pypi.org. So dependent GHA jobs with pip --pre may fail spuriously while I am doing this. As previously, regular releases will only follow once I see a full set of working pre-release builds.

@mdavidsaver mdavidsaver marked this pull request as ready for review December 22, 2025 01:21
@mdavidsaver
Copy link
Member Author

... once I see a full set of working pre-release builds.

I see such a set: epicscorelibs == 7.0.10.99.0.0a1, pvxslibs == 1.4.2a1, p4p == 4.2.2a1. (also setuptools_dso == 2.12.2)

@coretl @AlexanderWells-diamond Please test when you have a chance. Let's see what breaks...

@mdavidsaver
Copy link
Member Author

I have yanked pvxslibs == 1.4.2a1, p4p == 4.2.2a1 in favor of pvxslibs == 1.5.0a1, p4p == 4.2.2a2.

Because of a public ABI change, the next PVXS release will be 1.5.0.

@AlexanderWells-diamond
Copy link
Contributor

AlexanderWells-diamond commented Jan 7, 2026

@coretl @AlexanderWells-diamond Please test when you have a chance. Let's see what breaks...

I can confirm that the set of modules epicscorelibs==7.0.10.99.0.0a1 , p4p==4.2.2a2 , pvxslibs==1.5.0a1 passes preliminary PythonSoftIOC testing on Python3.12 on an Ubuntu runner.

@mdavidsaver
Copy link
Member Author

Released as epicscorelibs==7.0.10.99.0.0, pvxslibs==1.5.0, and p4p==4.2.2.

@OCopping
Copy link
Contributor

OCopping commented Jan 8, 2026

Not sure if this is the best place to mention, but I have noticed a bug in softioc linked to epicscorelibs, and @AlexanderWells-diamond pointed me here.
I have a python package that uses softioc, and attempts to test against py3.12 and 3.13. py3.12 has no issues, but when attempting to run 3.13 with softioc 4.6.1, it fails due to a missing library.
https://github.com/DiamondLightSource/techui-builder/actions/runs/20785485446/job/59693713943?pr=130
Locally, I have rebuilt the devcontainer with 3.13 and noticed if I install softioc 4.6.1, and then manually update epicscorelibs to 7.0.10 it now runs fine.
This suggests that 7.0.7 is not compatible with py3.13.

EDIT: I just noticed that the library it is trying to access is for 7.0.10, when only 7.0.7 is installed.

@AlexanderWells-diamond
Copy link
Contributor

AlexanderWells-diamond commented Jan 8, 2026

We've also had this bug report for what looks like the same thing opened in PythonSoftIOC:
DiamondLightSource/pythonSoftIOC#197

I'm currently investigating. I'm confused how the EPICS 7.0.7 verson of epicscorelibs can be trying to load a 7.0.10 EPICS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.