Skip to content

Commit e23ee89

Browse files
committed
Add first-draft development docs.
1 parent 70cbe17 commit e23ee89

45 files changed

Lines changed: 2966 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/development/.config/.remarkrc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"plugins": [
3+
"remark-preset-lint-recommended",
4+
["remark-lint-list-item-indent", "space"]
5+
]
6+
}

docs/development/.config/.yamllint

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
extends: default
3+
4+
ignore: |
5+
vendor/
6+
7+
rules:
8+
brackets:
9+
max-spaces-inside: 1
10+
document-start: disable
11+
line-length:
12+
level: warning
13+
max: 120
14+
truthy: {allowed-values: ["true", "false", "on"]}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
# For all available rules see: https://github.com/hadolint/hadolint#rules
3+
ignored:
4+
- DL3008 # We do not want to pin versions in apt get install.
5+
- DL3018 # We do not want to pin versions in apk add
6+
7+
# For full details see https://github.com/hadolint/hadolint#configure
8+
#
9+
# The following keys are available:
10+
#
11+
# failure-threshold: string # name of threshold level (error | warning | info | style | ignore | none)
12+
# format: string # Output format (tty | json | checkstyle | codeclimate | gitlab_codeclimate | gnu | codacy)
13+
# label-schema: # See https://github.com/hadolint/hadolint#linting-labels for details
14+
# author: string # Your name
15+
# contact: string # email address
16+
# created: timestamp # rfc3339 datetime
17+
# version: string # semver
18+
# documentation: string # url
19+
# git-revision: string # hash
20+
# license: string # spdx
21+
# no-color: boolean # true | false
22+
# no-fail: boolean # true | false
23+
# override:
24+
# error: [string] # list of rules
25+
# warning: [string] # list of rules
26+
# info: [string] # list of rules
27+
# style: [string] # list of rules
28+
# strict-labels: boolean # true | false
29+
# disable-ignore-pragma: boolean # true | false
30+
# trustedRegistries: string | [string] # registry or list of registries

docs/development/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# PDS Interop Development
2+
3+
@TODO: Document:
4+
- Which tools are used for what
5+
- How to run tools locally
6+
- GitHub Actions (GHA)
7+
- Testing: phpunit, js (TAP?), Solid test suites
8+
- Mention

docs/development/dependencies.puml

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
@startuml
2+
3+
'left to right direction
4+
5+
'!pragma layout smetana
6+
7+
hide stereotype
8+
9+
'hide <<VENDOR>>
10+
11+
skinparam {
12+
backgroundColor transparent
13+
14+
rectangleBackgroundColor #EE8
15+
rectangleBackgroundColor<<VENDOR>> white
16+
ranksep 100
17+
}
18+
19+
rectangle "codercat/jwk-to-pem" <<VENDOR>> as codercat.jwk_to_pem
20+
rectangle "defuse/php-encryption" <<VENDOR>> as defuse.php_encryption
21+
rectangle "easyrdf/easyrdf" <<VENDOR>> as easyrdf.easyrdf
22+
rectangle "laminas/laminas-diactoros" <<VENDOR>> as laminas.laminas_diactoros
23+
rectangle "laminas/laminas-httphandlerrunner" <<VENDOR>> as laminas.laminas_httphandlerrunner
24+
rectangle "lcobucci/jwt" <<VENDOR>> as lcobucci.jwt
25+
rectangle "league/container" <<VENDOR>> as league.container
26+
rectangle "league/flysystem" <<VENDOR>> as league.flysystem
27+
rectangle "league/oauth2-server" <<VENDOR>> as league.oauth2_server
28+
rectangle "league/route" <<VENDOR>> as league.route
29+
rectangle "mjrider/flysystem-factory" <<VENDOR>> as mjrider.flysystem_factory
30+
rectangle "ml/json-ld" <<VENDOR>> as ml.json_ld
31+
rectangle "php-http/httplug" <<VENDOR>> as php_http.httplug
32+
rectangle "phptal/phptal" <<VENDOR>> as phptal.phptal
33+
rectangle "pietercolpaert/hardf" <<VENDOR>> as pietercolpaert.hardf
34+
rectangle "psr/http-factory" <<VENDOR>> as psr.http_factory
35+
rectangle "psr/http-message" <<VENDOR>> as psr.http_message
36+
rectangle "psr/log" <<VENDOR>> as psr.log
37+
rectangle "textalk/websocket" <<VENDOR>> as textalk.websocket
38+
rectangle "web-token/jwt-core" <<VENDOR>> as web_token.jwt_core
39+
40+
rectangle "pdsinterop/solid-nextcloud" as pdsinterop.solid_nextcloud
41+
rectangle "pdsinterop/solid-server" as pdsinterop.solid_server
42+
43+
rectangle "pdsinterop/flysystem-nextcloud" as pdsinterop.flysystem_nextcloud
44+
rectangle "pdsinterop/flysystem-rdf" as pdsinterop.flysystem_rdf
45+
rectangle "pdsinterop/solid-auth" as pdsinterop.solid_auth
46+
rectangle "pdsinterop/solid-crud" as pdsinterop.solid_crud
47+
48+
pdsinterop.flysystem_nextcloud --> league.flysystem
49+
50+
pdsinterop.solid_auth --> laminas.laminas_diactoros
51+
pdsinterop.solid_auth -u-> lcobucci.jwt
52+
pdsinterop.solid_auth -u-> league.oauth2_server
53+
pdsinterop.solid_auth -d-> web_token.jwt_core
54+
55+
pdsinterop.flysystem_rdf -u-> easyrdf.easyrdf
56+
pdsinterop.flysystem_rdf --> league.flysystem
57+
pdsinterop.flysystem_rdf --> ml.json_ld
58+
59+
pdsinterop.solid_crud -u-> laminas.laminas_diactoros
60+
pdsinterop.solid_crud -u-> league.flysystem
61+
pdsinterop.solid_crud -l-> pdsinterop.flysystem_rdf
62+
pdsinterop.solid_crud --> mjrider.flysystem_factory
63+
pdsinterop.solid_crud --> pietercolpaert.hardf
64+
pdsinterop.solid_crud -l-> psr.http_factory
65+
pdsinterop.solid_crud -r-> psr.http_message
66+
pdsinterop.solid_crud --> textalk.websocket
67+
68+
pdsinterop.solid_nextcloud --> easyrdf.easyrdf
69+
pdsinterop.solid_nextcloud --> laminas.laminas_diactoros
70+
pdsinterop.solid_nextcloud --> lcobucci.jwt
71+
pdsinterop.solid_nextcloud --> pdsinterop.flysystem_nextcloud
72+
pdsinterop.solid_nextcloud --> pdsinterop.flysystem_rdf
73+
pdsinterop.solid_nextcloud --> pdsinterop.solid_auth
74+
pdsinterop.solid_nextcloud --> pdsinterop.solid_crud
75+
pdsinterop.solid_nextcloud -r-> psr.log
76+
77+
pdsinterop.solid_server --> easyrdf.easyrdf
78+
pdsinterop.solid_server --> laminas.laminas_diactoros
79+
pdsinterop.solid_server --> lcobucci.jwt
80+
pdsinterop.solid_server --> league.flysystem
81+
pdsinterop.solid_server --> league.oauth2_server
82+
pdsinterop.solid_server --> pdsinterop.flysystem_rdf
83+
pdsinterop.solid_server --> pdsinterop.solid_auth
84+
pdsinterop.solid_server --> pdsinterop.solid_crud
85+
86+
pdsinterop.solid_server -l-> phptal.phptal
87+
pdsinterop.solid_server -r-> codercat.jwk_to_pem
88+
pdsinterop.solid_server -u-> defuse.php_encryption
89+
pdsinterop.solid_server -u-> laminas.laminas_httphandlerrunner
90+
pdsinterop.solid_server -u-> league.container
91+
pdsinterop.solid_server -u-> league.route
92+
pdsinterop.solid_server -u-> php_http.httplug
93+
94+
@enduml
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
#!/usr/bin/env bash
2+
3+
set -o errexit -o errtrace -o nounset -o pipefail
4+
5+
# @FIXME: Add check for config files required by specific tools
6+
# - Dockerfile files: .config/hadolint.yaml (hadolint)
7+
#
8+
# - Markdown files:
9+
# - `.spelling` (markdown-spellcheck)
10+
# - `.config/.remarkrc` (remark-lint)
11+
#
12+
# - PHP files:
13+
# - `.config/phpcs.xml.dist` (phpcs)
14+
# - `.config/phpunit.xml.dist` (phpunit)
15+
#
16+
# - YAML files: `.config/.yamllint` (yamllint)
17+
#
18+
# ? `.config/.github_changelog_generator/
19+
20+
find_files_for_qa() {
21+
local bVerbose sName sPath sResult
22+
23+
sPath="${1?One parameter required: <path>}"
24+
bVerbose="${2:-}"
25+
26+
if [[ "${sPath}" == '--verbose' && ${#} -eq 1 ]]; then
27+
echo "$0: line ${LINENO}: 1: One parameter required: <path>"
28+
return 1
29+
#elif verbose is set, then set it to true
30+
elif [[ "${sPath}" == '--verbose' ]]; then
31+
readonly sPath="${bVerbose}"
32+
readonly bVerbose=true
33+
elif [[ "${bVerbose}" == '--verbose' ]]; then
34+
readonly sPath
35+
readonly bVerbose=true
36+
else
37+
readonly sPath
38+
readonly bVerbose=false
39+
fi
40+
41+
for sName in flysystem-nextcloud flysystem-rdf php-solid-auth php-solid-crud php-solid-pubsub-server php-solid-server solid-nextcloud; do
42+
echo -e " =====> ${sName}"
43+
44+
sResult="$(find "${sPath}/${sName}" -not -path '*/vendor/*' -not -path '*/.github/*' -not -path '*/.idea/*' -name 'Dockerfile')"
45+
if [[ "${sResult}" != '' ]]; then
46+
echo -e " -----> Dockerfile"
47+
if [[ "${bVerbose}" == true ]]; then
48+
echo -e "${sResult}"
49+
fi
50+
fi
51+
52+
sResult="$(find "${sPath}/${sName}" -not -name 'codealike.json' -not -name 'composer.json' -not -path '*/vendor/*' -not -path '*/.github/*' -not -path '*/.idea/*' -name '*.json')"
53+
if [[ "${sResult}" != '' ]]; then
54+
echo -e " -----> JSON"
55+
if [[ "${bVerbose}" == true ]]; then
56+
echo -e "${sResult}"
57+
fi
58+
fi
59+
60+
sResult="$(find "${sPath}/${sName}" -not -path '*/vendor/*' -not -path '*/.github/*' -not -path '*/.idea/*' -name '*.md')"
61+
if [[ "${sResult}" != '' ]]; then
62+
echo -e " -----> Markdown"
63+
if [[ "${bVerbose}" == true ]]; then
64+
echo -e "${sResult}"
65+
fi
66+
fi
67+
68+
sResult="$(find "${sPath}/${sName}" -not -path '*/vendor/*' -not -path '*/.github/*' -not -path '*/.idea/*' -name '*.php')"
69+
if [[ "${sResult}" != '' ]]; then
70+
echo -e " -----> PHP"
71+
if [[ "${bVerbose}" == true ]]; then
72+
echo -e "${sResult}"
73+
fi
74+
fi
75+
76+
sResult="$(find "${sPath}/${sName}" -not -path '*/vendor/*' -not -path '*/.github/*' -not -path '*/.idea/*' -name '*.sh')"
77+
if [[ "${sResult}" != '' ]]; then
78+
echo -e " -----> Shell"
79+
if [[ "${bVerbose}" == true ]]; then
80+
echo -e "${sResult}"
81+
fi
82+
fi
83+
84+
sResult="$(find "${sPath}/${sName}" -not -path '*/vendor/*' -not -path '*/.github/*' -not -path '*/.idea/*' -name '*.xml')"
85+
if [[ "${sResult}" != '' ]]; then
86+
echo -e " -----> XML"
87+
if [[ "${bVerbose}" == true ]]; then
88+
echo -e "${sResult}"
89+
fi
90+
fi
91+
92+
sResult="$(find "${sPath}/${sName}" -not -name '_config.yml' -not -path '*/vendor/*' -not -path '*/.github/*' -not -path '*/.idea/*' \( -name '*.yml' -o -name '*.yaml' \))"
93+
if [[ "${sResult}" != '' ]]; then
94+
echo -e " -----> YML"
95+
if [[ "${bVerbose}" == true ]]; then
96+
echo -e "${sResult}"
97+
fi
98+
fi
99+
100+
echo ''
101+
done
102+
}
103+
104+
if [ "${BASH_SOURCE[0]}" != "${0}" ]; then
105+
export -f find_files_for_qa
106+
else
107+
find_files_for_qa "${@}"
108+
fi

0 commit comments

Comments
 (0)