lalsuite merge requestshttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests2024-03-27T16:19:37Zhttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2268Merge release branch 202403192024-03-27T16:19:37ZDuncan Macleodduncan.macleod@ligo.orgMerge release branch 20240319### Description
This MR merges the packaging changes for the LALSuite 7.22 release back into `master`.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/ty...### Description
This MR merges the packaging changes for the LALSuite 7.22 release back into `master`.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
cc @adam-mercerhttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2250Remove lalapps_make_nr_hdf_catalog2024-03-27T11:01:37ZDuncan Macleodduncan.macleod@ligo.orgRemove lalapps_make_nr_hdf_catalog### Description
This MR removes `lalapps_make_nr_hdf_catalog` as per @ian-harry's recommendation in #733+.
Closes #733
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/f...### Description
This MR removes `lalapps_make_nr_hdf_catalog` as per @ian-harry's recommendation in #733+.
Closes #733
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Please provide details on any reviews related to this change and
and the associated reviewers.Adam MercerAdam Mercerhttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2265Prepare release 202403192024-03-19T11:19:36ZDuncan Macleodduncan.macleod@ligo.orgPrepare release 20240319### Description
This MR updates package versions, API versions, dependencies, and packaging to prepare a full project release.
The updated versions are as follows:
| Package | Old version | New version | API change | Notes |
| -------...### Description
This MR updates package versions, API versions, dependencies, and packaging to prepare a full project release.
The updated versions are as follows:
| Package | Old version | New version | API change | Notes |
| ------- | ----------- | ----------- | ---------- | ----- |
| lal | 7.4.1 | 7.5.0 | ~"api::minor" | |
| lalframe | 3.0.3 | 3.0.4 | ~"api::none" | |
| lalmetaio | 4.0.3 | 4.0.4 | ~"api::none" | |
| lalsimulation | 5.3.1 | 5.4.0 | ~"api::minor" | |
| lalburst | 2.0.3 | 2.0.4 | ~"api::none" | |
| lalinspiral | 4.0.4 | 5.0.0 | ~"api::major" | Removed sbank library (!1754) |
| lalinference | 4.1.5 | 4.1.6 | ~"api::none" | |
| lalpulsar | 6.0.6 | 6.1.0 | ~"api::minor" | |
| lalapps | 9.2.2 | 10.0.0 | ~"api::major" | Removed script (!2250) |
### API Changes and Justification
#### Backwards Compatible Changes
- [ ] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Please provide details on any reviews related to this change and
and the associated reviewers.Duncan Macleodduncan.macleod@ligo.orgDuncan Macleodduncan.macleod@ligo.orghttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2213Build system rules for pretty-formatting C and Python code2023-12-07T05:30:52ZKarl WetteBuild system rules for pretty-formatting C and Python code### Description
This MR adds build system rules for pretty-formatting C and Python code. _No code is reformatted by default. Pretty-formatting is entirely opt-in, either on a per-file, per-directory, or per-LALSuite library basis._
Pre...### Description
This MR adds build system rules for pretty-formatting C and Python code. _No code is reformatted by default. Pretty-formatting is entirely opt-in, either on a per-file, per-directory, or per-LALSuite library basis._
Pretty-formatting only works in a Git checkout, and only processes files that have already been committed to Git. Hopefully that will mean that a user can always roll back to an un-pretty-formatted version of the code, in case the pretty-formatting causes problems during development.
C code is pretty-formatted using [Artistic Style](https://astyle.sourceforge.net/). This is a more modern C/C++ formatter than `indent`. I've often used it to tidy up my own code, and it seems reliable. It's available for [RPMs](http://rpmfind.net/linux/rpm2html/search.php?query=astyle), [Debian](https://packages.debian.org/search?keywords=astyle), [Ubuntu](https://packages.ubuntu.com/search?keywords=astyle), [Homebrew](https://formulae.brew.sh/formula/astyle), [MacPorts](https://ports.macports.org/port/astyle/), etc. It supports lots of different options for formatting C/C++ in different styles.
* Artistic Style options are given either in
* A per source config file, e.g. `lalpulsar/lib/.LatticeTiling.pretty.astylerc` will apply to `lalpulsar/lib/LatticeTiling.[ch]`
* A per directory config file, e.g. `lalpulsar/bin/Weave/.pretty.astylerc` will apply to everything in `lalpulsar/bin/Weave/`
* A library top-level config file, e.g. `lalpulsar/.pretty.astylerc`, will apply to everything in LALPulsar
Python code is pretty-formatted using [Black](https://black.readthedocs.io/en/stable/).
* Black is enabled either
* Per file, e.g. the presence of a file `lalpulsar/python/lalpulsar/.simulateCW.pretty.black` will reformat `lalpulsar/python/lalpulsar/simulateCW.py`
* Per directory, e.g. the presence of a file `lalpulsar/python/lalpulsar/.pretty.black` will reformat everything in `lalpulsar/python/lalpulsar`
* Per library, e.g. the presence of a file `lalpulsar/.pretty.black` will reformat everything in LALPulsar
Pretty-formatting is performed by running `make pretty`. A new CI job `lint:pretty` runs `make pretty` to check that code has been pretty-formatted before merging.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Please provide details on any reviews related to this change and
and the associated reviewers.Karl WetteKarl Wettehttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2222rebrand as LVK Algorithm Library2023-11-21T17:19:07ZAdam Mercerrebrand as LVK Algorithm Library### Description
Rebrands as the LVK Algorithm Library, see #637 for details.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a ...### Description
Rebrands as the LVK Algorithm Library, see #637 for details.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Please provide details on any reviews related to this change and
and the associated reviewers.Adam MercerAdam Mercerhttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/1982LALSimulation TOV Solver Expansion2023-11-06T16:41:25ZAristeidis NikolaidisLALSimulation TOV Solver Expansion### Description
The changes made in the LALSimulation TOV solver are threefold:
1. An option has been added for the user to choose a value for the central rest-mass density or the central energy density for the integration of the TOV eq...### Description
The changes made in the LALSimulation TOV solver are threefold:
1. An option has been added for the user to choose a value for the central rest-mass density or the central energy density for the integration of the TOV equations. In the command line this can be tested by running the following: (rest-mass density) `lalsim-ns-mass-radius -n AP1 -d 7e17` or (energy density) `lalsim-ns-mass-radius -e 6e34`. "-d" and "-e" are the flags for choosing these values.
2. A routine for the calculation of the 2D and 3D Virial identities has been added. The flag for calculation of the Virial identities and then printing of those is "-U" and has no required argument. An appropriate test would be to run `lalsim-ns-mass-radius -n AP1 -U -d 7e17` in the terminal and
3. A new EOS framework has been set up for use of new EOS tables provided by CompOSE which have much bigger data sets, with quite a few more variables. In order to access a table of the new framework the user has to just type the name of that EOS after the name flag. For example, `lalsim-ns-mass-radius -n RGSLy2` or `lalsim-ns-mass-radius -n RGSLy2 -U -d 7e17 -N 10`.
All changes have been marked with comments pertaining to the appropriate issue. So for the change 1.) the comment will read /* A_N_ISSUE_1_ */.
### API Changes and Justification
#### Backwards Compatible Changes
- [ ] This change does not modify any class/function/struct/type definitions in a public C header file or any Python class/function definitions
- [x] This change adds new classes/functions/structs/types to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type from a public C header file or Python module
#### Review Status
All code this far has been written and run under supervision of Prof. Nikolaos Stergioulas (niksterg@auth.gr). Review signed off: [https://git.ligo.org/groups/extreme-matter/-/wikis/Extended-TOV-solver-with-new-EOS-framework-review](https://git.ligo.org/groups/extreme-matter/-/wikis/Extended-TOV-solver-with-new-EOS-framework-review)https://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2214Merge release branch2023-10-20T02:09:52ZAdam MercerMerge release branch### Description
Merges packaging update from the release branch back to `master`.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
...### Description
Merges packaging update from the release branch back to `master`.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Please provide details on any reviews related to this change and
and the associated reviewers.Adam MercerAdam Mercerhttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2163Allow per-library fallback LAL data path for XLALFileResolvePathLong()2023-07-24T14:21:10ZKarl WetteAllow per-library fallback LAL data path for XLALFileResolvePathLong()### Description
Detailed description of the changes, why they are being made, etc...
Also indicate appropriate tickets and tests that have been run to
determine that the changes work as intended and do not introduce
other problems.
###...### Description
Detailed description of the changes, why they are being made, etc...
Also indicate appropriate tickets and tests that have been run to
determine that the changes work as intended and do not introduce
other problems.
### API Changes and Justification
- `XLALFileResolvePathLong()` replaces `fallbackdir` with `fallbackpath`
- May contain either absolute or relative (to `liblalsupport.so`) paths
- `LALSUITE_WITH_FALLBACK_DATA_PATH` (replaces `LAL_WITH_DATA_PATH`)
defines `LAL_FALLBACK_DATA_PATH` to fallback LAL data path
- Defaults to `$(pkgdatadir)`, same as for `fallbackdir` argument
- New macro `XLAL_FILE_RESOLVE_PATH()` passes `LAL_FALLBACK_DATA_PATH` to
`XLALFileResolvePathLong()`, so each library gets its own fallback path
- Not designed to be used outside of LALSuite; libraries implement their
own functions (e.g. `XLALReadEphemerisFile()`, `XLALSimReadDataFileOpen()`)
which call `XLAL_FILE_RESOLVE_PATH()` internally
- Non-inline `XLALFileResolvePath()` and `XLALPulsarFileResolvePath()` wrappers
kept to avoid breaking ABI
- `.gitlab-ci.yml`: add finding data files test to `lalpulsar_longtests`
#### Backwards Compatible Changes
- [ ] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [x] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
n/a pKarl WetteKarl Wettehttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2157Update packaging for RL82023-05-18T22:20:34ZAdam MercerUpdate packaging for RL8### Description
This updates the packaging of LALInference, LALPulsar, and LALApps to support building on RL8:
1. LALInference is updated to not build against the MPI libraries, the way MPI codes need to be packaged changed in RHEL8 and...### Description
This updates the packaging of LALInference, LALPulsar, and LALApps to support building on RL8:
1. LALInference is updated to not build against the MPI libraries, the way MPI codes need to be packaged changed in RHEL8 and is documented [here](https://docs.fedoraproject.org/en-US/packaging-guidelines/MPI/#_packaging_of_mpi_software), so we simply get around this by removing MPI from the RPMs. If the MPI codes are required they are available from Conda.
2. LALPulsar was updated to not include the hardware injection codes as this requires `cds-crtools` which is not available for RL8 via RPM and the CDS team have no plans to provide support for RPMs. These codes are included with the Conda packages for LALPulsar.
3. A bug was fixed in the LALApps dependencies which had it depending on `python2`.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Please provide details on any reviews related to this change and
and the associated reviewers.Adam MercerAdam Mercerhttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2129Fixes to generation of AUTHORS file2023-05-10T08:33:33ZKarl WetteFixes to generation of AUTHORS file### Description
- Exclude merge commits from author list
- So that e.g. if someone merges in master branch locally, which brings
in changes from others, those don't count towards authorship.
- This removes a few names from...### Description
- Exclude merge commits from author list
- So that e.g. if someone merges in master branch locally, which brings
in changes from others, those don't count towards authorship.
- This removes a few names from union of all `AUTHORS` files. Confirmed
that these authors only performed merge commits, or else contributed
to code no longer part of LALSuite (e.g. `gracedb/`, `laldetchar/`).
- Optionally find authors using `git blame`
- Ran this once and committed the results
- Should only be necessary after major restructuring
- Rename `lal*/.AUTHORS` to `lal*/.historical_authors`
- To make the purpose of those files clearer
Closes #665
Required by !2128
Requires !2130
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Please provide details on any reviews related to this change and
and the associated reviewers.Karl WetteKarl Wettehttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2003New waveforms interface2023-05-05T12:46:13ZCecilio Garcia-QuirosNew waveforms interface### Description
Incorporates the new waveforms interface.
Support calling C and python waveform models from C and python clients.
The standard functions XLALSimInspiralChooseFD(TD)Waveform and XLALSimInspiralChooseFD(TD)Modes remain b...### Description
Incorporates the new waveforms interface.
Support calling C and python waveform models from C and python clients.
The standard functions XLALSimInspiralChooseFD(TD)Waveform and XLALSimInspiralChooseFD(TD)Modes remain backwards compatible.
New C functions have been added `XLALSimInspiralGenerateFD(TD)Waveform(Modes)` which replicate the old ones and support a more flexible input of the parameters. Equivalent functions exist for the python interface.
The LALSuite build system has been modified to support embedded python.
See [here](https://git.ligo.org/waveforms/reviews/newwfinterface/-/wikis/home#introduction) for a brief introduction on the new waveforms interface.
### API Changes and Justification
#### Backwards Compatible Changes
- [ ] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [x] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Review chaired by @vijay.varma and @sascha.husa.
[Review wiki](https://git.ligo.org/waveforms/reviews/newwfinterface/-/wikis/home), [review repo](https://git.ligo.org/waveforms/reviews/newwfinterface)
The review statement for the first stage of reviews is [here](https://git.ligo.org/waveforms/reviews/newwfinterface/-/wikis/home#stage-1-review-sign-off-for-o4a-functionality).https://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2138update_authors: only add names to AUTHORS file2023-04-25T02:41:18ZKarl Wetteupdate_authors: only add names to AUTHORS file### Description
Evidently the current `AUTHORS` generation doesn't work with squashing commits during merge, as that could remove author names from the Git history (if those authors have made no other commits). As a fix, `make update-au...### Description
Evidently the current `AUTHORS` generation doesn't work with squashing commits during merge, as that could remove author names from the Git history (if those authors have made no other commits). As a fix, `make update-authors` now only adds names to `AUTHORS` files, but never removes them. The idea is that author names get added during development or when submitting the MR (in order for `lint:authors` to pass), but then remain on the author list even if the MR commits are squashed.
As a result the `.historical_authors` files are no longer needed; all author names (regardless of whether they came from Git, CVS, copyright, etc.) are just added to `AUTHORS`.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Please provide details on any reviews related to this change and
and the associated reviewers.Karl WetteKarl Wettehttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2122Add IMRPhenomXO4a2023-04-24T18:53:11ZJonathan ThompsonAdd IMRPhenomXO4a### Description
Creating the draft merge request to add the IMRPhenomXO4a model currently undergoing review here: [https://git.ligo.org/waveforms/reviews/imrphenomxo4](https://git.ligo.org/waveforms/reviews/imrphenomxo4)
### API Change...### Description
Creating the draft merge request to add the IMRPhenomXO4a model currently undergoing review here: [https://git.ligo.org/waveforms/reviews/imrphenomxo4](https://git.ligo.org/waveforms/reviews/imrphenomxo4)
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [x] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Review completed. For details, see [https://git.ligo.org/waveforms/reviews/imrphenomxo4](https://git.ligo.org/waveforms/reviews/imrphenomxo4)https://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2137Merge release branch2023-04-09T04:29:05ZAdam MercerMerge release branch### Description
Merges the packaging updates from the release branch (`release-20230407`) into `master`.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/...### Description
Merges the packaging updates from the release branch (`release-20230407`) into `master`.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Please provide details on any reviews related to this change and
and the associated reviewers.Adam MercerAdam Mercerhttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2126More Doxygen improvements2023-04-05T11:18:35ZKarl WetteMore Doxygen improvements### Description
1. Because Doxygen's parsing of (GitLab-flavoured) Markdown isn't great, use an external program (e.g. `pandoc`, `markdown`) to convert Markdown to HTML which is then directly included in the Doxygen docs. If a converter...### Description
1. Because Doxygen's parsing of (GitLab-flavoured) Markdown isn't great, use an external program (e.g. `pandoc`, `markdown`) to convert Markdown to HTML which is then directly included in the Doxygen docs. If a converter can't be found, Markdown is just included as verbatim text, so people can still build the documentation (e.g. to check for errors) without having to install another dependency. Because (GitLab-flavoured) Markdown is now never parsed by Doxygen, this will avoid silly errors like ba513ec4498249d0291ccec418595f7709c614f9 in future. Of course for the online documentation `pandoc` will need to be installed into the relevant containers.
2. Scrape `.gitlab/CODEOWNERS` to get the maintainers for each package, as well as the general LALSuite maintainers. Add these names to the Authors page (now Authors/Maintainers).
3. ~~Change the colour for unvisited hyperlinks so that they stand out more.~~
4. Some minor author list cleanups
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Please provide details on any reviews related to this change and
and the associated reviewers.Karl WetteKarl Wettehttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/1897part 2 of a large clean-up of lalmetaio and related code2023-04-04T06:37:10ZKipp Cannonpart 2 of a large clean-up of lalmetaio and related code### Description
In this patch set, "new"-style I/O functions are added for sngl_inspiral, sim_ringdown and sngl_ringdown tables. All relevant calling codes are switched to the new functions. This completes the conversion of lalsuite t...### Description
In this patch set, "new"-style I/O functions are added for sngl_inspiral, sim_ringdown and sngl_ringdown tables. All relevant calling codes are switched to the new functions. This completes the conversion of lalsuite to the integer-valued ID column format. Prior to these patches lalsuite had accumulated 3 distinct XML I/O APIs. This patch set converts lalsuite to the newest of the three, but does not yet delete the older APIs. Also, some parts of the older APIs are only used by a small number of programs (like, one), and new-style replacements are not provided for those components. In subsequent patches that remove the old APIs, those functions will be migrated into the programs that use them.
### API Changes and Justification
#### Backwards Compatible Changes
- [ ] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [X] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Not reviewed.Adam MercerAdam Mercerhttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2031Use static AUTHORS files; add lint job to check mailmap and AUTHORS files2023-04-04T04:51:44ZKarl WetteUse static AUTHORS files; add lint job to check mailmap and AUTHORS files### Description
The `lal*/AUTHORS` files are currently built dynamically; starting from the `lal*/.AUTHORS` files (which record names from the pre-Git history, copyright notices, etc.) and updating with names from the more recent Git hi...### Description
The `lal*/AUTHORS` files are currently built dynamically; starting from the `lal*/.AUTHORS` files (which record names from the pre-Git history, copyright notices, etc.) and updating with names from the more recent Git history. This can only happen if the full repository is available, however, and this is not the case for the GitLab CI runnners which only check out a limited history. As a result the `lal*/AUTHORS` appear not to be updated, as pointed out in #613.
This MR addresses this by committing the `lal*/AUTHORS` files as part of the Git history, so that they are always available in GitLab CI jobs for building packages, documentation, etc. To ensure the `lal*/AUTHORS` files do not become out of date, a `lint:authors` job is added which:
- checks out the full Git history;
- runs `make update-authors` at the top level; this updates the `.mailmap` file and the `lal*/AUTHORS` files, then checks that they are the same as in the Git history. If names are missing, the job fails and the user is asked to run `make update-authors` themselves and commit the results to the repository.
Closes #613
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
#### Review Status
cc @adam-mercer for approval. This will mean at least one CI job will try to download the full LALSuite Git history per merge request. When I've been testing this there appears to be minimal performance impact (the `lint:authors` jobs takes ~5 minutes) but I'm not sure if there are any other performance implications (e.g. disk space).
cc @david-keitel FYIKarl WetteKarl Wettehttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2117Doxygen: add navigation tabs to other LALSuite packages to each package docum...2023-03-29T21:53:49ZKarl WetteDoxygen: add navigation tabs to other LALSuite packages to each package documentation### Description
Two improvements to the Doxygen documentation:
1. Adds navigation tabs to other LALSuite packages at the top of each Doxygen documentation HTML page. This replaces the current hacky `iframe` container, which only works ...### Description
Two improvements to the Doxygen documentation:
1. Adds navigation tabs to other LALSuite packages at the top of each Doxygen documentation HTML page. This replaces the current hacky `iframe` container, which only works for the top-level documentation.
2. Add a proper landing page for LALSuite itself. To do this run, run the same Doxygen configuration as for the packages in a top-level `/doxygen` directory. The LALSuite documentation page only contains the top-level `README.md` and `CONTRIBUTING.md`, but also contains the same navigation tabs to other LALSuite packages. The search bar from the LALSuite documentation page will also find symbols in other LALSuite packages. (It was for the latter reason that the current `iframe` container defaults to pointing to LALApps, as the last in the dependency chain. Having a separate documentation page for LALSuite itself is a cleaner solution.) I also moved the _LAL Specification and Style Guide_, and the SWIG tutorial, to the top-level LALSuite documentation, and a more visible/easier location to find these (and other general-purpose documentation) than being buried in the library-level documentation hierarchies.
I also played around with the colour scheme, and ended up settling on a greenish tint (by using (20)15-09-14 as numerical colour values).
A screenshot probably makes the changes clearer, see below. Or you can browse a [documentation build](https://lscsoft.docs.ligo.org/-/lalsuite/-/jobs/2593119/artifacts/html/lalsuite/index.html) here.
![Screenshot_LALSuite_Main_Page](/uploads/e7f5c2dae8e7e5c75039158667f7005e/Screenshot_LALSuite_Main_Page.png)
![Screenshot_LAL_Header_SkyCoordinates.h](/uploads/8b53d41da12215a0931bc6de8d1b60a1/Screenshot_LAL_Header_SkyCoordinates.h.png)
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
#### Review Status
n/aKarl WetteKarl Wettehttps://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2111Update autotools2023-03-10T12:23:00ZAdam MercerUpdate autotools### Description
Updates the autotools to the latest versions.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header...### Description
Updates the autotools to the latest versions.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Please provide details on any reviews related to this change and
and the associated reviewers.LALSuite 7.14https://git.ligo.org/lscsoft/lalsuite/-/merge_requests/2110Merge release branch2023-03-07T01:04:52ZAdam MercerMerge release branch### Description
Merges in packaging update from the release branch.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C ...### Description
Merges in packaging update from the release branch.
### API Changes and Justification
#### Backwards Compatible Changes
- [x] This change does not modify any class/function/struct/type definitions
in a public C header file or any Python class/function definitions
- [ ] This change adds new classes/functions/structs/types
to a public C header file or Python module
#### Backwards Incompatible Changes
- [ ] This change modifies an existing class/function/struct/type definition
in a public C header file or Python module
- [ ] This change removes an existing class/function/struct/type
from a public C header file or Python module
If any of the Backwards Incompatible check boxes are ticked please
provide a justification why this change is necessary and why it needs
to be done in a backwards incompatible way.
#### Review Status
Please provide details on any reviews related to this change and
and the associated reviewers.Adam MercerAdam Mercer