Releases: alandefreitas/mrdocs
master
🚀 Features
New features and additions
- undefined:
- ✨ Config YAML schema. () 1e162bf
- 💫 Support anonymous union members. () 8d8a007
- 🌟 Uniform logging level control across CorpusImpl. () 3f24987
- ✨ Html concept templates. () 9dd2f6d
- 💫 Embedded option.1 () decaf3e
- 🌟 Output base directory support for relative paths. () af97cfe
- ✨ Tagfiles. (fix cppalliance#650) be64902
- 💫 Asciidoc universal escaping. (substitutions: g based on passthroughs without universal escaping based on character substitutions: https://docs.asciidoctor.org/asciidoc/latest/subs/replacements/, fix cppalliance#763) e2ae861
- 🌟 MRDOCS macro. () 49849a5
- ✨
use-system-libc
option. (fix cppalliance#731) 1579517
- Handlebars:
- HandlebarsGenerator:
- 🌟 Builder: Relativize helper. () 80b1116
- ✨ templates: Common signature entry partial. () 3f0ddbd
- 💫 Config: Paths relative to secondary options. () 4bbf7ec
🐛 Fixes
Bug fixes and error corrections
- undefined:
- Infinite recursion when identifying SFINAE types. () 5750b79
- Missing template parameters in asciidoc templates. () a962db0
- Lazy object construct when atomic shared pointers are unsupported. () efe0620
- Handlebars unit tests are unrelated to is_multipage. () 9ef4c38
- Support SFINAE detection for compound types. () cc08383
- Deduplicate inherited members. () 91c6871
- HTML anchors are unescaped. () 9312ffb
- Overload set overview is unescaped. () 826295c
- Multipage section levels. () 36a9eb8
- Uniform signature code blocks. () 833dee2
- No relative asciidoc links.3 () 8693504
- Adoc multipage wrapper includes relfileprefix. () bcd8372
- Tables have no enumerator anchors. () 0e36580
- Use arguments to
\par
if available. () 03d1a75
- Path: Scoped temp directories use llvm's remove_directories. () 691ce1d
- Handlebars:
- HandlebarsGenerator:
- Generator: Propagate createDirectory error. () ece7e7d
⚡️ Performance
Performance optimizations and enhancements
- OverlayObjectImpl: Fold empty overlays. () 184448a
- Builder:
♻️ Refactor
Code refactoring and restructuring
- undefined:
- Drop bitcode support. () e6205d5
- Options are quoted in messages. () eaff684
- Split error message from source location in reports. (fix cppalliance#672) 446a41d
- Version command includes build. () f600633
- Compilation database ensures target. () 9871794
- Compilation database ensures std. (fix cppalliance#694) b5a36db
- Remove unused mergeInfos. () c072007
- Remove BitField/BitFlag. () c56dcae
- Temp directories use output path. () 1aca304
- Info nodes configuration file. () 9daf71f
- Lazy object mapping traits. (fix cppalliance#696) 9d30ea1
- Public settings initialize relativeto.4 () 59b3012
- Unify dom lazy array classes.5 () e919a61
- Dom::Value tag_invoke. () 2663199
- Dom::LazyObject tag_invoke. () de7f589
- Custom ValueFrom for Info types. () 4393f22
- Synchronize HTML templates. () 0823b48
- Simplify handlebars generators.6 (Generator: main reason the HTML Generator is always behind the Adoc Generator: simple features were not duplicated in the HTML generator. This even justified cppalliance#656, where we would temporarily remove the HTML generator., fix cppalliance#656) e6ee971
- Deduction guides for CTAD warnings. () efccb11
- Remove unused alias. () df43d87
- Generator reports time. () e24492d
- Single page references are fragments. () 1d253d7
- No intermediary buffers for wrapper template. () 5bc9f53
- Time report supports minutes. () 5cd44bd
- Modular ASTVisitor. () dee9fdf
- Platform: Support arm64. () d92de4e
- generate-config-info: Normalization via visitor. () a1fb8ec
- TestArgs: Reuse public config args. () 3a22947
- test: Remove unused lambda capture. () 70bff87
- LazyObject:
- DomCorpus: Inline operators. () 8d2948a
- Template: Remove unused parameter. () 6639b8d
- Generator: Build member function. () eb464a3
- HandlebarsGenerator:
- Handlebars: Distinguish ostream types. () 1efcc2e
- Builder: Is_multipage does not require helper. () 713b573
- Error: Error propagation uses Expected. () 0b4d669
- Radix: No redundant static. () fb7d6b9
📖 Documentation
Documentation updates and improvements
- usage:
- undefined:
- LazyObject: Update documentation. () c521719
- Scope: Include lookups in documentation. () b078bea
- generators:
- contribute: Workflow is partial. () 555e2c4
- demos: Enable HTML demos. () d38d3e1
🎨 Style
Code style and formatting changes
- Scope: Standardize indentation. () 0b9f944
📦️ Build
Build system and configuration changes
🧪 Tests
Test cases and testing-related changes
- undefined:
- TestRunner: Check Expected values. () 46a3152
🚦 Continuous Integration
Changes related to continuous integration
- llvm-matrix: Filter uses Node.js 20. () f3b33a4
- llvm-releases:
- releases:
- Test all releases. (fix cppalliance#671) 9348766
- Antora includes stacktraces. () 5e0f628
- undefined:
- Enable macos. (fix cppalliance#558) 390159e
- Fix package asset uploads. () d1c3566
- Demos artifact path is relative. () 62736e4
- Coverage workflow. () 1259131
- Check config schema is up to date. () cb18b87
- Remove info node support warnings. () 62f361f
- Enable html demos. () c46c4a9
- Containers install git. () 43e5f25
- Clang 18 uses ubuntu:24.04. () b3ac35d
- Fix file count report. () c376277
- Export SSH_AUTH_SOCK. () 3470b10
🏗️ Chores
Routine tasks, maintenance, and housekeeping
- undefined:
- Bump LLVM commit hash to dd7a3d4 (cppalliance#728). () e41d780
- Version is 0.0.3. () 31dd6e8
💬 Other
Other changes not covered by specific categories
- null:
- Unify traverse functions.[^11] () 938b673
- InfoTypeFor trait.[^12] () f225a4f
- Support file inputs.[^13] () 75b1bc5
- Map translation units to global namespaces.[^14] () 266f49c
- Info parent is not always namespace.[^15] () 7d8de21
- Corpus qualified name returns void.[^16] () f92f1f2
- Referenced-declarations default is
never
.[^17] () 9edf3ab - Corpus ordered traverse.[^18] () ed78539
- Info ExtractionMode.[^19] () f0adca7
- Info Attribute lists.[^20] () d92629d
- Template pre/post conditions are unordered lists.[^21] () 0e3c9a8
- Template param direction.[^22] () 963a387
- Requires clauses on their own line.[^23] () c6cc73c
- Declarators render unnamed symbols.[^24] () 9ddac83
- Friends use type declarator.[^25] () 96c42d5
- Tranches include namespace aliases.[^26] () 9662f27
- Support glob patterns.[^27] () 1b67a84
- Do not omit frame pointer in tests.[^28] () 723f34f
- Support doxygen-like filters.[^29] () 6841950
-
Like the asciidoc option, this option can be used to generate pages without the surrounding tags to include them in other documentation pages, like the mrdocs website. ↩
-
Some applications might need custom escape functions either because the output format is not HTML or because the application requires more strict HTML escaping. ↩
-
This fixes a warning when using initialization with designators. ↩
-
The DomCorpus uses multiple classes that represented lazy arrays. This commit simplifies the dom by unifying all of these array implementations. ↩
-
Apart from the DocVisitor, the Adoc and HTML generators are nearly 100% duplicated code.This commit unifies the standard code to remove duplicated code, simplify maintenance, and ensure that both generators always have access to the same features.In passing, many missing features in the HTML generator are now available. ↩
-
Unify code duplicated between build and buildOne. ↩
-
The Cmake example for header-only libraries compiles by replacing
OUTPUT_FILE
withTMP_CPP_FILE
. ↩ -
Generate yaml schema as part of the custom target. ↩
-
The previously hard-coded paths only work on ubuntu. On windows and macOS, these paths don'... ↩
develop
🚀 Features
New features and additions
- ✨ Javadoc reference parser. a95ddca
- 💫
warnings
option. 5185e7c - 🌟
extract-all
option. (fix cppalliance#758) 7681b72 - ✨
warn-if-undocumented
option. (fix cppalliance#758) baa64ff - 💫
warn-if-doc-error
option. bc7bd3a - 🌟
warn-no-paramdoc
option. bc809d5 - ✨
warn-if-undoc-enum-val
option. 7669da0 - 💫
warn-broken-ref
option. 6412c80 - 🌟
warn-as-error
option. ca8bbbe - ✨ UndocumentedInfoSet stores InfoKind. 82eaeec
- 💫 Copydetails command copies unambiguous metadata. 43973cb
- 🌟 Ordered warnings. bc51965
- ✨
extract-private-virtual
option. 7e99c39 - 💫
extract-static
option. c69f121 - 🌟
extract-local-classes
option. da038da - ✨
warn-unnamed-param
option. 37786fd - 💫 Overloads javadoc. 0e8b79f
- 🌟
extract-empty-namespaces
option. 99bf927 - ✨ Javadoc ref parser supports function parameters. 2f73713
- 💫 Best match corpus lookup algorithm. c824c82
- 🌟 Overloads support return type. 52c934d
- ✨ Support multiword refs. 7d65be3
- 💫 Refs match conversion operators. b76c8ba
- 🌟 Javadoc parser extracts ref qualifiers. 2e61695
- ✨ Ref parameter match supports arbitrarily qualified names. 4a40e18
- 💫 TypeInfo identifies fundamental types. f5e3421
- 🌟 Refs match fundamental type variants. 7263e51
- ✨ Ref parser supports template arguments. fcffff5
- 💫 Corpus lookup matches template arguments. 8fe596e
- 🌟 Merge function parameter names from multiple declarations. 3497b03
- ✨ Javadoc mapping traits. 2e64221
- 💫 Preprocess related symbols. f069410
- 🌟
auto-relates
option. bd9d684 - ✨
extract-implicit-specializations
option. b1d3f24 - 💫 Inherit base class overload sets. 4550326
- 🌟 Support implicit templates. (fix cppalliance#868) 572a465
- ✨ Templates include base classes. d59c28f
- 💫
auto-function-metadata
option. 01c5e15 - 🌟 Records store friends as relationships. 5ee5c49
- ✨ Friend table templates include qualified name. 76bc993
- 💫 Support @relates (cppalliance#698). (closes cppalliance#243) d448757
- 🌟 Print external commands. (fix cppalliance#914) 5aa5691
- ✨
extract-friends
option. (fix cppalliance#910) 3e9c1aa
🐛 Fixes
Bug fixes and error corrections
- Logical operator precedence. eb431cf
- Unique_lock is not CTAD. 541d80c
- Preemptively identify detail parents. 54f2118
- Inherit-base only applies to regular symbols. 65cdf3e
- Inherit-base skips special functions. b29ba25
- Info merging uses derived classes. 1e8d691
- Group overloads per access level. 287e588
- Specialization title links wrap correct components. 99d0dd2
- Asciidoc anchors cannot start with numbers. b8dacc3
- Handle constructor from reference to array. 31f7d46
- Use after free returning string_view bound to local string. be24cfe
- Warning message about missing return description. b7917af
- Move an include of to where it belongs.1 1a5b15a
- Pass unsigned chars to the cctype functions.2 becda0c
- Destructors cannot have overload sets. 00b56e9
- Replace uses of deprecated has_formatter. 26d4c50
- Repopulating TArg doesn't push back. 474032d
- Populating RecordInfo identifies duplicate friend IDs. (fix cppalliance#925) e4a4a15
- Record friends exclude implementation defined symbols. (fix cppalliance#924) 5372fdf
- Explicit object member functions have no qualifiers. 502bf32
- Update symbol name log level. 9cbaca5
- CMake uses adjusted output dir. e2474cd
- Detect base member qualified overloads. d6b2970
- Redundant Decls use least specific extraction mode. 1cbeee6
- SpecializationInfo is unused. e0a9479
- Adoc anchors use link macro.3 747e6a7
- No breadcrumbs in signature declarators. (fix cppalliance#827) 3606a89
⚡️ Performance
Performance optimizations and enhancements
- Cached symbol lookup. af93d8d
- Preprocess javadoc metadata. 1ab842d
- Store whether record is CXXMethodDecl. 30b5486
- Explicit partials for symbols as text. 840537d
♻️ Refactor
Code refactoring and restructuring
- GetPrimaryLocation depends on InfoKind. 113a57e
- Option name is
extract-private
. 7c0c618 - Option name is
extract-private-bases
. cee3fbe - Option name is
extract-anonymous-namespaces
. e5f0bd3 - Source is constexpr. b2bafb8
- IsDefinition and isDocumented are clang helpers. 887c332
- Sorting operators last includes stream operators. 3fe5287
- Modularize error header. b1676a5
- Single InfoNodes.inc. 1548967
- Remove unused MetadataFwd.hpp. 78a4394
- Relocate Lib files. 8e2dbdd
📖 Documentation
Documentation updates and improvements
- Option key conventions. f843cc2
- Remove c processor extension. 9eec331
- Documentation glitches. 7a4e1c3
- One-liner installation instructions. 1a9de28
- Set up @asciidoctor/tabs in UI bundle. c8095b5
- Update manual installation instructions. c71a28d
- Documentation for Polymorphic default deleter. 77cea7c
- Describe dependency refresh. 61d6e7b
🎨 Style
Code style and formatting changes
- Source warnings are numbered. 0719850
📦️ Build
Build system and configuration changes
- Bootstrap script.4 521cc70
- Bootstrap uses another path for mrdocs source when not already called from source directory. e32bb36
- Bootstrap build options list valid types. e7e3ef5
- Bootstrap prompts use colors. 75c28e4
- Bootstrap removes redundant flags. c156a05
- Bootstrap runs tests in parallel. c14f071
- Unused cli option is not a warning. (build: unused cli option is not a warning) 994dd25
- Llvm build dir is in llvm-project root. 52e4fe4
- Bootstrap paths use cmake relative path shortcuts. 76611f9
- Use new CMP0111 policy. 111926d
- Duktape default package name is lowercase. a805e12
- Remove dependency on fmt library, using std::format instead (cppalliance#929).5 5e97515
- Remove fmt from bootstrap.py. 6e12444
- Bootstrap generates debug configurations. 502cfbd
- Bootstrap dependency refresh run configurations. b546c26
- Bootstrap documentation run configurations. 83525d3
- Bootstrap remove bad test files run configuration. ee1b7da
- Bootstrap website run configurations. 2cfdd19
- Bootstrap MrDocs self-reference run configuration. ca4b04d
- Bootstrap XML lint run configurations. b5f53bd
- Bootstrap supports custom compilers. 0a751ac
- Require libc++ and clang headers.6 6e5f80c
- LLVM runtimes come from presets. ff62919
- Bootstrap debug presets with release dependencies. 2b757fa
- Installation workflow uses Ninja for all projects. 0d179e8
- Installation workflow supports sanitizers. 3d8fa85
- Installation workflow supports homebrew clang. e5a089c
🧪 Tests
Test cases and testing-related changes
- Independent copydetails tests. 352cd77
- Modularize symbol tests. f5cf9d8
- Friend tests are record tests. 9ccf054
- Copydoc param types. da3305b
🚦 Continuous Integration
Changes related to continuous integration
- Add newer compilers to the matrix.7 bf3f56b
- Remove extra git install step. bc01ac0
- Libxml2 build mode is static. 7fbe9f2
- Enable permissive coverage consistency check. 5df9834
- Disable check_data_consistancy when generating coverage reports.8 ebad2f7
- Add .run to gitignore. c3c6759
- Enable ubsan for clang and GCC. 3fd05bb
- Add clang UBSan and ASan to apple-clang job.9 73fadd7
- LLVM_ENABLE_RTTI is already set in presets. b997dec
🛠️ Improvement
General improvements and enhancements
- SourceInfo provides primary location. be736d3
- ASTVisitor handles source info independently from javadoc. 9decbdb
- Corpus lookup returns Expected. fb7e59f
extract-private-bases
default isfalse
. f6686c0- Corpus lookup returns references. 040b99d
- Namespace using directive is name.10 11df305
- Empty enum template has no members table. 2de0c4f
- Lazy decayed type comparison. e8c5b5a
- Parse support header. 1b3227b
- Javadoc visitor uses ref parser. 03d1917
- ScopedTempDirectory stores error type. fd2709b
- No unused template linebreaks. 37b782e
- Reserved legible names are automatically generated. 82ac48e
- Report symbol types. b055f05
- Merge mutually exclusive field and variable symbol types. ac00578
💬 Other
Other changes not covered by specific categories
- Correctly handle files included through symlinks. ff33c4b
-
The header was included in String.hpp, but that file doesn't use any ofits functions. However, ParseJavadoc.cpp does, so we add the includethere. ↩
-
Differently from their counterparts, the functions in and <ctype.h> have undefined behavior if their argument is notrepresentable as an unsigned char and is not equal to EOF. ↩
-
Asciidoc implementations of <<>> for anchors fail when the anchor text contains ">>", even when properly escaped. ↩
-
The bootstrap script provides a single source of truth for the installation steps described in install.adoc. ↩
-
This bumps the standard version to C++23, so that the
formattable
concept becomes available.This removes the color support fromdiff.cpp
, since that is notavailable in std::format. ↩ -
Make CMakeLists.txt enforce the requirement for libc++ and the clangheaders.Otherwise, it's possible for configuration to succeed but producea non-functional mrdocs, where the tests fail in non-obvious ways. ↩
-
This also:* Makes sure the ubuntu clang builds have libstdc++-14 installed, which is our minumum.* Bumps cpp-actions to v1.8.10* Use the newest Xcode for MacOS. ↩
-
This works around a post-merge-only CI failure. ↩
-
Also fixes sanitizer variable usage on llvm-basenameThe setting for LLVM_ENABLE_RTTI was also redundant, as it is always setby the cmake profiles. ↩
-
This allows using directives to dependencies. ↩