{"id":17961653,"url":"https://github.com/expl0it3r/doxygencompare","last_synced_at":"2025-04-03T18:43:16.603Z","repository":{"id":216732094,"uuid":"742177629","full_name":"eXpl0it3r/DoxygenCompare","owner":"eXpl0it3r","description":"Compare two versions of the same API with Doxygen's XML output","archived":false,"fork":false,"pushed_at":"2024-06-04T21:43:33.000Z","size":13,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T21:36:21.868Z","etag":null,"topics":["api","documentation","doxygen"],"latest_commit_sha":null,"homepage":"https://duerrenberger.dev","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eXpl0it3r.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":"License.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-11T23:04:24.000Z","updated_at":"2024-12-31T00:47:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"89113730-da8e-49c9-a814-80fafd11799a","html_url":"https://github.com/eXpl0it3r/DoxygenCompare","commit_stats":null,"previous_names":["expl0it3r/doxygencompare"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eXpl0it3r%2FDoxygenCompare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eXpl0it3r%2FDoxygenCompare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eXpl0it3r%2FDoxygenCompare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eXpl0it3r%2FDoxygenCompare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eXpl0it3r","download_url":"https://codeload.github.com/eXpl0it3r/DoxygenCompare/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247060986,"owners_count":20877162,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","documentation","doxygen"],"created_at":"2024-10-29T11:09:54.333Z","updated_at":"2025-04-03T18:43:16.568Z","avatar_url":"https://github.com/eXpl0it3r.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Doxygen Compare\n\nCompare two versions of the same API with Doxygen's XML output.\n\nWhen you want to find out what has changed between two version of the same C++\nlibrary, you can have Doxygen generate the index as XML file, which can then\nbe imported by Doxygen Compare and determine what has been added or removed.\n\nThis was quickly put together as a proof of concept and may or may not be\nexpanded in the future.\n\n## Usage\n\n### Step 1 - Generate Doxygen Documentation\n\nUse the `-x` flag or set the `GENERATE_XML` variable in the doxygen file. This\nwill generate not just the HTML, or whatever other output you've selected, but\nalso create XML files with all the necessary information.\n\nFor now Doxygen Compare only supports the `index.xml` file.\n\nGenerate both XML files, for the old and the new API version.\n\n### Step 2 - Run Doxygen Compare\n\nDoxygen Compare offers the following parameters:\n\n```\n  -a, --fileA    Required. First doxygen index.xml file for comparison\n\n  -b, --fileB    Required. Second doxygen index.xml file for comparison\n\n  --help         Display this help screen.\n\n  --version      Display version information.\n```\n\nYou can run it for example like this:\n\n```\nDoxygenCompare.exe -a ../build2/doc/xml/index.xml -b ../build3/doc/xml/index.xml\n```\n\n## How It Works\n\n-   Doxygen provides with the XML output also XSD files, with which one can\n    generate C# classes\n    -   Run: `xsd ./index.xsd /out:class /language:CS /classes`\n    -   On Windows the `xsd.exe` can be for example located at: `C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.8.1 Tools`\n-   Doxygen Compare reads the two XML versions and matches via the classes,\n    namespaces, and function names to determine, what as been added or removed.\n\n## Enhancements\n\n-   [x] Detect attribute changes\n-   [x] Detect enum changes\n-   [ ] Detect enum value changes (filter by startsWith(refid)) - only for unchanged enums\n-   [ ] Detect function signature changes\n-   [ ] Additional automations, e.g. through GitHub Actions\n-   [ ] Different comparison result/output\n-   [ ] Support as library\n-   [ ] Publishing as NuGet package\n\n## Tooling Used / Required\n\n-   [Doxygen 1.11.0](https://www.doxygen.nl/)\n-   [.NET 8](https://dotnet.microsoft.com/en-us/download/dotnet/8.0)\n-   [XSD](https://learn.microsoft.com/en-us/dotnet/standard/serialization/xml-schema-def-tool-gen) to generate the doxygen C# class from the XSD\n\n## License\n\nThe code itself is available under 2 licenses: Public Domain or MIT -- choose whichever you prefer, see also the license file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexpl0it3r%2Fdoxygencompare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexpl0it3r%2Fdoxygencompare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexpl0it3r%2Fdoxygencompare/lists"}