Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release August 2024 #1230

Merged
merged 267 commits into from
Sep 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
267 commits
Select commit Hold shift + click to select a range
9cc365e
Update dependency sass to v1.77.5 (#992)
renovate[bot] Jun 13, 2024
25134d3
Update dependency @sap/cds-dk to v7.9.3 (#988)
renovate[bot] Jun 13, 2024
916fe4d
Data Privacy Updates (#945)
renejeglinsky Jun 13, 2024
faf4672
Update dependency com.sap.cds:cds-services-api to v2.10.1 (#1012)
renovate[bot] Jun 13, 2024
387364d
editing
renejeglinsky Jun 14, 2024
23bb275
Mermaid docs (#1014)
chgeo Jun 17, 2024
7116e37
doc(deploy): explain deploy --profile (#944)
joergmann Jun 17, 2024
c914b68
[cds^8] - Nodejs : rm req.user.<tenant/locale> compat (#953)
johannes-vogel Jun 17, 2024
98b3a40
[cds^8] No strings in INSERT.into and UPSERT.into (#966)
hm23 Jun 17, 2024
71ec6c5
doc(completion)(8.0): add fish shell entry (#989)
joergmann Jun 17, 2024
cf9da14
Remove cds.Subscriber from mock users (#1000)
ecklie Jun 17, 2024
a30d2c1
docs(java outbox): Show hard-coded value `ordered` for default outbox…
bugwelle Jun 18, 2024
b44fc73
fix(cds-env): Add missing newline in YAML snippet (#1021)
bugwelle Jun 18, 2024
c54e7f6
mention hdb_nodejs_threadpool_size (#1028)
David-Kunz Jun 18, 2024
c73064d
fix(java): Fix variable mismatch: `ctx` vs `context` (#1024)
bugwelle Jun 18, 2024
246f7a8
Remove CdsDataStore documentation from PersistenceService chapter (#1…
beckermarc Jun 19, 2024
a29263e
hard coded vs usr defined strlength (#1017)
hjboth Jun 19, 2024
b156a35
ci: Update `actions/configure-pages` to v5 (#1033)
bugwelle Jun 19, 2024
e4e378c
ci: Update `actions/checkout` to v4 (#1032)
bugwelle Jun 19, 2024
ba59772
ci: Update `actions/setup-node` to v4 (#1031)
bugwelle Jun 19, 2024
1445ecf
chore(deps): update dependency cspell to v8.9.0 (#1030)
renovate[bot] Jun 19, 2024
f0ffcfd
fix(observability): Fix snytax error in YAML snippets (#1022)
bugwelle Jun 19, 2024
602139e
chore(deps): update dependency sass to v1.77.6 (#1018)
renovate[bot] Jun 19, 2024
c885428
Complete table for `cds add` (#1029)
swaldmann Jun 19, 2024
565d8f0
docs(java): Add more newlines to improve readability of snippets (#1020)
bugwelle Jun 19, 2024
8dba169
docs(java outbox): Improve description for `.cdsrc.json` (#1019)
bugwelle Jun 19, 2024
d81960d
Update limitations of SQLite (#1026)
agoerler Jun 19, 2024
93fc476
Add Git Bash on Windows disclaimer (#1037)
arleytm Jun 19, 2024
4b6a004
docs(java): Fix syntax errors in Java snippets (#1035)
bugwelle Jun 20, 2024
fe20719
.
danjoa Jun 20, 2024
04c1b89
SAP Document Management Service Plugin Documentation (#1034)
rashmiangadi11 Jun 20, 2024
2dc3808
New index page style
chgeo Jun 20, 2024
5f011a5
Hint to Mermaid extension
chgeo Jun 20, 2024
25399f7
chore(deps): update dependency @sap/eslint-plugin-cds to v3.0.4 (#1038)
renovate[bot] Jun 20, 2024
656f028
chore(deps): update dependency cspell to v8.9.1 (#1041)
renovate[bot] Jun 20, 2024
ac85209
new command: cds compile --to hana (#1025)
LotharBender Jun 20, 2024
9e4fa12
SAP Document Management Service Plugin UI changes (#1044)
rashmiangadi11 Jun 21, 2024
5417f41
Enforce chai-as-promised 7
chgeo Jun 21, 2024
a0931df
Add full path to pom.xml in auditlog section. (#1048)
mofterdinger Jun 24, 2024
8d80edb
docs(Java): Remove unnecessary UML-like graphic (#1011)
bugwelle Jun 24, 2024
2f0fe28
Fix #1045 (#1046)
vmikhailenko Jun 24, 2024
18f1e0d
minor typo fix in core-services.md (#1051)
qmacro Jun 25, 2024
bbdd15a
fix typo and rearrange to avoid multiple plural-possessive-quotes in …
qmacro Jun 25, 2024
b176e5a
[cds^8] remove req._ (we have req.http now) (#741)
sjvans Jun 25, 2024
34664a1
Since instead of requires
danjoa Jun 26, 2024
e83dcd6
Update the FAQ for concurrency problems (#990)
vmikhailenko Jun 26, 2024
23a1550
Introduce placeholder for fragment (#1052)
vmikhailenko Jun 26, 2024
5489401
docs: Update Fiori screenshot to use the latest version (#1065)
bugwelle Jun 26, 2024
fcf3c91
docs(In a Nutshell): Mention path `/browse` in text also (#1063)
bugwelle Jun 26, 2024
ed29b13
docs(Grow As You Go): Add `--for production` to multitenancy step (#1…
bugwelle Jun 26, 2024
ee5e9c7
docs(Java): Add filenames to YAML snippets (#1059)
bugwelle Jun 26, 2024
b5825f6
docs(Java): Mention default mock user in getting started guide (#1061)
bugwelle Jun 26, 2024
fb57a33
Make Maven host configurable
chgeo Jun 26, 2024
e2dd7bf
docs(Java): Fix typos, grammar, and format snippets (#1058)
bugwelle Jun 27, 2024
828ab6d
fix link anchor
renejeglinsky Jun 27, 2024
2021ed1
Merge branch 'main' of https://github.com/cap-js/docs
renejeglinsky Jun 27, 2024
767ff23
No code bg as sole value in table cells
chgeo Jun 27, 2024
4c15523
Add orphaned Features page to sidebar
chgeo Jun 27, 2024
9bc6ceb
Replace semiofficial API `DELETE(Books).byKey(42)` with `DELETE.from(…
arleytm Jun 27, 2024
b5f8a2c
docs(Java Building Plugins): Format code, fix typos, snippet filename…
bugwelle Jun 27, 2024
87b21ff
Update cds-typer.md (#1057)
daogrady Jun 27, 2024
56a99e2
docs(Java): Adapt CQL counterparts: fix syntax (#1007)
bugwelle Jun 27, 2024
44e8612
Start a test server inside describe (#1068)
mariayord Jun 27, 2024
8ec4df4
Update learning-sources.md (#1049)
markushaug Jun 27, 2024
69a8ea5
docs(Java): Fix Intellij part: make it more generic (#1008)
bugwelle Jun 27, 2024
a77b8f5
fix(In a Nutshell): Fix class name for catalog service handler (#1066)
bugwelle Jun 27, 2024
0be17ce
Removed Beta from change-tracking.md (#1070)
BraunMatthias Jun 28, 2024
e486974
docs(Java): Remove file listings: they are error prone and outdated (…
bugwelle Jun 28, 2024
4a26b3c
troubleshooting: mention logging for cloud sdk (#1069)
David-Kunz Jun 28, 2024
59af473
Add requires section to observability mta example (#1074)
beckermarc Jul 1, 2024
8eef055
fix: it's not propagated from msg.id (#1053)
David-Kunz Jul 1, 2024
136779b
Always use `cds add xsuaa --for production`
swaldmann Jul 1, 2024
f6f9336
Migration Guide for CAP Java 3.0 (#892)
beckermarc Jul 1, 2024
d8da037
[3.x] cds-services-archetype improvements (#1013)
mofterdinger Jul 1, 2024
3008ac8
Add link to SAP Hana Cloud system limits (#1078)
hjboth Jul 2, 2024
0f529c4
removed outdated note
renejeglinsky Jul 2, 2024
63b435e
e.g. to for example (#1081)
renejeglinsky Jul 2, 2024
3923ef2
edit
renejeglinsky Jul 2, 2024
d77e235
docs(Java): Update link to GraalVM guide (#1082)
bugwelle Jul 2, 2024
0241a33
Update learning-sources.md (#1075)
gopalanand333 Jul 4, 2024
e5fb4a2
chore(deps): update dependency cspell to v8.10.0 (#1084)
renovate[bot] Jul 4, 2024
c323e5c
chore(deps): update dependency eslint-plugin-vue to v9.27.0 (#1080)
renovate[bot] Jul 4, 2024
13fdaed
chore(deps): update dependency @sap/cds to v7.9.3 (#1071)
renovate[bot] Jul 4, 2024
25255c9
chore(deps): update dependency @sap/cds-mtxs to v1.18.2 (#1055)
renovate[bot] Jul 4, 2024
2d3dc1a
chore(deps): update dependency com.sap.cds:cds-services-api to v2.10.…
renovate[bot] Jul 4, 2024
c1a0195
chore(deps): update dependency @sap/cds-dk to v7.9.4 (#1040)
renovate[bot] Jul 4, 2024
df62370
typo
renejeglinsky Jul 5, 2024
20885d3
Merge branch 'main' of https://github.com/cap-js/docs
renejeglinsky Jul 5, 2024
da5be98
Clearer CDS/CDL (#1076)
renejeglinsky Jul 5, 2024
31d8bd0
Fix link to `compile` options (#1086)
chgeo Jul 5, 2024
bad0605
cosmetics
smahati Jul 5, 2024
c4d7fdb
chore(deps): update dependency cspell to v8.10.4 (#1087)
renovate[bot] Jul 8, 2024
a5d3ec9
chore(deps): update dependency vitepress to v1.3.0 (#1088)
renovate[bot] Jul 8, 2024
4e48eab
Avoid `cap>=ire` in the window title (#1089)
chgeo Jul 9, 2024
92c5e79
Remove abstract services example (#1090)
MattSchur Jul 9, 2024
094a88e
fix learn more link
renejeglinsky Jul 9, 2024
38bd7bc
Merge branch 'main' of https://github.com/cap-js/docs
renejeglinsky Jul 9, 2024
6cbed21
feat: deep search is available for nodejs (#1091)
patricebender Jul 10, 2024
ed87c77
[cds^8]: remove deprecated api srv. stream (#998)
etimr Jul 10, 2024
8c8dea8
[cds^8] telemetry plugin: remove beta flag (#1001)
sjvans Jul 10, 2024
4ebeb33
Added section to describe how parts of the UI can be hidden based on …
schiwekM Jul 10, 2024
1c8a2c0
SDM plugin menu (#1095)
rashmiangadi11 Jul 10, 2024
7bc8a07
Java: Fix bulk insert example (#1099)
MattSchur Jul 11, 2024
e9368a5
Update many to many relation example (#1093)
schiwekM Jul 11, 2024
5ec7692
removed outdated link
renejeglinsky Jul 12, 2024
150b737
WIP: .hdbcds to .hdbtable migration guide (#825)
simonoswald Jul 12, 2024
8a548d6
CAP Plugin: cap-js ord plugin (#1064)
RoshniNaveenaS Jul 12, 2024
e7698f9
[cds^8] cds.middlewares.before (#1094)
sjvans Jul 12, 2024
68b8ba0
cds8: switch on garbage collection of stale drafts by default (#929)
johannes-vogel Jul 12, 2024
964ce28
[cds^8] Node.js - rm legacy config for draft locks (#896)
johannes-vogel Jul 12, 2024
89eb3c6
Destination caching is enabled by default (#1016)
mariayord Jul 12, 2024
567fafa
ORD Plugin reorder (#1103)
RoshniNaveenaS Jul 12, 2024
b999808
fix link
renejeglinsky Jul 12, 2024
0323178
release page
renejeglinsky Jul 12, 2024
9ec8c04
Remove link to internal fragment for now
chgeo Jul 12, 2024
b1fd855
Fix element reference in CQN example on avoiding SQL injection (#1104)
qmacro Jul 12, 2024
8cfab16
chore(deps): update dependency @sap/cds-compiler to v5 (#1101)
renovate[bot] Jul 14, 2024
c912798
chore(deps): update dependency @sap/cds to v8 (#1106)
renovate[bot] Jul 14, 2024
d2852e0
chore(deps): update dependency @sap/cds-dk to v8 (#1108)
renovate[bot] Jul 14, 2024
d07ad5f
chore(deps): update dependency @sap/cds-mtxs to v2 (#1107)
renovate[bot] Jul 14, 2024
10ae4e8
chore(deps): update dependency sass to v1.77.8 (#1092)
renovate[bot] Jul 14, 2024
0d7891f
chore(deps): update dependency vitepress to v1.3.1 (#1109)
renovate[bot] Jul 14, 2024
df063b6
Merge branch 'cap.cloud.sap' into main
chgeo Jul 14, 2024
2c95084
Move ORD plugin down, adjust screeshot
chgeo Jul 14, 2024
8daf91e
Adjust menu for SDM, ORD
chgeo Jul 14, 2024
c36cbef
Fix warnings from scss plugin
chgeo Jul 14, 2024
f5ad674
chore(deps): update dependency com.sap.cds:cds4j-api to v3 (#1110)
renovate[bot] Jul 15, 2024
6b78f9e
chore(deps): update dependency com.sap.cds:cds-services-api to v3 (#1…
renovate[bot] Jul 15, 2024
55b76a4
Minor Fix in Java Remote Services Docs (#1113)
MatKuhr Jul 16, 2024
0c93f3a
HEX mode is default (#1112)
agoerler Jul 16, 2024
174e875
chore(deps): update dependency cspell to v8.11.0 (#1114)
renovate[bot] Jul 17, 2024
b5c7079
Increase specificity for start page heading (#1116)
swaldmann Jul 18, 2024
a36cf2e
Fix incorrect name for `cds add` API
swaldmann Jul 18, 2024
d6e6bd2
Update CDS OData V2 Adapter (Node.js) (#1118)
oklemenz2 Jul 22, 2024
b07411f
Fix OData V2 adapter link
swaldmann Jul 22, 2024
6e52579
chore(deps): update dependency @sap/cds-dk to v8.0.3 (#1123)
renovate[bot] Jul 22, 2024
74c477f
chore(deps): update dependency @sap/cds to v8.0.4 (#1122)
renovate[bot] Jul 22, 2024
c6594c9
chore(deps): update dependency @sap/cds-mtxs to v2.0.3 (#1121)
renovate[bot] Jul 22, 2024
09d972c
ci: Always use latest @sap/cds-compiler for CDS snippet checker (#1124)
bugwelle Jul 22, 2024
8a3df41
Minor fixes for hybrid testing documentation (#1127)
swaldmann Jul 22, 2024
d829460
Update documentation to point to right hana module for JS (#1133)
SamuelBrucksch Jul 23, 2024
a33df14
Update in-a-nutshell.md (#1132)
mofterdinger Jul 23, 2024
b5c87c8
database functions: lowercase function names (#1128)
David-Kunz Jul 23, 2024
9bf9282
Add `direction` config option for mermaid
chgeo Jul 23, 2024
f910952
chore(deps): update dependency cspell to v8.12.1 (#1130)
renovate[bot] Jul 23, 2024
d63f2b6
Replace `-p` (unsupported) to `-4` to use the correct profile during …
preetamkajalrout Jul 23, 2024
e81d149
Introduced Java 3.0 as new active version (#1136)
BraunMatthias Jul 24, 2024
b1ca0da
Set `add -p` as beta (#1140)
chgeo Jul 25, 2024
eb8dbde
Fix property names in Java's Consuming Services guide (#1139)
beckermarc Jul 26, 2024
4dd4aa7
Java Weighted Search for HANA (#1138)
MattSchur Jul 26, 2024
f5785d5
cds: use "IsActiveEntity" in anno expressions (#1134)
stewsk Jul 26, 2024
4ebcb00
Timeout handling configuration for remote services (#1129)
arleytm Jul 26, 2024
a5389d3
Update observability.md (#1137)
mofterdinger Jul 26, 2024
ccea724
Removed outdated precondition from change-tracking.md (#1117)
vmikhailenko Jul 26, 2024
e240d12
Improve Indicating Errors docs (#1100)
beckermarc Jul 26, 2024
1054237
Improvements of CAP Java 3.0 migration guide (#1119)
beckermarc Jul 26, 2024
dd2a92b
docs(Hello World): Simplify watch command for Java (#1067)
bugwelle Jul 26, 2024
74b50c6
docs(Java): Fix typos, format snippets, improve guides (#1072)
bugwelle Jul 26, 2024
ac4624e
chore(deps): update dependency com.sap.cds:cds-services-api to v3.0.1…
renovate[bot] Jul 29, 2024
1fb9864
config `cds.server.body_parser.limit` (and `cds.server` config sectio…
schwma Jul 29, 2024
2c5f836
Remove Rene as code owner for now
chgeo Jul 29, 2024
a849b55
chore(deps): update dependency @sap/cds-dk to v8.1.0 (#1147)
renovate[bot] Jul 29, 2024
4baa9fc
chore(deps): update dependency @sap/cds to v8.1.0 (#1145)
renovate[bot] Jul 29, 2024
b6a1b13
Update Node.js download instructions (#1148)
chgeo Jul 30, 2024
3d1c7ca
Avoiding Transactions for Select (#1144)
beckermarc Jul 30, 2024
5442d54
chore(deps): update dependency @sap/cds-compiler to v5.1.0 (#1146)
renovate[bot] Jul 30, 2024
d4551e6
Merge remote-tracking branch 'origin/cap.cloud.sap'
chgeo Jul 30, 2024
0a7559d
Merge from `cap.cloud.sap` (#1150)
chgeo Jul 30, 2024
6da154c
chore(deps): update dependency com.sap.cds:cds4j-api to v3.1.0 (#1151)
renovate[bot] Jul 30, 2024
76f5ffa
chore(deps): update dependency com.sap.cds:cds-services-api to v3.1.0…
renovate[bot] Jul 30, 2024
d9e09bc
chore(deps): update dependency cspell to v8.13.0 (#1153)
renovate[bot] Jul 30, 2024
820b9ed
docs: Fix typos / formatting of snippets (#1004)
bugwelle Jul 30, 2024
1af719b
ci: Add Java snippet checker (#1125)
bugwelle Jul 30, 2024
cd16fbb
chore(deps): update dependency @sap/cds-mtxs to v2.0.4 (#1154)
renovate[bot] Jul 31, 2024
cc455af
small fixes plugins cds add (#1157)
DanSchlachter Aug 2, 2024
87aa52e
Pls no links to [here]
swaldmann Aug 2, 2024
de04d75
Minor editing in Jumpstart and Authorization guides
swaldmann Aug 2, 2024
71551c4
chore(deps): update dependency cspell to v8.13.1 (#1158)
renovate[bot] Aug 2, 2024
d34a443
Don't show Java port for Node + vice versa
swaldmann Aug 2, 2024
56ed316
fix typo
smahati Aug 2, 2024
4f6fa9d
chore(deps): update dependency com.sap.cds:cds-services-api to v3.1.1…
renovate[bot] Aug 5, 2024
0aed672
Links to VS Code settings
chgeo Aug 5, 2024
6f65f02
Fix typo
chgeo Aug 6, 2024
ba9b792
Fix scoping to make the hidden section visibile (#1173)
smahati Aug 6, 2024
cc4d975
chore(deps): update dependency @sap/cds-compiler to v5.1.2 (#1170)
renovate[bot] Aug 6, 2024
56aba36
chore(deps): update dependency adm-zip to v0.5.15 (#1172)
renovate[bot] Aug 6, 2024
de1f1f4
chore(deps): update dependency vitepress to v1.3.2 (#1171)
renovate[bot] Aug 6, 2024
4cd1bd3
Make impl.variant hint smaller (details block)
chgeo Aug 6, 2024
65e947f
chore(deps): update dependency @sap/cds-mtxs to v2.0.5 (#1174)
renovate[bot] Aug 6, 2024
a57bbe1
fix the spelling of preserved_locales (#1161)
gregorwolf Aug 6, 2024
e638e20
style: Remove unnecessary parentheses (#1163)
bugwelle Aug 6, 2024
952b46d
fix(cds-data): Fix package name for generated `Temporal` interface (#…
bugwelle Aug 6, 2024
661e653
docs(java): Add "learn more" linkto Spring documentation for properti…
bugwelle Aug 6, 2024
970bc88
Fix broken link to `cds.server` docu (#1160)
VishnAndr Aug 6, 2024
8ea7c32
docs(cds-data): Streamline key name: `Id` -> `ID` (#1166)
bugwelle Aug 6, 2024
3dfee9f
fix(Java): Remove deprecated `addIntegrationTest` command (#1169)
bugwelle Aug 6, 2024
9cf4a93
fix(in-a-nutshell): Fix start of paragraph for Java example (#1164)
bugwelle Aug 6, 2024
ec34523
chore(deps): update dependency @sap/cds-dk to v8.1.1 (#1179)
renovate[bot] Aug 7, 2024
6c58a2f
Added path to correct pom.xml (#1181)
mofterdinger Aug 12, 2024
d5d71b4
chore: Remove cds-snippet-checker skip comments for valid snippets (#…
bugwelle Aug 12, 2024
c808086
chore: remove outdated monitoring pages (#1185)
sjvans Aug 12, 2024
cc035ad
chore(deps): update dependency @sap/cds to v8.1.1 (#1186)
renovate[bot] Aug 13, 2024
0f9758c
chore(deps): update dependency cspell to v8.13.3 (#1182)
renovate[bot] Aug 13, 2024
4fc5030
set GroupID w/ cds init for java (#1180)
renejeglinsky Aug 13, 2024
ba76102
Avoid error when used as dependency w/ different config (#1193)
DanSchlachter Aug 15, 2024
e6f97a1
Update cds-reflect.md
danjoa Aug 20, 2024
d22604e
change csv troubleshooting hints to mtxs configuration (#1202)
ecklie Aug 20, 2024
bf93f94
chore(deps): update dependency @sap/cds-mtxs to v2.0.6 (#1197)
renovate[bot] Aug 22, 2024
043d8ba
Temporary link target
chgeo Aug 23, 2024
44d2794
chore(deps): update dependency cspell to v8.14.2 (#1201)
renovate[bot] Aug 23, 2024
02ac0d9
chore(deps): update dependency @sap/cds-dk to v8.1.2 (#1196)
renovate[bot] Aug 23, 2024
cd55588
chore(deps): update dependency vitepress to v1.3.3 (#1200)
renovate[bot] Aug 23, 2024
3a83227
cosmetics
smahati Aug 26, 2024
61464b3
Postgres schema migration, --dry with lossy changes (#1135)
stewsk Aug 26, 2024
6e2f80b
HANA native associations (#1205)
stewsk Aug 26, 2024
9857ace
add(theme): add global 'scroll to top' button (#1209)
chgeo Aug 27, 2024
bc62c69
fix(scroll): remove superfluous title attrbute (#1211)
joergmann Aug 27, 2024
04f0783
Add Limitation for "Importing Service APIs" (#1178)
stewsk Aug 27, 2024
c032db7
fix: @topic should use cloudevents format (#1188)
sjvans Aug 27, 2024
2f6f835
Update $expand support for node (#1190)
schiwekM Aug 27, 2024
8baa9fe
fix(CDL): Replace internal with public documentation URL (#1191)
bugwelle Aug 27, 2024
48a96e8
adjust log ids to new database drivers (#1210)
David-Kunz Aug 27, 2024
a3054df
Fixed hint layout (#1212)
BraunMatthias Aug 27, 2024
76973cc
`tsx` support with `cds-tsx` (#1206)
chgeo Aug 27, 2024
2aa1f18
Document Hierarchy Transformations (#1195)
eugene-andreev Aug 27, 2024
9fb0508
Mention multiple xsuaa bindings in migration guide (#1214)
StefanHenke Aug 27, 2024
05052ca
Remove FAQ entry on CompletableFuture (#1192)
vmikhailenko Aug 28, 2024
ee8bdfe
Add CDS example for OpenAPI auth.
chgeo Aug 28, 2024
fb9d138
Clearer model example for Java change tracking (#1207)
vmikhailenko Aug 28, 2024
9122cb6
remove link to deprecated tutorial
smahati Aug 29, 2024
08e9d6e
doc(bind): add --to-app-services ambiguity resolving (#1217)
joergmann Aug 29, 2024
cbcbf27
chore(deps): update dependency com.sap.cds:cds4j-api to v3.2.0 (#1219)
renovate[bot] Sep 2, 2024
4736097
chore(deps): update dependency @sap/cds-compiler to v5.2.0 (#1221)
renovate[bot] Sep 2, 2024
3ee1d91
chore(deps): update dependency @sap/cds-mtxs to v2.1.0 (#1222)
renovate[bot] Sep 2, 2024
0d5cc6a
chore(deps): update dependency adm-zip to v0.5.16 (#1218)
renovate[bot] Sep 2, 2024
0586abc
chore(deps): update dependency vitepress to v1.3.4 (#1208)
renovate[bot] Sep 2, 2024
6d0d7e9
chore(deps): update dependency com.sap.cds:cds-services-api to v3.2.0…
renovate[bot] Sep 2, 2024
687065d
chore(deps): update dependency @sap/cds to v8.2.0 (#1227)
renovate[bot] Sep 3, 2024
91bdb09
chore(deps): update dependency eslint-plugin-vue to v9.28.0 (#1225)
renovate[bot] Sep 3, 2024
1e236e6
Hide scroll-to-top on iOS (#1228)
swaldmann Sep 3, 2024
7057df3
Use smooth scrolling for scroll-to-top (#1229)
swaldmann Sep 3, 2024
3dc6939
Added bound actions to collection docs (#1203)
schiwekM Sep 3, 2024
637b98d
Document @cds.java.this.name (#1187)
vmikhailenko Sep 3, 2024
2f79a34
Merge branch 'cap.cloud.sap' into main
smahati Sep 4, 2024
9826c79
rm lean draft opt out (#1226)
johannes-vogel Sep 4, 2024
cd00986
chore(deps): update dependency @sap/cds-dk to v8.2.0 (#1236)
renovate[bot] Sep 5, 2024
af3be03
chore(deps): update dependency @sap/cds to v8.2.1 (#1235)
renovate[bot] Sep 5, 2024
b9f2aa7
[cds^8.2] correlation + cloud logging (#1194)
sjvans Sep 5, 2024
6ed041a
Java on Postgres 16 (#1220)
MattSchur Sep 5, 2024
56d7cc7
Add warnings to not use the deprecated OData V2 protocol (#1216)
smahati Sep 5, 2024
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
2 changes: 1 addition & 1 deletion .github/cds-snippet-checker/check-cds-snippets.js
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ function* extractSnippets(section) {
// Code snippets may have a configuration in form of an HTML comment.
// When a cds-mode comment exists, we ignore the language.
if (snippets[1]) {
const modeRegEx = /cds-mode: ([^,]+)$/;
const modeRegEx = /cds-mode: ([^,;]+)/;
const result = modeRegEx.exec(snippets[1]);
if (result && result[1])
mode = validateMode(result[1].trim());
Expand Down
1 change: 1 addition & 0 deletions .github/java-snippet-checker/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
package-lock.json
308 changes: 308 additions & 0 deletions .github/java-snippet-checker/check-java-snippets.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,308 @@
#!/usr/bin/env node

// Java Snippet Checker
// ===================
//
// Similar to the CDS snippet checker, check Java snippets for syntax errors.
// We use the "java-parser" NPM package for that.
// All code-blocks are extracted. If they were set to `java`, we extract the
// snippet and parse it.
//
// In case of errors, we try to wrap the snippet and parse it again.
//
// - First try to parser it again with a class surrounding the snippet.
// - If that fails, try the same with a method.
// - If that fails, mark snippet as invalid.
//
// Also, we run a few pre-processing steps and use heuristics:
// We remove `...` markers and `imports`, etc.
//
// You can disable checking of a snippet by prepending a `<!-- mode: ignore -->`
// comment right before the snippet.
//
// TODO:
// - [ ] combine code with the CDS snippet checker.

'use strict';

import fs from 'node:fs';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
import { parse as parseJava } from 'java-parser';

const __dirname = path.dirname(fileURLToPath(import.meta.url));

const projectDir = path.resolve(__dirname, '../..');
const verbose = process.argv[2] === '--verbose';

// Get base directories
const excludedDirs = [
'.git',
'.github',
'node_modules',
'.reuse',
'.vitepress',
'.idea',
'.vscode',
'.devcontainer',
];
const baseDirs = fs.readdirSync(projectDir)
.filter(file => fs.statSync(path.join(projectDir, file)).isDirectory() && !excludedDirs.includes(file))
.map(file => path.join(projectDir, file));

const JAVA_MODE_SYNTAX = 'syntax';
const JAVA_MODE_IGNORE = 'ignore';
const javaModes = [
JAVA_MODE_SYNTAX,
JAVA_MODE_IGNORE,
];

let counter = 0;
let hasAnySnippetErrors = false;

// Logging should always go to stderr. Have some convenience functions to minimize verbosity.
const log = (...args) => { console.error(...args); };
const error = (...args) => { console.error(...args); };
const debug = (...args) => { verbose && console.error(...args); };

for (const dir of baseDirs) {
const files = getFilesInDirectory(dir, /[.]md/);
log(`Checking ${files.length} markdown documents in ${path.relative(projectDir, dir)}`);

for (const snippet of extractSnippetsFromFiles(files)) {
++counter;

if (snippet.mode === JAVA_MODE_IGNORE)
continue;

snippet.original = snippet.content;
snippet.content = prepareSnippet(snippet.content);

const variations = [
{ content: snippet.content, error: null },
{ content: snippetAsMethod(snippet.content), error: null },
{ content: snippetAsCode(snippet.content), error: null },
];

// We assume that the snippet has an error.
// If any of the variations _passes_, then the snippet is ok.
let snippetHasError = true;
for (const variation of variations) {
variation.error = compileSnippet(variation.content);
if (!variation.error) {
snippetHasError = false;
break; // success
}
}

if (snippetHasError) {
hasAnySnippetErrors = true;
printErrorForSnippet(snippet, variations);

} else if (verbose) {
log(`Snippet ${counter}`);
log(snippet.content);
}
}

log('');
}

log(`Checked ${counter} snippets.`);

if (hasAnySnippetErrors) {
error('\nError! Found syntax errors!');
process.exit(1);

} else {
log('Success! Found no syntax errors.');
process.exit(0);
}

// ----------------------------------------------------------------------------

function printErrorForSnippet(snippet, variations) {
log('--------------------------------------------------------------------')
log(`Errors in file ./${path.relative(projectDir, snippet.file)}`)
log('In following snippet\n')
log(' ```java')
log(indentLines(snippet.original, 2))
log(' ```')
log('')

for (const variation of variations) {
log(`which was modified and compiled again as:
\`\`\`java
${indentLines(variation.content, 2)}
\`\`\`

which then ended up with errors:

${indentLines(variation.error.message, 2)}
`);
}
log('')
}

/**
* @param {string} content
*/
function compileSnippet(content) {
try {
parseJava(content);
return null;

} catch (e) {
// the Java parser uses this string in its error messages
if (!e.message.includes('sad panda'))
throw e;

if (e.message.length > 200) {
// cut off message text; the original length is too large
e.message = e.message.slice(0, 200);
}
return e;
}
}

function prepareSnippet(content) {
// Delete "import" statements, as they are mixed in with other code.
content = content.replace(/^import .*$/mug, '');
// `= ...;` is replaced by `= null`
content = content.replace(/= *[.][.][.];/mug, '= null;');
// `= ...` is replaced by `= null;` (additional semicolon)
content = content.replace(/= [.][.][.]/mug, '= null;');
// `, ...` is removed
content = content.replace(/, ?[.][.][.]/mug, '');
content = content.replace(/[.][.][.] ?,/mug, '');
// And other remaining `...` are removed
content = content.replace(/[.][.][.]|…/g, '');
// Sometimes `---` is used as a delimiter
content = content.replace(/^---+.*$/gm, '');
return content;
}

/**
* @param {string} content
*/
function snippetAsMethod(content) {
return `// Snippet Checker
class MyClass {
${ indentLines(content.trim(), 2) }
}
`;
}

/**
* @param {string} content
*/
function snippetAsCode(content) {
return `// Snippet Checker
class SnippetCheckerClass {
void snippetCheckerMethod() {
${ indentLines(content.trim(), 4) }
}
}
`;
}

/**
* @param {string[]} files
*/
function* extractSnippetsFromFiles(files) {
for (const filename of files) {
for (const section of extractSections(filename)) {
for (const snippet of extractSnippets(section.content)) {
yield {
file: filename,
...snippet,
};
}
}
}
}

/**
* @param {string} file
*/
function* extractSections(file) {
const content = fs.readFileSync(file, 'utf-8');
const sections = content.split(/^#/gm);

for (const content of sections) {
// Skip empty parts
if (content.trim() === "")
continue;

const heading = content.slice(0, content.indexOf('\n'));
yield {
heading,
content,
};
}
}

/**
* @param {string} section
*/
function* extractSnippets(section) {
// Note: [^] matches any character, including newlines
const re = /^(?:\s*<!--(.+)-->\n)?```([a-zA-Z]+)\s*\n([^]*?)\n```\s*$/gm;

let snippets;
while ((snippets = re.exec(section)) !== null) {
const language = snippets[2].toLowerCase();
const content = snippets[3];
let mode;

if ('java' !== language)
continue;

// Code snippets may have a configuration in form of an HTML comment.
// When a cds-mode comment exists, we ignore the language.
if (snippets[1]) {
const modeRegEx = /mode: ([^,;]+)/;
const result = modeRegEx.exec(snippets[1]);
if (result && result[1])
mode = result[1].trim();
}

yield { mode, content };
}
}

/**
* @param {string} dir
* @param {RegExp} fileRegEx
* @returns {string[]}
*/
function getFilesInDirectory(dir, fileRegEx) {
let results = [];
const files = fs.readdirSync(dir);

for (let file of files) {
file = path.resolve(dir, file);
const stat = fs.statSync(file);
if (stat && stat.isDirectory()) {
results = results.concat(getFilesInDirectory(file));
} else {
if (!fileRegEx || file.match(fileRegEx))
results.push(file);
}
}
return results;
}

/**
* Indent the given string by `indent` whitespace characters.
*
* @param {string} str
* @param {number} indent
* @returns {string}
*/
function indentLines(str, indent) {
const indentStr = ' '.repeat(indent);
const lines = str.split(/\r\n?|\n/);
return lines.map(s => indentStr + s).join('\n');
}

17 changes: 17 additions & 0 deletions .github/java-snippet-checker/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "java-snippet-checker",
"version": "0.0.1",
"description": "Markdown checker for Java snippets",
"type": "module",
"main": "check-java-snippets.js",
"author": "SAP SE (https://www.sap.com)",
"license": "SEE LICENSE IN LICENSE",
"repository": "cap-js/docs",
"homepage": "https://cap.cloud.sap/",
"scripts": {
"check": "node check-java-snippets.js"
},
"dependencies": {
"java-parser": "^2.3.0"
}
}
8 changes: 7 additions & 1 deletion .github/workflows/PR.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,16 @@ jobs:
with:
node-version: 18.x
cache: 'npm'
- run: |
- name: Run CDS snippet checker
run: |
cd .github/cds-snippet-checker
npm install
npm run check
- name: Run Java snippet checker
run: |
cd .github/java-snippet-checker
npm install
npm run check
- run: npm ci
- run: npm test
- run: npm run docs:build
8 changes: 4 additions & 4 deletions .vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ if (!siteURL.pathname.endsWith('/')) siteURL.pathname += '/'
const redirectLinks: Record<string, string> = {}

const latestVersions = {
java_services: '3.1.0',
java_cds4j: '3.1.0'
java_services: '3.2.0',
java_cds4j: '3.2.0'
}

const localSearchOptions = {
Expand Down Expand Up @@ -93,8 +93,8 @@ const config:UserConfig<CapireThemeConfig> = {
// IMPORTANT: Don't use getters here, as they are called again and again!
sidebar: menu,
nav: [
Object.assign(nav.find(i => i.text === 'Getting Started')!, {text:'Get Started'}),
Object.assign(nav.find(i => i.text === 'Cookbook')!, {text:'Guides'}),
{ ...nav.find(i => i.text === 'Getting Started') ?? {}, text: 'Get Started' },
{ ...nav.find(i => i.text === 'Cookbook') ?? {}, text: 'Guides' },
nav.find(i => i.text === 'CDS'),
nav.find(i => i.text === 'Node'),
nav.find(i => i.text === 'Java'),
Expand Down
2 changes: 2 additions & 0 deletions .vitepress/theme/Layout.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import ImplVariants from './components/implvariants/ImplVariants.vue'
import NavScreenMenuItem from './components/implvariants/NavScreenMenuItem.vue'
import NotFound from './components/NotFound.vue'
import Ribbon from './components/Ribbon.vue'
import ScrollToTop from './components/ScrollToTop.vue'

const isPreview = !!import.meta.env.VITE_CAPIRE_PREVIEW

Expand All @@ -18,6 +19,7 @@ const { frontmatter } = useData()

<Layout>
<template #layout-top>
<ScrollToTop />
<slot name="layout-top" />
</template>
<template #doc-top>
Expand Down
Loading
Loading