This commit is contained in:
Med Mouine
2024-04-18 10:23:04 -04:00
parent aab6410176
commit 089a1cd890
19385 changed files with 147197 additions and 230 deletions

4
.rhdh/docker/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
bin/
lib/
lib64/
pyvenv.cfg

235
.rhdh/docker/Dockerfile Normal file
View File

@@ -0,0 +1,235 @@
#
# Copyright (c) 2023 Red Hat, Inc.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# To transform into Brew-friendly Dockerfile:
# 1. comment out lines with EXTERNAL_SOURCE=. and CONTAINER_SOURCE=/opt/app-root/src
# 2. uncomment lines with EXTERNAL_SOURCE and CONTAINER_SOURCE pointing at $REMOTE_SOURCES and $REMOTE_SOURCES_DIR instead (Brew defines these paths)
# 3. uncomment lines with RUN source .../cachito.env
# 4. add Brew metadata
# Stage 1 - Build nodejs skeleton
#@follow_tag(registry.access.redhat.com/ubi9/nodejs-18:1)
FROM registry.access.redhat.com/ubi9/nodejs-18:1-98 AS build
# hadolint ignore=DL3002
USER 0
# Install isolated-vm dependencies
# hadolint ignore=DL3041
RUN dnf install -y -q --allowerasing --nobest nodejs-devel nodejs-libs \
# already installed or installed as deps:
openssl openssl-devel ca-certificates make cmake cpp gcc gcc-c++ zlib zlib-devel brotli brotli-devel python3 nodejs-packaging && \
dnf update -y && dnf clean all
# Downstream sources
ENV EXTERNAL_SOURCE=$REMOTE_SOURCES/upstream1/app
ENV EXTERNAL_SOURCE_NESTED=$EXTERNAL_SOURCE/distgit/containers/rhdh-hub
# /remote-source/
ENV CONTAINER_SOURCE=$REMOTE_SOURCES_DIR
# Env vars
ENV YARN=$CONTAINER_SOURCE/.yarn/releases/yarn-1.22.19.cjs
WORKDIR $CONTAINER_SOURCE/
COPY $EXTERNAL_SOURCE_NESTED/.yarn ./.yarn
COPY $EXTERNAL_SOURCE_NESTED/.yarnrc.yml ./
RUN chmod +x $YARN
# Stage 2 - Install dependencies
COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins/ ./dynamic-plugins/
COPY $EXTERNAL_SOURCE_NESTED/package.json $EXTERNAL_SOURCE_NESTED/yarn.lock ./
COPY $EXTERNAL_SOURCE_NESTED/packages/app/package.json ./packages/app/package.json
COPY $EXTERNAL_SOURCE_NESTED/packages/backend/package.json ./packages/backend/package.json
COPY $EXTERNAL_SOURCE_NESTED/plugins/scalprum-backend/package.json ./plugins/scalprum-backend/package.json
COPY $EXTERNAL_SOURCE_NESTED/plugins/dynamic-plugins-info-backend/package.json ./plugins/dynamic-plugins-info-backend/package.json
COPY $EXTERNAL_SOURCE_NESTED/plugins/auth-backend-module-oidc-provider/package.json ./plugins/auth-backend-module-oidc-provider/package.json
# Downstream only - debugging
# COPY $REMOTE_SOURCES/ ./
# hadolint ignore=SC2086
# RUN for d in $(find / -name ".npmrc" -o -name ".yarnrc" 2>/dev/null); do echo; echo "==== $d ===="; cat $d; done
# # ls -la ./ upstream1 upstream1/app/ upstream1/app/distgit/containers/ upstream1/app/distgit/containers/rhdh-hub/ || true
# # debug contents of /remote-source/
# echo "###### /tmp/tls-ca-bundle.pem ######>>"; cat /tmp/tls-ca-bundle.pem; echo "<<###### /tmp/tls-ca-bundle.pem ######"
# echo "###### $CONTAINER_SOURCE/registry-ca.pem ######>>"; cat $CONTAINER_SOURCE/registry-ca.pem; echo "<<###### $CONTAINER_SOURCE/registry-ca.pem ######"
# Downstream only - Cachito configuration
# see https://docs.engineering.redhat.com/pages/viewpage.action?pageId=228017926#UpstreamSources(Cachito,ContainerFirst)-CachitoIntegrationfornpm
COPY $REMOTE_SOURCES/upstream1/cachito.env \
$REMOTE_SOURCES/upstream1/app/registry-ca.pem \
$REMOTE_SOURCES/upstream1/app/distgit/containers/rhdh-hub/.npmrc \
./
# registry=https://cachito-nexus.engineering.redhat.com/repository/cachito-yarn-814335/
# email=noreply@domain.local
# always-auth=true
# //cachito-nexus.engineering.redhat.com/repository/cachito-yarn-814335/:_auth=SHA-goes-here==
# fetch-retries=5
# fetch-retry-factor=2
# strict-ssl=true
# cafile="../../../registry-ca.pem"
# NOTE: this is overridden to "/remote-source/registry-ca.pem" below
# hadolint ignore=SC1091,SC2046
RUN \
# debug
# cat $CONTAINER_SOURCE/cachito.env; \
# load envs
source $CONTAINER_SOURCE/cachito.env; \
\
# load cert
cert_path=$CONTAINER_SOURCE/registry-ca.pem; \
# debug
# ls -la "${cert_path}"; \
npm config set cafile "${cert_path}"; $YARN config set cafile "${cert_path}" -g; \
\
# set longer timeouts
# npm config set fetch-retry-maxtimeout 6000000; \
# npm config set fetch-retry-mintimeout 1000000; \
$YARN config set network-timeout 600000 -g; \
# set cachito as default registry
$YARN config set registry $(npm config get registry) -g; \
\
# debug
# ls -l /usr/; \
# set up node dir with common.gypi and unsafe-perms=true
ln -s /usr/include/node/common.gypi /usr/common.gypi; $YARN config set nodedir /usr; $YARN config set unsafe-perm true; \
\
# add yarn to path via symlink
ln -s $CONTAINER_SOURCE/$YARN /usr/local/bin/yarn
# Downstream only - debug
# RUN echo $PATH; ls -la /usr/local/bin/yarn; whereis yarn;which yarn; yarn --version; \
# cat $CONTAINER_SOURCE/.npmrc || true; \
# $YARN config list --verbose; npm config list; npm config list -l
RUN $YARN install --frozen-lockfile --network-timeout 600000
# Stage 3 - Build packages
COPY $EXTERNAL_SOURCE_NESTED ./
RUN git config --global --add safe.directory ./
# Upstream only
# RUN rm app-config.yaml && mv app-config.example.yaml app-config.yaml
# hadolint ignore=DL3059,DL4006,SC2086
RUN $YARN build --filter=backend && \
# Build dynamic plugins: yarn.lock files need to be present in order to transform to point to cachito URLs
$YARN --cwd ./dynamic-plugins/imports export-dynamic --no-install && \
# Downstream only - replace registry refs with cachito ones
cachitoRegistry=$(npm config get registry); echo "cachito registry: $cachitoRegistry"; \
for d in $(find . -name yarn.lock); do echo; echo "===== $d ====="; \
sed -i $d -r -e "s#(https://registry.yarnpkg.com|https://registry.npmjs.org)#${cachitoRegistry}#g"; \
grep resolved $d | head -1; echo "Total $(grep resolved $d | wc -l) resolution lines in $d"; \
done; \
# Already imported the packages above; need to `yarn install` on the `dist-dynamic` sub-folder for backend plugins
$YARN --cwd ./dynamic-plugins/imports install-dynamic && \
$YARN export-dynamic -- --filter=./dynamic-plugins/wrappers/* && \
$YARN copy-dynamic-plugins dist
# Downstream only - debug
# hadolint ignore=SC3010,DL4006
RUN echo "=== Check for yarn.lock files that don't use cachito registry ===>"; \
for d in $(find . -name yarn.lock); do \
found=$(grep -E "yarnpkg.com|npmjs.org" $d | head -1); \
if [[ $found ]]; then echo;echo "$d : $found"; fi; \
done; \
echo "<=== Check for yarn.lock files that don't use cachito registry ==="
# Downstream only - clean up dynamic plugins sources:
# Only keep the dist sub-folder in the dynamic-plugins folder
RUN find dynamic-plugins -maxdepth 1 -mindepth 1 -type d -not -name dist -exec rm -Rf {} \;
# Stage 4 - Build the actual backend image and install production dependencies
# Downstream only - files already exist, nothing to copy; next line for debugging only
# RUN ls -l $CONTAINER_SOURCE/ $CONTAINER_SOURCE/packages/backend/dist/
ENV TARBALL_PATH=./packages/backend/dist
RUN tar xzf $TARBALL_PATH/skeleton.tar.gz; tar xzf $TARBALL_PATH/bundle.tar.gz; \
rm -f $TARBALL_PATH/skeleton.tar.gz $TARBALL_PATH/bundle.tar.gz
# Copy app-config files needed in runtime
# Upstream only
# COPY $EXTERNAL_SOURCE_NESTED/app-config*.yaml ./
# COPY $EXTERNAL_SOURCE_NESTED/dynamic-plugins.default.yaml ./
# Install production dependencies
# hadolint ignore=DL3059
RUN $YARN install --frozen-lockfile --production --network-timeout 600000
# Stage 5 - Build the runner image
#@follow_tag(registry.access.redhat.com/ubi9/nodejs-18-minimal:1)
FROM registry.access.redhat.com/ubi9/nodejs-18-minimal:1-103 AS runner
USER 0
ENV CONTAINER_SOURCE=/opt/app-root/src
WORKDIR $CONTAINER_SOURCE/
# Downstream only - install techdocs dependencies using cachito sources
COPY $REMOTE_SOURCES/upstream2 $REMOTE_SOURCES_DIR/upstream2/
# hadolint ignore=DL3013,DL3041,SC2086
RUN microdnf update -y && \
microdnf install -y python3.11 python3.11-pip python3.11-devel make cmake cpp gcc gcc-c++; \
ln -s /usr/bin/pip3.11 /usr/bin/pip3; \
ln -s /usr/bin/pip3.11 /usr/bin/pip; \
# ls -la $REMOTE_SOURCES_DIR/ $REMOTE_SOURCES_DIR/upstream2/ $REMOTE_SOURCES_DIR/upstream2/app/distgit/containers/rhdh-hub/docker/ || true; \
# cat $REMOTE_SOURCES_DIR/upstream2/cachito.env && \
# cachito.env contains path to cert:
# export PIP_CERT=/remote-source/upstream2/app/package-index-ca.pem
source $REMOTE_SOURCES_DIR/upstream2/cachito.env && \
# fix ownership for pip install folder
mkdir -p /opt/app-root/src/.cache/pip && chown -R root:root /opt/app-root && \
# ls -ld /opt/ /opt/app-root /opt/app-root/src/ /opt/app-root/src/.cache /opt/app-root/src/.cache/pip || true; \
pushd $REMOTE_SOURCES_DIR/upstream2/app/distgit/containers/rhdh-hub/docker/ >/dev/null && \
set -xe; \
python3.11 -V; pip3.11 -V; \
pip3.11 install --no-cache-dir --upgrade pip setuptools pyyaml; \
pip3.11 install --no-cache-dir -r requirements.txt -r requirements-build.txt; mkdocs --version; \
popd >/dev/null; \
microdnf clean all; rm -fr $REMOTE_SOURCES_DIR/upstream2
# Downstream only - Make python3.11 the default python
RUN alternatives --install /usr/bin/python python /usr/bin/python3.11 1
# Downstream only - copy from build, not cleanup stage
COPY --from=build --chown=1001:1001 $REMOTE_SOURCES_DIR/ ./
# Downstream only - copy embedded dynamic plugins from $REMOTE_SOURCES_DIR
COPY --from=build $REMOTE_SOURCES_DIR/dynamic-plugins/dist/ ./dynamic-plugins/dist/
# Copy script to gather dynamic plugins; copy embedded dynamic plugins to root folder; fix permissions
COPY docker/install-dynamic-plugins.py docker/install-dynamic-plugins.sh ./
RUN chmod -R a+r ./dynamic-plugins/ ./install-dynamic-plugins.py; \
chmod -R a+rx ./install-dynamic-plugins.sh; \
rm -fr dynamic-plugins-root && cp -R dynamic-plugins/dist/ dynamic-plugins-root
# Downstream only - fix for https://issues.redhat.com/browse/RHIDP-728
RUN mkdir /opt/app-root/src/.npm
RUN chown -R 1001:1001 /opt/app-root/src/.npm
# The fix-permissions script is important when operating in environments that dynamically use a random UID at runtime, such as OpenShift.
# The upstream backstage image does not account for this and it causes the container to fail at runtime.
RUN fix-permissions ./
# Switch to nodejs user
USER 1001
# Temporary workaround to avoid triggering issue
# https://github.com/backstage/backstage/issues/20644
ENV CHOKIDAR_USEPOLLING='1' CHOKIDAR_INTERVAL='10000'
# To avoid running scripts when using `npm pack` to install dynamic plugins
ENV NPM_CONFIG_ignore-scripts='true'
ENTRYPOINT ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.example.yaml", "--config", "app-config.example.production.yaml"]
# append Brew metadata here

View File

@@ -0,0 +1,66 @@
# To iteratively add/fix requirements:
Add more dependencies to `requirements.in`, then:
```
pip-compile --allow-unsafe --strip-extras requirements.in -o requirements.txt
```
If it passes, you can run `cachito_hash.sh` to fix the sha256sums.
Try to install everything in `requirements.txt`:
```
rm -rf pyvenv.cfg lib* bin/*
virtualenv .; . bin/activate
pip install -r requirements.txt
```
If it fails, repeat previous step to add more dependencies `requirements.in` and repeat.
Now, set up BUILD requirements, see https://github.com/containerbuildsystem/cachito/blob/master/docs/pip.md#build-dependencies to get `pip_find_builddeps.py`, then run:
```
rm -fr /tmp/pip_find_builddeps.py*
pip_find_builddeps.py requirements.txt -o requirements-build.in --append --no-cache
```
Review the contents of `requirements-build.in` to remove dupes. Then regenerate `requirements-build.txt`
```
pip-compile --allow-unsafe --strip-extras requirements-build.in -o requirements-build.txt
```
If it passes, you can run `cachito_hash.sh` to fix the sha256sums.
Finally, MAKE SURE YOU OVERRIDE what's in the .txt files to add in the cachito_hash values, as pip-compile will remove them. This can be done by running `cachito_hash.sh`.
```
mkdocs-techdocs-core @ https://github.com/backstage/mkdocs-techdocs-core/archive/bbdab44e0d3aecfdc4e77b14c72b57791d4902b2.zip#cachito_hash=sha256:40421a5f43b11fd9ea9f92e107f91089b6bfa326967ad497666ab5a451fcf136
plantuml-markdown @ https://github.com/mikitex70/plantuml-markdown/archive/17d348bfaa9112cdd2130e6410ce3a50224db3cf.zip#cachito_hash=sha256:221cc4972c75ba911cad4a56df07f61771c20077f8cbc8966181e30cabf68de1
```
To test in a [container build](https://pkgs.devel.redhat.com/cgit/containers/rhdh-hub/tree/Dockerfile?h=private-nboldt-cachito-pip#n155) in Brew, using something like:
```
pip3.11 install --user --no-cache-dir -r requirements.txt -r requirements-build.txt
```
- commit changes to midstream (gitlab) repo, in a specific branch like [add-pip-deps](https://gitlab.cee.redhat.com/rhidp/rhdh/-/commits/add-pip-deps)
- collect the latest SHA for that branch
- create a topic branch in https://pkgs.devel.redhat.com/cgit/containers/rhdh-hub
- copy the above SHA into the container.yaml for the remote_source.ref values. For example: https://pkgs.devel.redhat.com/cgit/containers/rhdh-hub/commit/?h=private-nboldt-cachito-pip&id=dd6db447ee228be14f9de2c940b5e3efee4890e9
- run a [scratch build](https://gist.github.com/nickboldt/5b674f75934e7bba5a38486e17a18cfa) and wait for results.
- review cachito and build logs to see what happened.
If the build fails, add more dependencies to the requirements file, and try again.
When the build passes, commit changes to midstream and downstream, and trigger sync to cause a downstream build to verify your changes.
Note that some files are transformed between up/mid/downstream, so you may have to apply changes in more than one file.
- Upstream: `docker/Dockerfile` (upstream) and `.rhdh/docker/Dockerfile` (mid + downstream)
- Midstream: `distgit/containers/rhdh-hub/.rhdh/docker/Dockerfile` is transformed to `distgit/containers/rhdh-hub/Dockerfile.in` via [sync.sh](https://gitlab.cee.redhat.com/rhidp/rhdh/-/blob/rhdh-1.1-rhel-9/sync.sh)
- Downstream: `Dockerfile.in` becomes `Dockerfile` automatically, injecting the product version from [`gcp_env/product_version`](https://gitlab.cee.redhat.com/rhidp/rhdh/-/blob/rhdh-1.1-rhel-9/gcp_env/product-version)

35
.rhdh/docker/cachito_hash.sh Executable file
View File

@@ -0,0 +1,35 @@
#!/bin/bash
#
# Copyright (c) 2023 Red Hat, Inc.
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# see README.requirements.md -- this is used to regenerate the sha256 sums in the .in and .txt files
SCRIPT_DIR=$(cd "$(dirname "$0")" || exit; pwd)
pushd "$SCRIPT_DIR" >/dev/null || exit
# update the sha256: values in requirements.in and requirements-build.in files
for file in requirements.in requirements-build.in; do
echo "Update $file ..."
#shellcheck disable=SC2013
pip-compile --quiet --allow-unsafe --output-file="${file/\.in/\.txt}" --strip-extras "${file}"
for d in $(grep https://github $file); do
oldSHA=${d#*sha256:}; # echo $oldSHA
url=${d%#egg=*}; # echo $url
archive=${url%/*.zip}
zip=${url##*/}
echo " Fetch $url"
curl -sSLo dep.zip "$url"
SHA=$(sha256sum dep.zip); SHA=${SHA% dep.zip}
rm -f dep.zip
echo " Set new SHA = $SHA"
sed -i "$file" -r -e "s/sha256:${oldSHA}/sha256:${SHA}/"
# now regen and update the .txt versions of the .in files, plus the readme examples too
echo " Set $archive/$zip#cachito_hash=sha256:$SHA"
for hashed in "${file/\.in/\.txt}" "README.requirements.md"; do
sed -i "$hashed" -r -e "s@(${archive}).+@\1\/$zip#cachito_hash=sha256:${SHA}@"
done
done
done
popd >/dev/null || exit

View File

@@ -0,0 +1,81 @@
# to use this file, `pip install pip-tools -U` first (need >= 7.3), then
# pip-compile --allow-unsafe --output-file=requirements-build.txt --strip-extras requirements-build.in
# get a newer archive/commit SHA from github, then run cachito_hash.sh to update the sha256: hash
# must include from source because https://pypi.org/project/mkdocs-techdocs-core/1.3.3/#files source tarball is missing requirements.txt (so cachito poops itself)
mkdocs-techdocs-core==1.3.3
https://github.com/backstage/mkdocs-techdocs-core/archive/bbdab44e0d3aecfdc4e77b14c72b57791d4902b2.zip#egg=mkdocs-techdocs-core&cachito_hash=sha256:40421a5f43b11fd9ea9f92e107f91089b6bfa326967ad497666ab5a451fcf136
# get a newer archive/commit SHA from github, then run cachito_hash.sh to update the sha256: hash
# must include from source because https://pypi.org/project/plantuml-markdown/3.9.2/#files contains no source tarball (so cachito poops itself)
plantuml-markdown==3.9.2
https://github.com/mikitex70/plantuml-markdown/archive/17d348bfaa9112cdd2130e6410ce3a50224db3cf.zip#egg=plantuml-markdown&cachito_hash=sha256:221cc4972c75ba911cad4a56df07f61771c20077f8cbc8966181e30cabf68de1
babel
calver==2022.6.26
certifi==2023.11.17
charset-normalizer==3.3.2
click==8.1.7
colorama==0.4.6
Cython<3.0
editables>=0.3
flit_core<4,>=2
flit_core<4,>=3.2
flit_core<4,>=3.8
flit_core>=3.3
ghp-import==2.1.0
hatch-nodejs-version>=0.3.0
hatch-requirements-txt
hatch-vcs>=0.3
hatchling
hatchling<2,>=1.6.0
hatchling>=0.21.1
hatchling>=0.25.1
hatchling>=1.17.1
idna==3.7
jinja2~=3.1.3
markdown-inline-graphviz-extension~=1.1.2
markdown==3.2.2
markupsafe==2.1.4
mdx-truly-sane-lists==1.3
mergedeep==1.3.4
mkdocs-material-extensions==1.3.1
mkdocs-material==9.4.14
mkdocs-monorepo-plugin==1.1.0
mkdocs==1.5.3
packaging==23.2
packaging>=20
packaging>=21.3
pathspec==0.12.1
pathspec>=0.10.1
platformdirs==3.11.0
pluggy>=1.0.0
pygments==2.17.2
pymdown-extensions==10.3.1
python-dateutil==2.8.2
python-slugify==8.0.2
pyyaml-env-tag==0.1
pyyaml==6.0.1
regex==2023.12.25
requests==2.31.0
setuptools
setuptools_scm
setuptools-scm>=6.4.0
setuptools>=36.6
setuptools>=40.8.0
setuptools>=61
six==1.16.0
text-unidecode==1.3
tomli>=1
tomli>=1.2.2
trove-classifiers
typing-extensions
urllib3~=2.1.0
watchdog==3.0.0
wheel
wheel==0.42.0
# The following packages are considered to be unsafe in a requirements file:
pip==23.3.2
setuptools==68.2.2

View File

@@ -0,0 +1,215 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# by the following command:
#
# pip-compile --allow-unsafe --output-file=requirements-build.txt --strip-extras requirements-build.in
#
babel==2.14.0
# via
# -r requirements-build.in
# mkdocs-material
calver==2022.6.26
# via -r requirements-build.in
certifi==2023.11.17
# via
# -r requirements-build.in
# requests
charset-normalizer==3.3.2
# via
# -r requirements-build.in
# requests
click==8.1.7
# via
# -r requirements-build.in
# mkdocs
colorama==0.4.6
# via
# -r requirements-build.in
# mkdocs-material
cython==0.29.37
# via -r requirements-build.in
editables==0.5
# via
# -r requirements-build.in
# hatchling
flit-core==3.9.0
# via -r requirements-build.in
ghp-import==2.1.0
# via
# -r requirements-build.in
# mkdocs
hatch-nodejs-version==0.3.2
# via -r requirements-build.in
hatch-requirements-txt==0.4.1
# via -r requirements-build.in
hatch-vcs==0.4.0
# via -r requirements-build.in
hatchling==1.21.1
# via
# -r requirements-build.in
# hatch-nodejs-version
# hatch-requirements-txt
# hatch-vcs
idna==3.7
# via
# -r requirements-build.in
# requests
jinja2==3.1.3
# via
# -r requirements-build.in
# mkdocs
# mkdocs-material
markdown==3.2.2
# via
# -r requirements-build.in
# markdown-inline-graphviz-extension
# mdx-truly-sane-lists
# mkdocs
# mkdocs-material
# mkdocs-techdocs-core
# plantuml-markdown
# pymdown-extensions
markdown-inline-graphviz-extension==1.1.2
# via
# -r requirements-build.in
# mkdocs-techdocs-core
markupsafe==2.1.4
# via
# -r requirements-build.in
# jinja2
# mkdocs
mdx-truly-sane-lists==1.3
# via
# -r requirements-build.in
# mkdocs-techdocs-core
mergedeep==1.3.4
# via
# -r requirements-build.in
# mkdocs
mkdocs==1.5.3
# via
# -r requirements-build.in
# mkdocs-material
# mkdocs-monorepo-plugin
# mkdocs-techdocs-core
mkdocs-material==9.4.14
# via
# -r requirements-build.in
# mkdocs-techdocs-core
mkdocs-material-extensions==1.3.1
# via
# -r requirements-build.in
# mkdocs-material
mkdocs-monorepo-plugin==1.1.0
# via
# -r requirements-build.in
# mkdocs-techdocs-core
mkdocs-techdocs-core @ https://github.com/backstage/mkdocs-techdocs-core/archive/bbdab44e0d3aecfdc4e77b14c72b57791d4902b2.zip#cachito_hash=sha256:40421a5f43b11fd9ea9f92e107f91089b6bfa326967ad497666ab5a451fcf136
# via -r requirements-build.in
packaging==23.2
# via
# -r requirements-build.in
# hatch-requirements-txt
# hatchling
# mkdocs
# setuptools-scm
paginate==0.5.6
# via mkdocs-material
pathspec==0.12.1
# via
# -r requirements-build.in
# hatchling
# mkdocs
plantuml-markdown @ https://github.com/mikitex70/plantuml-markdown/archive/17d348bfaa9112cdd2130e6410ce3a50224db3cf.zip#cachito_hash=sha256:221cc4972c75ba911cad4a56df07f61771c20077f8cbc8966181e30cabf68de1
# via
# -r requirements-build.in
# mkdocs-techdocs-core
platformdirs==3.11.0
# via
# -r requirements-build.in
# mkdocs
pluggy==1.4.0
# via
# -r requirements-build.in
# hatchling
pygments==2.17.2
# via
# -r requirements-build.in
# mkdocs-material
# mkdocs-techdocs-core
pymdown-extensions==10.3.1
# via
# -r requirements-build.in
# mkdocs-material
# mkdocs-techdocs-core
python-dateutil==2.8.2
# via
# -r requirements-build.in
# ghp-import
python-slugify==8.0.2
# via
# -r requirements-build.in
# mkdocs-monorepo-plugin
pyyaml==6.0.1
# via
# -r requirements-build.in
# mkdocs
# pymdown-extensions
# pyyaml-env-tag
pyyaml-env-tag==0.1
# via
# -r requirements-build.in
# mkdocs
regex==2023.12.25
# via
# -r requirements-build.in
# mkdocs-material
requests==2.31.0
# via
# -r requirements-build.in
# mkdocs-material
# plantuml-markdown
setuptools-scm==8.0.4
# via
# -r requirements-build.in
# hatch-vcs
six==1.16.0
# via
# -r requirements-build.in
# plantuml-markdown
# python-dateutil
text-unidecode==1.3
# via
# -r requirements-build.in
# python-slugify
tomli==2.0.1
# via
# -r requirements-build.in
# hatchling
# setuptools-scm
trove-classifiers==2023.11.29
# via
# -r requirements-build.in
# hatchling
typing-extensions==4.9.0
# via
# -r requirements-build.in
# setuptools-scm
urllib3==2.1.0
# via
# -r requirements-build.in
# requests
watchdog==3.0.0
# via
# -r requirements-build.in
# mkdocs
wheel==0.42.0
# via -r requirements-build.in
# The following packages are considered to be unsafe in a requirements file:
pip==23.3.2
# via -r requirements-build.in
setuptools==68.2.2
# via
# -r requirements-build.in
# setuptools-scm

View File

@@ -0,0 +1,81 @@
# to use this file, `pip install pip-tools -U` first (need >= 7.3), then
# pip-compile --allow-unsafe --output-file=requirements.txt --strip-extras requirements.in
# get a newer archive/commit SHA from github, then run cachito_hash.sh to update the sha256: hash
# must include from source because https://pypi.org/project/mkdocs-techdocs-core/1.3.3/#files source tarball is missing requirements.txt (so cachito poops itself)
mkdocs-techdocs-core==1.3.3
https://github.com/backstage/mkdocs-techdocs-core/archive/bbdab44e0d3aecfdc4e77b14c72b57791d4902b2.zip#egg=mkdocs-techdocs-core&cachito_hash=sha256:40421a5f43b11fd9ea9f92e107f91089b6bfa326967ad497666ab5a451fcf136
# get a newer archive/commit SHA from github, then run cachito_hash.sh to update the sha256: hash
# must include from source because https://pypi.org/project/plantuml-markdown/3.9.2/#files contains no source tarball (so cachito poops itself)
plantuml-markdown==3.9.2
https://github.com/mikitex70/plantuml-markdown/archive/17d348bfaa9112cdd2130e6410ce3a50224db3cf.zip#egg=plantuml-markdown&cachito_hash=sha256:221cc4972c75ba911cad4a56df07f61771c20077f8cbc8966181e30cabf68de1
babel
calver==2022.6.26
certifi==2023.11.17
charset-normalizer==3.3.2
click==8.1.7
colorama==0.4.6
Cython<3.0
editables>=0.3
flit_core<4,>=2
flit_core<4,>=3.2
flit_core<4,>=3.8
flit_core>=3.3
ghp-import==2.1.0
hatch-nodejs-version>=0.3.0
hatch-requirements-txt
hatch-vcs>=0.3
hatchling
hatchling<2,>=1.6.0
hatchling>=0.21.1
hatchling>=0.25.1
hatchling>=1.17.1
idna==3.7
jinja2~=3.1.3
markdown-inline-graphviz-extension~=1.1.2
markdown==3.2.2
markupsafe==2.1.4
mdx-truly-sane-lists==1.3
mergedeep==1.3.4
mkdocs-material-extensions==1.3.1
mkdocs-material==9.4.14
mkdocs-monorepo-plugin==1.1.0
mkdocs==1.5.3
packaging==23.2
packaging>=20
packaging>=21.3
pathspec==0.12.1
pathspec>=0.10.1
platformdirs==3.11.0
pluggy>=1.0.0
pygments==2.17.2
pymdown-extensions==10.3.1
python-dateutil==2.8.2
python-slugify==8.0.2
pyyaml-env-tag==0.1
pyyaml==6.0.1
regex==2023.12.25
requests==2.31.0
setuptools
setuptools_scm
setuptools-scm>=6.4.0
setuptools>=36.6
setuptools>=40.8.0
setuptools>=61
six==1.16.0
text-unidecode==1.3
tomli>=1
tomli>=1.2.2
trove-classifiers
typing-extensions
urllib3~=2.1.0
watchdog==3.0.0
wheel
wheel==0.42.0
# The following packages are considered to be unsafe in a requirements file:
pip==23.3.2
setuptools==68.2.2

View File

@@ -0,0 +1,215 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# by the following command:
#
# pip-compile --allow-unsafe --output-file=requirements.txt --strip-extras requirements.in
#
babel==2.14.0
# via
# -r requirements.in
# mkdocs-material
calver==2022.6.26
# via -r requirements.in
certifi==2023.11.17
# via
# -r requirements.in
# requests
charset-normalizer==3.3.2
# via
# -r requirements.in
# requests
click==8.1.7
# via
# -r requirements.in
# mkdocs
colorama==0.4.6
# via
# -r requirements.in
# mkdocs-material
cython==0.29.37
# via -r requirements.in
editables==0.5
# via
# -r requirements.in
# hatchling
flit-core==3.9.0
# via -r requirements.in
ghp-import==2.1.0
# via
# -r requirements.in
# mkdocs
hatch-nodejs-version==0.3.2
# via -r requirements.in
hatch-requirements-txt==0.4.1
# via -r requirements.in
hatch-vcs==0.4.0
# via -r requirements.in
hatchling==1.21.1
# via
# -r requirements.in
# hatch-nodejs-version
# hatch-requirements-txt
# hatch-vcs
idna==3.7
# via
# -r requirements.in
# requests
jinja2==3.1.3
# via
# -r requirements.in
# mkdocs
# mkdocs-material
markdown==3.2.2
# via
# -r requirements.in
# markdown-inline-graphviz-extension
# mdx-truly-sane-lists
# mkdocs
# mkdocs-material
# mkdocs-techdocs-core
# plantuml-markdown
# pymdown-extensions
markdown-inline-graphviz-extension==1.1.2
# via
# -r requirements.in
# mkdocs-techdocs-core
markupsafe==2.1.4
# via
# -r requirements.in
# jinja2
# mkdocs
mdx-truly-sane-lists==1.3
# via
# -r requirements.in
# mkdocs-techdocs-core
mergedeep==1.3.4
# via
# -r requirements.in
# mkdocs
mkdocs==1.5.3
# via
# -r requirements.in
# mkdocs-material
# mkdocs-monorepo-plugin
# mkdocs-techdocs-core
mkdocs-material==9.4.14
# via
# -r requirements.in
# mkdocs-techdocs-core
mkdocs-material-extensions==1.3.1
# via
# -r requirements.in
# mkdocs-material
mkdocs-monorepo-plugin==1.1.0
# via
# -r requirements.in
# mkdocs-techdocs-core
mkdocs-techdocs-core @ https://github.com/backstage/mkdocs-techdocs-core/archive/bbdab44e0d3aecfdc4e77b14c72b57791d4902b2.zip#cachito_hash=sha256:40421a5f43b11fd9ea9f92e107f91089b6bfa326967ad497666ab5a451fcf136
# via -r requirements.in
packaging==23.2
# via
# -r requirements.in
# hatch-requirements-txt
# hatchling
# mkdocs
# setuptools-scm
paginate==0.5.6
# via mkdocs-material
pathspec==0.12.1
# via
# -r requirements.in
# hatchling
# mkdocs
plantuml-markdown @ https://github.com/mikitex70/plantuml-markdown/archive/17d348bfaa9112cdd2130e6410ce3a50224db3cf.zip#cachito_hash=sha256:221cc4972c75ba911cad4a56df07f61771c20077f8cbc8966181e30cabf68de1
# via
# -r requirements.in
# mkdocs-techdocs-core
platformdirs==3.11.0
# via
# -r requirements.in
# mkdocs
pluggy==1.4.0
# via
# -r requirements.in
# hatchling
pygments==2.17.2
# via
# -r requirements.in
# mkdocs-material
# mkdocs-techdocs-core
pymdown-extensions==10.3.1
# via
# -r requirements.in
# mkdocs-material
# mkdocs-techdocs-core
python-dateutil==2.8.2
# via
# -r requirements.in
# ghp-import
python-slugify==8.0.2
# via
# -r requirements.in
# mkdocs-monorepo-plugin
pyyaml==6.0.1
# via
# -r requirements.in
# mkdocs
# pymdown-extensions
# pyyaml-env-tag
pyyaml-env-tag==0.1
# via
# -r requirements.in
# mkdocs
regex==2023.12.25
# via
# -r requirements.in
# mkdocs-material
requests==2.31.0
# via
# -r requirements.in
# mkdocs-material
# plantuml-markdown
setuptools-scm==8.0.4
# via
# -r requirements.in
# hatch-vcs
six==1.16.0
# via
# -r requirements.in
# plantuml-markdown
# python-dateutil
text-unidecode==1.3
# via
# -r requirements.in
# python-slugify
tomli==2.0.1
# via
# -r requirements.in
# hatchling
# setuptools-scm
trove-classifiers==2023.11.29
# via
# -r requirements.in
# hatchling
typing-extensions==4.9.0
# via
# -r requirements.in
# setuptools-scm
urllib3==2.1.0
# via
# -r requirements.in
# requests
watchdog==3.0.0
# via
# -r requirements.in
# mkdocs
wheel==0.42.0
# via -r requirements.in
# The following packages are considered to be unsafe in a requirements file:
pip==23.3.2
# via -r requirements.in
setuptools==68.2.2
# via
# -r requirements.in
# setuptools-scm

8
.rhdh/docker/setup.py Normal file
View File

@@ -0,0 +1,8 @@
from setuptools import setup
setup(name='Python dependencies',
version='1.0',
description='Python dependencies',
author='Nick Boldt',
author_email='nboldt@redhat.com',
)