Skip to content
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
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
75 changes: 43 additions & 32 deletions .dotstop.dot
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ digraph G {
"AOU-07" [sha=bff000a8ba9254956cdab9045e6f7b38e3019180eb95011cf8541e9928ad8d44];
"AOU-08" [sha=f25753b314cc921d175ffff9be39cf5a43bba651c5bdcba0f172aea02d792b34];
"AOU-09" [sha=adce35b590ac6450379cadba0c6cb38874626134066b06823c3c2d18f7ce2cc7];
"AOU-10_COMBINED" [sha="2f817117e3c548f1d22fcd798be116fdd5f0ed24ad4c923fc5e6a9b86bcca01d"];
"AOU-10" [sha="36eb0304bb55d055e342424424efa617b095b582d1e87d71818095dc1212ece7"];
"AOU-11" [sha="6a5174cee0e66070ab1c39a14c0aede872e56fb928555236ab3bffe1876b7048"];
"AOU-14" [sha="4bff38e002c0df47062d7ab632094ec5ee0377c0230647e7acd54945ea59ddac"];
"AOU-15" [sha=f4d2fdcacc3c3bd743af3ff5c2a08ceb650e59015ed846c35ddb4de104e80cec];
"AOU-16" [sha="4e08bac839cba01a4dc2a794bd2d1254d388945c6b79293684e00b9f8d03f31e"];
Expand All @@ -29,6 +30,7 @@ digraph G {
"AOU-26" [sha="b4b257a5dae03a485b041d4a83ba9dbe965841ccd0891f67ab3e7d8db6c09db1"];
"AOU-27" [sha="43da5040f2cab643f2bbb4a0abcf67fba91d68108786604f44f6ef6a91f6681a"];
"AOU-28" [sha="76887b683a1e5a2f36a029bf80c7489226d1728e6f148f69f7b2167211f1f443"];
"AOU-29" [sha="cb3302e313dae237d67bf249c61419232a83aa6245af30a0f33c795ab1b3a8f5"];
"JLEX-01" [sha="1cd16efee6db392909248a77c773e0c5aa76b4c05001ab0b981201004f2162b0"];
"JLEX-02" [sha=f40046dae47252d62f28c935db90460772263ced0fa9ed1a5e1383436b89daa9];
"JLS-01" [sha=dce41089598ceff4a3ce3df7a8d3d16183346b785d791d60c8292f51c055946d];
Expand Down Expand Up @@ -57,6 +59,14 @@ digraph G {
"JLS-25" [sha="8bb517191450f370679dbafd85342e1bbcf797cc84f2a6f1fc119568b534d5e0"];
"JLS-26" [sha=cf1b73b375697ee56d9788aab79ed01b2730b126a2cc4d7041c9525113e7ed7c];
"JLS-27" [sha="efd4b438331c155eebaec96cd1eda337567794f8696b327562aaaed5fa8ded69"];
"JLS-28" [sha="40fac5685e2d4ca1e4736323cba527340d6164b2193e4a43379f6aff0263ac61"];
"JLS-29" [sha="b19382add018e4356ff2cd5be50d0fae4c1b4f6e5ce90f643789a5b851a12cb4"];
"JLS-30" [sha="42dbffcdacb67e9af2bd338a1334ca5041d2f51ac48889f7eefd5a5548ed7e91"];
"JLS-31" [sha="2b941deedbdeff697d063b3f1cf2f97340bff79f16f934bb8be21824e8ccd5c9"];
"JLS-32" [sha="1ae95153e4082a8aec30a54b320ea8b16b77ed62429a7832718f575fa8ac8fdf"];
"JLS-33" [sha="16ebc7717e389ac1ca349ead591b4dc5b65997e8c5f78d58d6293cd75bbe0d28"];
"JLS-34" [sha="3484d9766deace45ecbc0d6892c7114ce7d97a51836399887500a318b3a88dc6"];
"JLS-35" [sha="b11006d1d5708c3aba84d4f06834ad965d6aebde8619306389a4f8fa655b2dcf"];
"NJF-01" [sha="548dc86014e093974f68660942daa231271496a471885bbed092a375b3079bd8"];
"NJF-02" [sha="6ea015646d696e3f014390ff41612eab66ac940f20cf27ce933cbadf8482d526"];
"NJF-03" [sha="4bd1f8210b7bba9a248055a437f377d9da0b7576c5e3ed053606cf8b5b2febe3"];
Expand Down Expand Up @@ -239,7 +249,6 @@ digraph G {
"JLEX-01" -> "WFJ-08" [sha="80844115bccc3a6e031decd0d622bb577e62b2c02a991de38a86092a451f2f66"];
"JLEX-02" -> "PJD-01" [sha="68498a21fedc131c632ea01e9940e3e31ddce311abcccb2326c12961512324aa"];
"JLEX-02" -> "PJD-03" [sha="85f84739619779248e1d3008f46a076fd8402b1f49b57c2c0bc7d061ac16dd85"];
"JLEX-02" -> "AOU-20" [sha="b947b86ce84de570c277c206b4ba9dbbe7de0e3f71eb04e7d64eda4537ce5c18"];
"JLS-24" -> "NPF-07.2" [sha="cf75897c7913bf41c032c8cd77f4acd3a0309202751ecc6924382733f2564d83"];
"JLS-24" -> "TIJ-01" [sha="45ca0773bac381a23a26760394c77a8ee56038c50efa8e163ea5cc9e33d44cac"];
"JLS-24" -> "TIJ-02" [sha="79c6b04115088c9e1736d97659efd0f8f1b492f023968d31f0936f3ac70a4c34"];
Expand Down Expand Up @@ -313,7 +322,6 @@ digraph G {
"NPF-02" -> "NPF-02.6" [sha="f9f443867b2d409022886cdbe313eba558c3eec74c651060c8bc4b2341191a11"];
"NPF-02" -> "NPF-02.7" [sha="892124444a73560a57b10331105799a41c3b4412ccef33b7c5d482a44668b7c9"];
"NPF-02" -> "NPF-02.8" [sha="4761f7058756c1442363d34153090e64620ffec37e654a4ddc5ab6b2a0b7f5d2"];
"NPF-02" -> "AOU-22" [sha="88a704324588f154e09ad5c64e0a4769300551715bd3fb475fe06f511a79082c"];
"NPF-02" -> "NPF-02.9" [sha="991cab68071d5ffad145936fed7101689f1f47f12c75521b5ba3d16d50cf6868"];
"NPF-02" -> "NPF-02.10" [sha="31d102a9b50cce35ed04b5216c93ed5345af9a4a998feddb839cfa3191717b47"];
"NPF-02" -> "NPF-02.11" [sha="d0c88c641531c561674336c9aff4ca5ede8ad135b3de10e1dcd258ba3e488f25"];
Expand All @@ -339,8 +347,6 @@ digraph G {
"NPF-07" -> "NPF-07.1" [sha="4e9d52c62edfcf9d7ce63f2a43169bf08ca74006c4cd2cc135ae6adae0f14be2"];
"NPF-07" -> "NPF-07.2" [sha="96f909184665c1931e931b4d899457f0e860580d0d466f9c5788b0e103d5c232"];
"PJD-01" -> "NPF-01" [sha="42e8865c09d75823bbc873a9cf5b6c4d22a5a2ca50173538985680599af5fc2d"];
"PJD-03" -> "AOU-21" [sha="7ca07bad956c4dfb8fa13e8ae7172e35c0a9ba61925cac3f35a97141d9c1ae81"];
"PJD-03" -> "AOU-05" [sha="3c09e1f568c9e3f35f12077c192b36664177b58450cc18d2ac47c0027c29ce8b"];
"PJD-03" -> "NPF-02" [sha="93bac5a2600a55fab08a83b929b0c413b467c517b5335a64d7b3cf453696f132"];
"PJD-03" -> "NPF-04" [sha="cf8ab9711b44c48641b0eb80aaa89813bfbc1d03d13c0f89303f9d570ff1cd26"];
"PJD-03" -> "NPF-05" [sha="f98b9078f5bc79010b4a1fadee1d11b8c7304b42a86d9b0ed8778f6e805a3189"];
Expand All @@ -349,61 +355,66 @@ digraph G {
"PJD-03" -> "NPF-03" [sha="f9e040e4e39bbde5db6927301afa3119c16f8534abb2d5497d1a6e07d4188b33"];
"PJD-03" -> "PJD-02" [sha="34c3d9163590aec428486eef28fa3895a3c425b2ceb826d3c1d592d34eefe14e"];
"TA-ANALYSIS" -> "JLS-17" [sha=eac76c7d417f623d9dd1a220fc0b3ec6e2c2b9e16781eefae6d21dbd35d1402d];
"TA-ANALYSIS" -> "AOU-19" [sha="794dc70c6c38b917155e2755fbbb54b68eeb548675cc7916ffcced8c89cf4a45"];
"TA-ANALYSIS" -> "JLS-26" [sha="250c8c20314a242c1daac1278ef5a96d97bce8d943318430a91ee30580b5b29d"];
"TA-BEHAVIOURS" -> "JLEX-01" [sha="8cd931ef61b7012140344adf54469e943bfc690ee54f12db12777464880061db"];
"TA-BEHAVIOURS" -> "JLEX-02" [sha=cb26451e31a56b1eb51a4d45283ba4a7c6e898efbd045b59cba10d3c6aa093de];
"TA-BEHAVIOURS" -> "JLS-03" [sha=cf9211c07452914cb2d0b455f859b26cb2724423eae5187e8cbfdff06d1b5ba3];
"TA-BEHAVIOURS" -> "AOU-23" [sha=""];
"TA-BEHAVIOURS" -> "AOU-24" [sha=""];
"TA-BEHAVIOURS" -> "AOU-25" [sha=""];
"TA-BEHAVIOURS" -> "JLS-27" [sha="9c3e4b4a4677ca22f28e2bb0cbc39c31676efa4c17ddc1fe66599589b83ef643"];
"TA-CONFIDENCE" -> "JLS-08" [sha="506164051180023c8533ea1f6dedf1bad894c3ee6020ff16b002e33b109c2791"];
"TA-CONFIDENCE" -> "JLS-09" [sha="80bbde95fc14f89acf3dad10b3831bc751943fe4a1d79d5cbf4702416c27530f"];
"TA-CONFIDENCE" -> "AOU-10_COMBINED" [sha="5e5d7dc606d53423fbb1f2d5755780c98839bdc2d108704af5ee1aed50403f5e"];
"TA-CONFIDENCE" -> "JLS-20" [sha="1bfd214ab8186a3c095262ae503451b8d71ada8db5b13ecc7b906739a05bc102"];
"TA-CONSTRAINTS" -> "AOU-04" [sha=d945870431e9311e317c6ddcac094825c2a9cbcecad961f4e283114db91cf27e];
"TA-CONSTRAINTS" -> "AOU-05" [sha=f741ce87385dbed50a6582443907645d70790b5fd0d423b18c3a109d400c7ef1];
"TA-CONSTRAINTS" -> "AOU-04" [sha="9466008edc5257d5d6ad6cae05eadbd7e6c63ed10f45f9bbe9166dc5af5db294"];
"TA-CONSTRAINTS" -> "AOU-05" [sha="ead38077bd84ce52bc7ce9ab1be36ef6d1b62aa7bd30b2a5d5eea3aedfe9da3c"];
"TA-CONSTRAINTS" -> "AOU-06" [sha=bb3ac58ca7f67d9676503a6c71660abd650268e02d6773cb57dfa07d0743fb40];
"TA-CONSTRAINTS" -> "AOU-07" [sha="20a82289bbbdf1a9a011afb8b3100c8c14813d36d8bbc019ad017b1b4f4917c7"];
"TA-CONSTRAINTS" -> "AOU-14" [sha="2fbd87f1b62fa9716033289b62dd7ce94d6e6c8ae5af05e788089f0868ad2dd9"];
"TA-CONSTRAINTS" -> "AOU-16" [sha="01c713a52bad483af02c1f84cbc37ff3fa86e59cf62b53ba66d82a07c65b38d3"];
"TA-CONSTRAINTS" -> "AOU-20" [sha="73f6bc2b0daeada53e73bc7ccffd97210de4bbb75b4639ac5c587bb773ff6c57"];
"TA-CONSTRAINTS" -> "AOU-21" [sha="431dd28d9dcebfa9a78e93b9a8c47cfb9e8766c579dcd1e13f3b40826b40863a"];
"TA-CONSTRAINTS" -> "AOU-16" [sha="c282ac22782f79b8f05c90d0c19193d7843b5e76dbdf6ed3d7efe6e0055b90be"];
"TA-CONSTRAINTS" -> "AOU-20" [sha="2827fadc5577feceaad0eec452dd2e561cadb3a9161fdcd40b126a049a36a772"];
"TA-CONSTRAINTS" -> "AOU-21" [sha="f2624c417be0c4cbeaaa87df2116c0f75ac1a5e7837d6a40b1625a816f9397c8"];
"TA-CONSTRAINTS" -> "AOU-01" [sha="595da090bb31bf9286c8bb439dcc0cc683ad44639dbdd723dd2cb18d23b7402c"];
"TA-CONSTRAINTS" -> "AOU-02" [sha="6c0717196dfa3eb65a762e157111e3e070204159c3f73dfda1cb5571d77d5806"];
"TA-CONSTRAINTS" -> "AOU-03" [sha="6f2926b8706b8c16f572643ef2dade3a98c4d4a74b559e6c54a168ccd5812b72"];
"TA-CONSTRAINTS" -> "AOU-08" [sha="9a882832edbca00f96ff5ec4d3d0e52632e4ec479bd536e8b7af1e0faeed9b1d"];
"TA-CONSTRAINTS" -> "AOU-09" [sha="b47001a26392bd151e4a03feccb198c74fdfbdfaeb055fd682b59e6b92f0bed5"];
"TA-CONSTRAINTS" -> "AOU-15" [sha="936c697c984cfadd07db6e2eef5a3f5f540c57d099c7a773c00e551ea15bdf7a"];
"TA-CONSTRAINTS" -> "AOU-17" [sha="b9866189c44d25116cc7cd47432546f8ea2b3aee0b493b364a89872e11957a69"];
"TA-CONSTRAINTS" -> "AOU-18" [sha="ca8930b0d06ea3987a85112508f49cfaf1cf77d9a405535f3173975175f15d78"];
"TA-CONSTRAINTS" -> "AOU-19" [sha="ef2ca2a552493258538bf72c975d4c0ec711cea193adb804765feea86382ec0a"];
"TA-CONSTRAINTS" -> "AOU-22" [sha="54608fda93406fa3546c2d38ef09d34f7252e2c40bb6bc982decf762ab1c68f0"];
"TA-CONSTRAINTS" -> "AOU-23" [sha="6a9aa9e8b107c684e68b21b44c363185c5f0668c39307a00758781d65f3e61d4"];
"TA-CONSTRAINTS" -> "AOU-24" [sha="f75b547858afa4495079cc6c7045603b4775308258710ae92141efb696a72505"];
"TA-CONSTRAINTS" -> "AOU-25" [sha="68410751488de4c1d3c04505bcc58eaabdce60cda5169843b80aff5697567258"];
"TA-CONSTRAINTS" -> "AOU-26" [sha="4a2f5289772c2edf42e724049882ab75620e2655aa455314a651ff9566e5b70d"];
"TA-CONSTRAINTS" -> "AOU-27" [sha="20a7c1f193b7ca51e90d90fc1ea91f5c38c0c008bb236f97b9137c250e038fb9"];
"TA-CONSTRAINTS" -> "AOU-28" [sha="049d4d8cbdd75d679f8855f2733b3781f7b6b8d70d56f4fecffd5951fff6063d"];
"TA-CONSTRAINTS" -> "AOU-29" [sha="278f1a8cacd32b255fafdbac1db71a692029a838859bb7c7227435fd85298ab2"];
"TA-CONSTRAINTS" -> "AOU-10" [sha="54e2cf65bcc7544eda66fd5aca9763008a094dd7389db2463b28c81e1c586375"];
"TA-CONSTRAINTS" -> "AOU-11" [sha="376c75481202bdc4c6d8f9073f5173ab307859b0495735b204de05e58ef2742c"];
"TA-DATA" -> "JLS-18" [sha=af2567d28552ab32643e995a9c9c9fd73b2208ce3d5255fba333c8ddd28f72a6];
"TA-DATA" -> "AOU-18" [sha="73d7522a8fd85c9a298a2c42e683dad929b4ea95d39ecd9dc697ce6a49f98e47"];
"TA-FIXES" -> "JLS-05" [sha=ed0acae690ee7d09884c0e7516c9d2306c646c7d14423d4b69719e9dfa49dff6];
"TA-FIXES" -> "AOU-01" [sha=e53324d9bd33dad5115d944734a752e98c89066fad91fc0aaef6f190227f3109];
"TA-FIXES" -> "JLS-04" [sha="873b8bbdac8d45772d9b2d46adbafe7ab75b96a45ca12a15b34bdf813b0bb1df"];
"TA-FIXES" -> "JLS-11" [sha=c0e08a276ecbf04e06b17803e5dfbcb39689ccc0a92750caf968b612f64cfe4a];
"TA-FIXES" -> "AOU-10_COMBINED" [sha=aa80be81d48f337c4ccf001a1ae40b617184e7d372bf3bc6750ee39842c427a5];
"TA-FIXES" -> "AOU-28" [sha="70e2cd1c183725b028f00d639c3971021bad36e92f5bce05d7aa75e7bc78caea"];
"TA-INDICATORS" -> "AOU-09" [sha="8f9cd7e96e610e0c19019c21a0fbfc3144bb69730b91e1eeed99bc828d8c7d95"];
"TA-FIXES" -> "JLS-30" [sha="2d27bb7a8d115044c2365a4a5da9d8ec684de189cf905b6d36f7070a4560c3ed"];
"TA-FIXES" -> "JLS-29" [sha="90b02f12c24f139d76067af519460332bffe7a6838aa95890d7c63a2f91ea6e0"];
"TA-FIXES" -> "JLS-28" [sha="9d873f973d068b1f171bb71a49afdaad0aa1fa910d5103632645d6a228d0b7a4"];
"TA-FIXES" -> "JLS-33" [sha="965714f76be3c687658309b5e02b22229249e76e8842aa55eb22e061302cd14a"];
"TA-INPUTS" -> "JLS-04" [sha="262db6d430e99ef3a23645c93a1cc5bda1270ceba90b4d8cccb40b1eb85e9860"];
"TA-INPUTS" -> "AOU-10_COMBINED" [sha=acbe0ff6ae16b6bbaf26364429188a3dc19012bfa45eeb79f0aab8c0979c172d];
"TA-ITERATIONS" -> "JLS-10" [sha="6e77b132d4159d65e261e90466537dbf44edc643b44c0671b8c40b994ef08590"];
"TA-ITERATIONS" -> "JLS-19" [sha="9bc13b823f8b49d742b92a8aaf18b8aeb2bb9b0749f4b6dead241af85aea876c"];
"TA-METHODOLOGIES" -> "AOU-10_COMBINED" [sha="2aac71e987a5b6a5d88700e08fe197fbec1e57681f0c3d3f51e59c705b4a0549"];
"TA-METHODOLOGIES" -> "JLS-13" [sha="4e2fb7871a608c98d11b10f4ca4391d69b360419c6a9e1baf7cb40b980fc9e94"];
"TA-MISBEHAVIOURS" -> "JLS-02" [sha="532ddabfefb6664d9731084a44df220d1ebdb9f840760d7c471cf04dfc8e96ef"];
"TA-MISBEHAVIOURS" -> "JLS-24" [sha=e8de01ff7c316debcd96afa4b3b6b62be73522e4531214c18b3ad7eec826275e];
"TA-MISBEHAVIOURS" -> "JLS-25" [sha="56ba396580f90e5a10fd5adfe33864921537d47e21b215a8faf531855af40ecd"];
"TA-MISBEHAVIOURS" -> "AOU-17" [sha=fa9a6619765a642b0ac4e13a62b5415b81830a03073cc126939feddc3330fa58];
"TA-MISBEHAVIOURS" -> "AOU-24" [sha=""];
"TA-MISBEHAVIOURS" -> "AOU-23" [sha=""];
"TA-MISBEHAVIOURS" -> "AOU-26" [sha=""];
"TA-MISBEHAVIOURS" -> "JLS-31" [sha="ff3352e20146a81904da6d8d94b003b4e0acbc2a8a63a73ea017ea0535e45e79"];
"TA-RELEASES" -> "JLS-14" [sha="1202b9934353436fba927de6762cf62a8fc23ab0815a3c06f9d0a77b55830720"];
"TA-RELEASES" -> "JLS-21" [sha="5d57d2b547a841bb31f29034b785d9bec1ffb0e495d80e0e356a54391aa22e1b"];
"TA-RELEASES" -> "AOU-08" [sha="553e265d835b353b298ce4adf3bdf0b81ff777e38bfa3e42f2a465f33e27644e"];
"TA-SUPPLY_CHAIN" -> "AOU-02" [sha=cde3adf7a14be6786f9ec48a32f619426ce78727ae0dca48e1064cb5625abbf3];
"TA-SUPPLY_CHAIN" -> "AOU-03" [sha="2c4b421554b95a604a631d77b854839468f09da2b71a5960e4773f626e8c8a32"];
"TA-SUPPLY_CHAIN" -> "JLS-23" [sha=fe2b810e22c4da9911266183bc8679a56d8dd2d5a76624cd1f3ee329d9b93a08];
"TA-TESTS" -> "JLS-16" [sha=a4143b13d9ae2553534457603bdca9beb6cca0ee5b8b9bae50cefa97d2519702];
"TA-TESTS" -> "AOU-15" [sha=d4fef1c406b26cb7a3b303632f882c982bfedab6c18f4aca38be576219587011];
"TA-UPDATES" -> "JLS-06" [sha="7386ba4dfdca14a2b0c73b6b759ddeee66e0196f164322d552c2867e5c7a4b96"];
"TA-UPDATES" -> "JLS-07" [sha="9256bec79e828b44dd12d4298483bbab7ab24a1eb542c133ee5392ee5829cb7f"];
"TA-UPDATES" -> "JLS-12" [sha="45b7cf8eebee7a35ba39b3f990cefe3cbfd79c5f74415c5321026d64d89f5703"];
"TA-UPDATES" -> "AOU-27" [sha="e99b10433deaf54f284bc321731ae2e3f26b8a53a47926e0ba6ce9f576ac1cea"];
"TA-UPDATES" -> "JLS-32" [sha="65fb597f506b9ed6aa4ba992256b75c1415cd2237d6744e33f0ce5809b06a011"];
"TA-UPDATES" -> "JLS-35" [sha="08116185564ed13afb24d006b2c36349ed96f16d8d3e4ec64997b0b042b04186"];
"TA-UPDATES" -> "JLS-34" [sha="5bdd9ef19c9351c141aa86cc34ded4898b63d0e4e062041c2a6915a503aa5734"];
"TA-VALIDATION" -> "JLS-01" [sha=a3de6195b2fd041851e2e7b53376274fe5f06bc9642812dbc91f80dfd8763f9c];
"TA-VALIDATION" -> "JLS-22" [sha="464509465b1cf7045e3f94bbdca6dff5322c52f6a404d5cf02cc7249ce9bb75e"];
"TIJ-01" -> "TIJ-01.1" [sha="59d60a1c49c4a50d24614fc2e20e4a6304200fc31a3b75f8b77937f79fe838eb"];
Expand Down
32 changes: 29 additions & 3 deletions .dotstop_extensions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ in case of a custom description.

## TimeVaryingWebReference

The content of a `TimeVaryingWebReference` is given by the content of a changelog, whose default value is `ChangeLog.md`, which mirrors the changelog of nlohmann/json. This reference is intended for websites, whose content is constantly changing, so that a `WebContentReference` makes the item un-reviewable, but whose content at the time of an update influences the trustability. An example is `https://github.com/nlohmann/json/pulse/monthly`, which can be used to demonstrate that nlohmann/json is *up to the most recent version* under active development.
The content of a `TimeVaryingWebReference` is given by the content of a changelog, whose default value is `ChangeLog.md`, which mirrors the changelog of nlohmann/json. This reference is intended for websites whose content is constantly changing, so that a `WebContentReference` makes the item un-reviewable, but whose content at the time of an update influences the trustability. An example is `https://github.com/nlohmann/json/pulse/monthly`, which can be used to demonstrate that nlohmann/json is *up to the most recent version* under active development.

An example of the complete configuration for `TimeVaryingWebReference` is

Expand Down Expand Up @@ -235,6 +235,32 @@ references:
```
Here, the elements of the list `items` must be normative nodes of the trustable graph, otherwise an error is thrown.

## IncludeListReference

The content of an `IncludeListReference` is given by the list of `#include` lines extracted from a specified source/header file in the repository (for example `single_include/nlohmann/json.hpp`). This reference is useful to document which libraries a file depends on without embedding the full file content into the report.

Behaviour:
- content: returns the concatenation of all lines that begin with `#include` in the target file as UTF-8 encoded bytes. If no includes are found, the content is `b"No includes found"`.
- as_markdown: renders the found `#include` lines as a C++ code block (```cpp ... ```). If a `description` was provided when constructing the reference, the description is shown as an indented bullet above the code block.
- If the referenced file does not exist or is not a regular file, accessing `content` raises a ReferenceError.

Usage example:

```
---
...

references:
- type: include_list
path: "single_include/nlohmann/json.hpp"
description: "List of direct includes of the amalgamated header"
---
```

Notes:
- `description` is optional.
- The reference only extracts lines whose first non-whitespace characters are `#include`.

# Validators

Validators are extensions of trudag, used to validate any data that can be reduced to a floating point metric. The resulting scores are used as evidence for the trustability of items in the trustable graph.
Expand Down Expand Up @@ -270,8 +296,8 @@ evidence:
- "https://github.com/nlohmann/json/graphs/commit-activity"
- "https://github.com/nlohmann/json/forks?include=active&page=1&period=&sort_by=last_updated"
```
A response time of at least the five-fold of the acceptable response time is deemed inacceptable and gives an individual score of zero.
Likewise inacceptable is a response code other than `200`, which gives an individual score of zero.
A response time of at least the five-fold of the acceptable response time is deemed unacceptable and gives an individual score of zero.
Likewise unacceptable is a response code other than `200`, which gives an individual score of zero.

The total score is the mean of the individual scores.

Expand Down
57 changes: 57 additions & 0 deletions .dotstop_extensions/references.py
Original file line number Diff line number Diff line change
Expand Up @@ -951,3 +951,60 @@ def __str__(self):
title += "items "
title += ", ".join(self._items)
return title


class IncludeListReference(BaseReference):
"""
Reference that lists all #include lines in a given file (e.g. single_include/nlohmann/json.hpp).
Usage: IncludeListReference("single_include/nlohmann/json.hpp", "optional description")
"""
def __init__(self, path: str, description: str = "") -> None:
self._path = Path(path)
self._description = description

@classmethod
def type(cls) -> str:
return "include_list"

@property
def content(self) -> bytes:
if not self._path.is_file():
raise ReferenceError(f"Cannot get non-existent or non-regular file {self._path}")

text = self._path.read_text(encoding="utf-8")
includes = []

for line in text.splitlines():
# Only process lines that start with #include (ignoring whitespace)
if line.lstrip().startswith("#include"):
# Remove single-line comments
line = line.split("//")[0].rstrip()

# Remove multi-line comments
comment_start = line.find("/*")
if comment_start != -1:
comment_end = line.find("*/", comment_start)
if comment_end != -1:
line = line[:comment_start] + line[comment_end + 2:]

# Add the cleaned include line
includes.append(line.rstrip())

if not includes:
return b"No includes found"
return ("\n".join(includes)).encode("utf-8")

def as_markdown(self, filepath: None | str = None) -> str:
content = self.content.decode("utf-8")
if content == "No includes found":
return make_md_bullet_point(f"No includes found in {self._path}", 1)
md = format_cpp_code_as_markdown(content)
if self._description:
md = make_md_bullet_point(f"Description: {self._description}", 1) + "\n\n" + add_indentation(md, 1)
else:
md = add_indentation(md, 1)
return md

def __str__(self) -> str:
return f"List of included libraries for: {self._path}"

Loading
Loading