A re-writing of the specs pipeline stage from CMS, only changed quite a bit
"specs" is a command line utility for parsing and re-arranging text input. It allows re-alignment of fields, some format conversion, and re-formatting multiple lines into single lines or vice versa. Input comes from standard input, and output flows to standard output.
This version is liberally based on the CMS Pipelines User's Guide and Reference, especially chapters 16, 24, and 20.
11-Sep-2026: Version 1.0.0 is here
What's new:
- Rolling context allows processing previous and future records.
- Packages for Linux, Mac OS and Windows, bundled with Python 3.12.
- Python support in
MSBuildbuilds. - Exactness in Python function arguments and return value.
- Build information system-defined labels, such as
@build-infoand@build-url. - Debugging aids for GDB.
To download your copy of specs, you can get it from github in either of two ways:
- Using git:
git clone https://github.com/yoavnir/specs2016.git - Using http:
wget https://github.com/yoavnir/specs2016/archive/dev.zip
The binaries for the latest release can be downloaded from the release page
Notes:
- On Windows for ARM, you may install the x64 version of Python 3.12.
- Recent Mac OS versions are very strict on where packages come from. You may need to issue the following command to get the .pkg file to install:
xattr -dr com.apple.quarantine /path/to/specs-1.0.0.pkg
For detailed build instructions covering Linux, Mac OS, and Windows (both make and MSBuild), see BUILDING.md.
Note on Python versions: The pre-built binaries are linked against Python 3.12, and bundled with it. If you need to use a different version of Python, you can build specs locally from source. When building, you can specify which Python version to use via the --python option to setup.py (on Linux/macOS) or by setting the appropriate Python version in your Visual Studio environment (on Windows).
- Regular expression grammars other than the default
ECMAScriptdon't work except on Mac OS. - The Python-enabled Windows MSI bundles its own Python 3.12 runtime, so no system Python is required. The standalone Python-enabled
.exe(downloaded on its own, outside the MSI) still needspython312.dllon the path (or Python 3.12 installed).
Anyone can contribute. So far, I have written most of the code, but if you want to help, I'll be very happy. Feel free to:
- Submit bug reports or feature requests at the Issue Tracker.
- Help solve some existing issue.
- Submit pull requests
- Even if you use only Windows or only Linux, make sure to update both the
setup.pyfile and the relevantvcxprojfile or files.
When starting a new version:
- Update the README file
- Update the manpage
- Update specs/Directory.Build.props
- Yoav Nir (yoavnir)
- Jean-Baptiste Jouband (Gawesomer)
- donglrd (donglrd)
- Miriam-R-coder (Miriam-R-coder)
The documentation for specs2016 exists in two places:
- In the manpage installed with the utility on Linux and Mac OS.
- In the docs directory.
- specs2016 is licensed under the MIT License.
- The Python 3.12 library bundled with the GitHub-built packages is licensed under the Python Software Foundation License