Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
454 commits
Select commit Hold shift + click to select a range
80a7115
Improve heartbeat replay logic and enhance field tracing in Minifiers…
colby-nyce May 1, 2026
c11a32b
Add PendingFieldTraceSink for enhanced field event tracking and updat…
colby-nyce May 1, 2026
8bd27aa
Post-test, post-sim trace comparison enhancements
colby-nyce May 1, 2026
0622cfb
Add trace metadata writing functionality to Collection class and impl…
colby-nyce May 1, 2026
444b2f7
Fix bug seen in UI when exactly tick is not in the Timestamps table d…
colby-nyce May 1, 2026
ce2fe2d
Add repro test to lock down failure seen in external simulator
colby-nyce May 2, 2026
c5825c1
Refactor ARGOS_FLATTEN macro to prevent naming conflicts in nested st…
colby-nyce May 2, 2026
ee030ff
Fixed python-side ARGOS_FLATTEN bug
colby-nyce May 4, 2026
548b9c3
Allow users to temporarily disable scalar collection
colby-nyce May 4, 2026
2b12876
Temporarily disable the data retriever cache
colby-nyce May 4, 2026
210eeab
Use 10-point monospace font for all grid-based widgets
colby-nyce May 4, 2026
3cf78f4
Add hex formatting support to Argos
colby-nyce May 4, 2026
fdcdd79
Fix bug in hex formatter python code
colby-nyce May 4, 2026
c688d48
Fix utiliz pct widgets bug
colby-nyce May 5, 2026
9620b2c
Fix all utiliz heatmap bugs
colby-nyce May 5, 2026
8945f44
ARGOS_COLOR_KEY plumbing
colby-nyce May 5, 2026
435c2af
Add auto-colorize key/field to schema for each collected struct-like …
colby-nyce May 5, 2026
af89d07
Python-side changes to support auto-colorizing rows
colby-nyce May 5, 2026
f432534
Fix negative test
colby-nyce May 5, 2026
3194d59
Tuple/pair detection type traits
colby-nyce May 6, 2026
f010a2d
Fix static_assert
colby-nyce May 6, 2026
72bbdf3
Consider collectable disabled if PipelineStager not set
colby-nyce May 6, 2026
fef3ef0
Refactor constexpr logic
colby-nyce May 6, 2026
21a01f1
Add tests to validate std::list collection
colby-nyce May 6, 2026
cda0f92
Refactor getNumElements
colby-nyce May 6, 2026
250e770
Remove unnecessary EnumDescriptor/EnumMember code
colby-nyce May 7, 2026
e34ceaa
ARGOS_FILTER macro
colby-nyce May 7, 2026
3401bc9
Support collecting pairs and tuples
colby-nyce May 8, 2026
f967821
Support collecting std::pair as a ScalarCollector
colby-nyce May 8, 2026
3b58d8b
Support HEX for int types in std::pair
colby-nyce May 8, 2026
787442b
Support collecting std::tuple
colby-nyce May 8, 2026
18065bf
Add testing to cover enums in pairs/tuples
colby-nyce May 8, 2026
499966b
constexpr helpers to restrict sparta::DataInPort collection; fixes lo…
colby-nyce May 8, 2026
c4b98be
Refactoring
colby-nyce May 9, 2026
ca28454
Add markUnsupported() API
colby-nyce May 11, 2026
5192e7e
Rename argos app directory to argos_old
colby-nyce May 13, 2026
ad172c0
New Argos backend implementation
colby-nyce May 14, 2026
ca5c9b4
HEX/OCT formatters
colby-nyce May 15, 2026
ec6a894
Various bug fixes
colby-nyce May 17, 2026
29cea96
Fix UI bugs
colby-nyce May 17, 2026
67ab061
Remove templates from the collectable classes
colby-nyce May 19, 2026
7f5ef71
constexpr case for string literals
colby-nyce May 19, 2026
793507d
Refactor: getScalarTypeName()
colby-nyce May 19, 2026
93db7a5
Remove dead code
colby-nyce May 19, 2026
adc4715
Support field collection for pair/STL types
colby-nyce May 20, 2026
d989b47
Add StreamBuffer catch-all append() api
colby-nyce May 20, 2026
5988aa7
Remove all old code
colby-nyce May 20, 2026
2395c21
Run clang-format
colby-nyce May 20, 2026
16f8862
Add missing virtual dtor
colby-nyce May 20, 2026
578c6d2
Get MetaStruct.hpp from Sparta
colby-nyce May 21, 2026
da4f8b3
Rename MetaStruct to TypeTraits
colby-nyce May 21, 2026
e42e935
Various bug fixes
colby-nyce May 21, 2026
a937ba3
Run clang-format
colby-nyce May 21, 2026
4e4a577
Make TypeTraits.hpp pass the standalone header github check
colby-nyce May 21, 2026
c590fc1
Fix some auto-colorization bugs in the Argos UI
colby-nyce May 21, 2026
6907cef
Fix some auto-colorization bugs in the Argos UI (scheduling lines wid…
colby-nyce May 21, 2026
913bfff
Add general-purpose notification system to Argos collection
colby-nyce May 21, 2026
f2beb82
Support collectables that only provide an ostream operator
colby-nyce May 22, 2026
4e4d625
Add metaprogramming utils to support cast-to-POD collectable types
colby-nyce May 22, 2026
b726e74
Notifications schema bug fix
colby-nyce May 22, 2026
370b809
PR self-review
colby-nyce May 22, 2026
21c8781
Put back missing TinyStrings API
colby-nyce May 22, 2026
0c95d2c
Fix regression due to operator<< collection support
colby-nyce May 23, 2026
e9692c1
Revert some incorrect changes
colby-nyce May 23, 2026
95682f8
is_dynamic_type helper struct
colby-nyce May 26, 2026
8543717
Track dynamic field dtype changes in the DB
colby-nyce May 26, 2026
ace1e52
Run clang-format
colby-nyce May 26, 2026
3a8f9d8
Split up the dynamic field/dtype info into two tables
colby-nyce May 26, 2026
b9b89a4
Remove old comment
colby-nyce May 26, 2026
a09530c
Throw if UNCOLLECTABLE
colby-nyce May 26, 2026
1022318
Refactor: PipelineDataTypes.hpp
colby-nyce May 26, 2026
1ab0cec
Refactor: Merge CollectableBase into CollectionEntryPoint
colby-nyce May 26, 2026
6883b9f
Refactor: Get rid of TimeT template classes; assume uint64_t
colby-nyce May 26, 2026
5337d33
Refactor: Get rid of the TimePoint class entirely
colby-nyce May 26, 2026
96ccefa
Refactor: rename time_point to sim_time
colby-nyce May 26, 2026
7b883d0
Refactor: use ValidValue over raw default-init int types
colby-nyce May 26, 2026
1b7cd25
Refactor: advanceStageTime_ logic
colby-nyce May 26, 2026
8c5f175
Refactor: remove unused heartbeat_ member var
colby-nyce May 26, 2026
f3cc798
Refactor: ArgosResources to fix various chicken-and-egg scenarios
colby-nyce May 27, 2026
d4efa50
Refactor: Redo the logic for merging temp TinyStrings with live TinyS…
colby-nyce May 28, 2026
6e153b7
Remove dead code (fix build)
colby-nyce May 28, 2026
3be80db
Templatize addResource() method
colby-nyce May 28, 2026
fd7f15f
Refactor
colby-nyce May 28, 2026
3455442
Move StreamBuffer to argos directory
colby-nyce May 28, 2026
a161fcf
Use new safe_weak_ptr class for runtime safety of ArgosResources
colby-nyce May 28, 2026
12d3cc0
Do not cache the CollectionData as it could have been reallocated
colby-nyce May 28, 2026
ccd42cc
Code simplification
colby-nyce May 29, 2026
b2df6d2
Fix TODOs regarding serializating enums
colby-nyce May 29, 2026
871fa28
Fix TinyStrings resource logic bug
colby-nyce May 29, 2026
9aee85e
Disambiguate pod_convertible_t resolution
colby-nyce May 29, 2026
5371ecd
Automatically send completed collections once time advances
colby-nyce May 30, 2026
43531c3
PR self-review
colby-nyce May 30, 2026
fa271b9
PR self-review
colby-nyce May 30, 2026
4016aa4
Fix setContainerDataType() bug
colby-nyce May 31, 2026
20641e8
Fix DataTypeNodes table
colby-nyce May 31, 2026
e3e4a89
DataTypeInspector python fixes to match DataTypeNodes schema changes
colby-nyce May 31, 2026
0ab221b
PipelineStager post-teardown metadata writes
colby-nyce May 31, 2026
68f24b9
UI improvements and bug fixes
colby-nyce Jun 1, 2026
f76bf4b
UI improvements and bug fixes
colby-nyce Jun 1, 2026
4497224
UI improvements and bug fixes
colby-nyce Jun 1, 2026
ca7ab9f
UI improvements and bug fixes
colby-nyce Jun 1, 2026
4c617e9
Add validation checks for collection safety / smoke testing
colby-nyce Jun 1, 2026
6d9dc2c
Add validation checks for collection safety / smoke testing
colby-nyce Jun 1, 2026
64d76fb
Add back missing api
colby-nyce Jun 1, 2026
1df3dca
Various bug fixes
colby-nyce Jun 1, 2026
8972f0a
Revert "Various bug fixes"
colby-nyce Jun 1, 2026
1e0ec11
Revert "Add back missing api"
colby-nyce Jun 1, 2026
2f87e1f
Revert "Add validation checks for collection safety / smoke testing"
colby-nyce Jun 1, 2026
818f085
Revert "Add validation checks for collection safety / smoke testing"
colby-nyce Jun 1, 2026
ca56356
Remove incorrect assertion
colby-nyce Jun 2, 2026
54a7735
Add stdout logging for collection point paths/types
colby-nyce Jun 2, 2026
97d9b33
1st submission for the performant blob parser/iterators
colby-nyce Jun 3, 2026
9105de3
Rename blob_parser.py to blob_iterator.py
colby-nyce Jun 3, 2026
8e8b962
Split up the iterator/handler code into separate files
colby-nyce Jun 3, 2026
7d5dc97
Add DataExtractionHandler class for faster data retrieval
colby-nyce Jun 3, 2026
2d1d525
Speed up DataRetriever.Unpack with BlobIterator
colby-nyce Jun 3, 2026
41ba5bf
UnpackRange API for scheduling lines widget
colby-nyce Jun 4, 2026
18eb18e
Use blob iterator for GetIterableSizesByCollectionID api
colby-nyce Jun 4, 2026
2e6eb01
Delete dead code
colby-nyce Jun 4, 2026
529ff74
Fix bug when selecting a tick that has no data
colby-nyce Jun 4, 2026
7f4e6be
Remove dead code
colby-nyce Jun 4, 2026
0d2147b
Implement HandleSkip
colby-nyce Jun 4, 2026
c29f30e
Remove HandleSkip - does not boost performance
colby-nyce Jun 4, 2026
6e23ce6
Fix scheduling lines ordering bug
colby-nyce Jun 4, 2026
a06b155
Enable drag-and-drop to display widgets from the Watchlist
colby-nyce Jun 4, 2026
42813bd
Fix default tab name when clicking Add Tab
colby-nyce Jun 4, 2026
845b2ab
Fix various UI bugs by using AuiNotebook over regular Notebook
colby-nyce Jun 4, 2026
d55a2ee
Cleanup
colby-nyce Jun 4, 2026
87e4d30
Fix flickering issues / scroll position bugs due to regenerating sche…
colby-nyce Jun 4, 2026
729de52
Add Scheduling Lines option to disable/enable all the tooltips
colby-nyce Jun 4, 2026
9c64fdc
Set dirty flag when opening the unsaved last session view
colby-nyce Jun 4, 2026
efcb927
Clean up some code
colby-nyce Jun 5, 2026
381cc3f
Add table dumper utility
colby-nyce Jun 5, 2026
dc2221a
Cleanup
colby-nyce Jun 5, 2026
37310f5
Add verbose flag for apps
colby-nyce Jun 5, 2026
88bfadd
Bug fixes and improvements
colby-nyce Jun 8, 2026
a0b6bec
Bug fixes
colby-nyce Jun 8, 2026
ae578ae
Various bug fixes and improvements
colby-nyce Jun 9, 2026
01dbeff
Remove unused code
colby-nyce Jun 9, 2026
b2e1d30
Keep all collectables in SimHierarchy. Still only show queues in NavT…
colby-nyce Jun 9, 2026
bc8d63f
Remove watchlist code entirely. Will be replaced with new widget.
colby-nyce Jun 9, 2026
d100352
Refactor NavTree into CollectableTree, QueuesTree, and ScalarsTree
colby-nyce Jun 9, 2026
05af2e4
Start filling in the Summary Views widget (watchlist replacement)
colby-nyce Jun 9, 2026
396f631
Fill in more code for the Summary Views, and add a post-sim warning s…
colby-nyce Jun 9, 2026
af381f4
Touch ups
colby-nyce Jun 10, 2026
b7bb079
Throw if INSERT method is misused
colby-nyce Jun 10, 2026
4fd5d63
Improve warning message for uncollected data
colby-nyce Jun 10, 2026
f7080d8
Bug fixes and SummaryViews improvements
colby-nyce Jun 10, 2026
547bee6
Improve the SummaryViews widget edit dialog
colby-nyce Jun 10, 2026
d4aaf24
Improve the SummaryViews widget edit dialog
colby-nyce Jun 10, 2026
d9f7866
Improve the SummaryViews widget edit dialog
colby-nyce Jun 10, 2026
8872082
Bug fixes (Argos UI)
colby-nyce Jun 10, 2026
69da24f
Bring back the Minifier class for DB size optimization
colby-nyce Jun 10, 2026
0ddc2d3
Add enableMinification() API
colby-nyce Jun 10, 2026
8d066a1
Remove unused API
colby-nyce Jun 10, 2026
4ef9528
Fix minifiers logic bugs
colby-nyce Jun 10, 2026
1ff47a0
Start PipelineStager/Minifier redesign
colby-nyce Jun 11, 2026
fa043e7
PipelineStager incremental redesign: MockCheckpoint
colby-nyce Jun 11, 2026
4be8d8b
PipelineStager incremental redesign: Scalar delta classification
colby-nyce Jun 11, 2026
79cf340
Temporarily disable ArgosCollector example while under redesign
colby-nyce Jun 11, 2026
bca717d
PipelineStager incremental redesign: Scalar checkpoints + ScalarCheck…
colby-nyce Jun 11, 2026
b3ccfb1
PipelineStager incremental redesign: Heartbeat + lifecycle
colby-nyce Jun 11, 2026
7383c52
PipelineStager incremental redesign: CheckpointPipelineStager
colby-nyce Jun 11, 2026
fa32636
PipelineStager incremental redesign: Remove legacy data structures / …
colby-nyce Jun 11, 2026
417a068
PipelineStager incremental redesign: PR self-review
colby-nyce Jun 11, 2026
31c05bd
Stub out some negative tests for now
colby-nyce Jun 12, 2026
1c40e3f
Fix failing TDD tests
colby-nyce Jun 12, 2026
f34a49c
Fix build failure
colby-nyce Jun 12, 2026
60ecc10
PipelineStager incremental redesign: Scalars cleanup. Start implement…
colby-nyce Jun 12, 2026
852f6dc
PipelineStager incremental redesign: Continue implementing contig con…
colby-nyce Jun 12, 2026
063f873
PipelineStager incremental redesign: Refactor into common code. Split…
colby-nyce Jun 12, 2026
8e06016
PipelineStager incremental redesign: Refactor checkpoint classes
colby-nyce Jun 12, 2026
823441f
Integrate CheckpointPipelineStager into ArgosCollector
colby-nyce Jun 12, 2026
4f8d6cc
Rename CheckpointPipelineStager -> PipelineStager
colby-nyce Jun 12, 2026
8f754bb
Write QueueMaxSizes table
colby-nyce Jun 12, 2026
db0583f
Add SqlQuery::select() overloads using std::optional
colby-nyce Jun 12, 2026
5071955
Add SqlQuery::select() overloads using std::optional
colby-nyce Jun 12, 2026
9bcd303
Add SqlQuery::select() overloads using std::optional
colby-nyce Jun 12, 2026
0fa0574
Use std::optional select() overloads in dumpTable()
colby-nyce Jun 12, 2026
0add449
Throw if NULL column found in a SqlQuery when the user did not use st…
colby-nyce Jun 12, 2026
86cf9a1
Fix formatting bug in dumpTable()
colby-nyce Jun 12, 2026
b06b69f
Reformat Notifications table for dumpTable() readability
colby-nyce Jun 12, 2026
667601e
Fix dumpTable() formatting bug
colby-nyce Jun 12, 2026
7b00be1
Remove dead code
colby-nyce Jun 12, 2026
340f549
Protect against exceptions during view file loading
colby-nyce Jun 12, 2026
918badc
Last commit for PipelineStager redesign
colby-nyce Jun 13, 2026
f906b74
1st draft of the new PipelineStager
colby-nyce Jun 14, 2026
e1506d0
PipelineStager full redesign
colby-nyce Jun 14, 2026
1ca4099
Perform record-based lookback for BlobIterator, not time-based
colby-nyce Jun 14, 2026
21ed001
Add collection support for multi-clock use cases
colby-nyce Jun 14, 2026
6d7daf8
Fix build failure
colby-nyce Jun 14, 2026
261430f
Remove conda requirement from unit test
colby-nyce Jun 14, 2026
1cbf2b6
Fix build failure
colby-nyce Jun 15, 2026
65544dc
Run clang-format
colby-nyce Jun 15, 2026
c926c82
Add option to switch to async delta encodings for Argos
colby-nyce Jun 15, 2026
86655eb
Use async delta encoding by default
colby-nyce Jun 15, 2026
000daa8
Add perf numbers to async encoding test
colby-nyce Jun 15, 2026
e16f178
Tighten tic/toc scope
colby-nyce Jun 15, 2026
7b89405
Fix async encoding release correctness via completion handoff.
colby-nyce Jun 15, 2026
122e315
Fix build failure
colby-nyce Jun 15, 2026
164b5d8
Incremental checkpoint chain stealing redesign for performance
colby-nyce Jun 15, 2026
ec83266
Revert "Incremental checkpoint chain stealing redesign for performance"
colby-nyce Jun 15, 2026
b3388af
Revert "Fix build failure"
colby-nyce Jun 15, 2026
4e79e17
Revert "Fix async encoding release correctness via completion handoff."
colby-nyce Jun 15, 2026
24ab30d
Revert "Tighten tic/toc scope"
colby-nyce Jun 15, 2026
c7b8ba9
Revert "Add perf numbers to async encoding test"
colby-nyce Jun 15, 2026
19c296d
Revert "Use async delta encoding by default"
colby-nyce Jun 15, 2026
b5a8320
Revert "Add option to switch to async delta encodings for Argos"
colby-nyce Jun 15, 2026
3c7b5f4
Put all PipelineStager checkpoint logic on its own thread
colby-nyce Jun 16, 2026
a08b3f8
Bug fixes and performance improvements
colby-nyce Jun 16, 2026
e281231
PR feedback
colby-nyce Jun 16, 2026
74bfd8d
Add new integration test harness for Argos collection, and general cl…
colby-nyce Jun 17, 2026
021dbf7
Remove unused variables
colby-nyce Jun 17, 2026
65e0b58
Remove REOPENED Argos action
colby-nyce Jun 17, 2026
910651b
Rename API
colby-nyce Jun 17, 2026
a643b72
Add Argos arch slides/SVGs
colby-nyce Jun 17, 2026
aa4d0be
Add more delta encodings to the collector to save disk space
colby-nyce Jun 17, 2026
2e6301c
PR self-review
colby-nyce Jun 17, 2026
a2dfbf6
Rename directory
colby-nyce Jun 17, 2026
67997a5
Fix build failure
colby-nyce Jun 17, 2026
9aaf876
Remove Cursor-generated arch slides. Will replace with new doc/book.
colby-nyce Jun 18, 2026
34fbb6c
Add detailed documentation for actions/byte layout
colby-nyce Jun 18, 2026
ebcbe71
Streamline SignedEnumMappings/UnsignedEnumMappings tables
colby-nyce Jun 24, 2026
2a30da7
PR self-review
colby-nyce Jun 26, 2026
064096e
Cleanup unused python code
colby-nyce Jun 26, 2026
cdb910e
PR self-review
colby-nyce Jun 29, 2026
143a8f8
UI improvements
colby-nyce Jun 29, 2026
7465441
UI improvements
colby-nyce Jun 29, 2026
55478cb
UI improvements
colby-nyce Jun 29, 2026
a5d6c1a
UI improvements
colby-nyce Jun 29, 2026
4f9fcba
UI improvements
colby-nyce Jun 29, 2026
f38e726
UI improvements
colby-nyce Jun 29, 2026
bafe79e
UI improvements
colby-nyce Jun 29, 2026
79bb90e
UI improvements
colby-nyce Jun 30, 2026
536bd56
UI improvements
colby-nyce Jun 30, 2026
8e431a8
UI improvements
colby-nyce Jun 30, 2026
ff5f06b
UI improvements
colby-nyce Jun 30, 2026
864db69
UI improvements
colby-nyce Jun 30, 2026
806157a
Delete dead code
colby-nyce Jun 30, 2026
dd1ec2b
UI bug fixes
colby-nyce Jun 30, 2026
b32c57c
Argos UI bug fixes
colby-nyce Jun 30, 2026
89a3043
1st draft of the SimDB ascii book
colby-nyce Jul 1, 2026
81432a4
Complete the SimDB ascii book. Check in HTML and PDF books and all .a…
colby-nyce Jul 2, 2026
7e969ba
Run clang-format
colby-nyce Jul 6, 2026
75fa47e
Remove TODO
colby-nyce Jul 6, 2026
cc69ad0
Remove TODO
colby-nyce Jul 6, 2026
edd28a6
Add option to hide empty rows in the Scheduling Lines widget to save …
colby-nyce Jul 8, 2026
2df6249
Various enhancements to the Scheduling Lines widget settings
colby-nyce Jul 8, 2026
c749ad7
Various enhancements to the Scheduling Lines / Queue Utiliz widget se…
colby-nyce Jul 8, 2026
4720dd9
Argos widget dialogs refactor
colby-nyce Jul 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/actions/regress.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,13 @@ if [ ${REGRESS_SIMDB} -ne 0 ]; then
echo "ERROR: regress of SimDB FAILED!!!"
exit 1
fi

# simdb_regress includes ArgosSmoke, though it runs relatively quickly.
# For github checks, this will run for several minutes to fully bash
# collection and deserialization.
make ArgosSmoke_10k
REGRESS_ARGOS=$?
if [ ${REGRESS_ARGOS} -ne 0 ]; then
echo "ERROR: ArgosSmoke FAILED!!!"
exit 1
fi
61 changes: 61 additions & 0 deletions docs/book/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# SimDB book — build with Asciidoctor (see README.md for install notes).
#
# make # same as make html
# make html # book.html
# make pdf # book.pdf (requires asciidoctor-pdf)

BOOK := book.adoc
HTML := book.html
PDF := book.pdf
PARTS := $(wildcard parts/*.adoc)
IMAGES := $(wildcard images/*)
SRCS := $(BOOK) $(PARTS) $(IMAGES)

ASCIIDOCTOR := asciidoctor
ASCIIDOCTOR_PDF := asciidoctor-pdf
ASCIIDOCTOR_OPTS := --failure-level=WARN

.DEFAULT_GOAL := html

.PHONY: html pdf check-asciidoctor check-asciidoctor-pdf

html: check-asciidoctor $(HTML)

pdf: check-asciidoctor-pdf $(PDF)

$(HTML): $(SRCS)
$(ASCIIDOCTOR) $(ASCIIDOCTOR_OPTS) $(BOOK)

$(PDF): $(SRCS)
$(ASCIIDOCTOR_PDF) $(ASCIIDOCTOR_OPTS) $(BOOK)

check-asciidoctor:
@if ! command -v $(ASCIIDOCTOR) >/dev/null 2>&1; then \
printf '\n*** Error: %s is not installed or not on PATH. ***\n\n' '$(ASCIIDOCTOR)'; \
printf 'HTML builds need the Asciidoctor CLI.\n\n'; \
printf 'Install (pick one):\n\n'; \
printf ' Debian/Ubuntu package:\n'; \
printf ' sudo apt-get install -y asciidoctor\n\n'; \
printf ' Ruby gem (no sudo; installs under your home directory):\n'; \
printf ' gem install --user-install asciidoctor\n'; \
printf ' export PATH="$$(ruby -e '"'"'print Gem.user_dir'"'"')/bin:$$PATH"\n\n'; \
printf ' Ruby gem (system-wide; needs sudo on most Linux setups):\n'; \
printf ' sudo gem install asciidoctor\n\n'; \
exit 1; \
fi

check-asciidoctor-pdf:
@if ! command -v $(ASCIIDOCTOR_PDF) >/dev/null 2>&1; then \
printf '\n*** Error: %s is not installed or not on PATH. ***\n\n' '$(ASCIIDOCTOR_PDF)'; \
printf 'PDF builds need the asciidoctor-pdf Ruby gem.\n'; \
printf 'There is no asciidoctor-pdf package in Debian/Ubuntu apt — use gem.\n\n'; \
printf 'Install (recommended; no sudo):\n\n'; \
printf ' gem install --user-install asciidoctor-pdf\n'; \
printf ' export PATH="$$(ruby -e '"'"'print Gem.user_dir'"'"')/bin:$$PATH"\n\n'; \
printf 'Or system-wide:\n\n'; \
printf ' sudo gem install asciidoctor-pdf\n\n'; \
printf 'Plain "gem install ..." without --user-install often fails with:\n'; \
printf ' Gem::FilePermissionError (cannot write to /var/lib/gems/...)\n\n'; \
printf 'Then run: make pdf\n\n'; \
exit 1; \
fi
Loading
Loading