From befe16fe83dc10c9591792a37d91ac08143348ff Mon Sep 17 00:00:00 2001 From: Alex Vandiver Date: Thu, 13 Nov 2025 16:17:49 -0500 Subject: [PATCH 1/2] github: Run prettier over generated helm-docs. We bump the chart version to appease the linter. --- .github/workflows/dockerfile.yaml | 15 ++- kubernetes/chart/zulip/Chart.yaml | 2 +- kubernetes/chart/zulip/README.md | 170 ++++++++++++------------ kubernetes/chart/zulip/README.md.gotmpl | 2 +- 4 files changed, 101 insertions(+), 88 deletions(-) diff --git a/.github/workflows/dockerfile.yaml b/.github/workflows/dockerfile.yaml index 60aa7aa0b3..9669ef5bd6 100644 --- a/.github/workflows/dockerfile.yaml +++ b/.github/workflows/dockerfile.yaml @@ -52,8 +52,21 @@ jobs: - name: Run helm-docs uses: losisin/helm-docs-github-action@v1 + + - name: Run prettier over the re-generated docs + uses: creyD/prettier_action@v4.6 with: - fail-on-diff: true + prettier_options: --write kubernetes/chart/zulip/README.md + no_commit: True + + - name: Check for any diff + run: | + if ! git diff --exit-code; then + echo "Changes found!" + git status + git diff + exit 1 + fi helm-test: runs-on: ubuntu-latest diff --git a/kubernetes/chart/zulip/Chart.yaml b/kubernetes/chart/zulip/Chart.yaml index 962939bc5a..f439080406 100644 --- a/kubernetes/chart/zulip/Chart.yaml +++ b/kubernetes/chart/zulip/Chart.yaml @@ -10,7 +10,7 @@ maintainers: ## incremented each time you make changes to the chart and its ## templates, including the app version. Versions are expected to ## follow Semantic Versioning (https://semver.org/) -version: 0.11.41 +version: 0.11.42 ## This is the version number of the application being deployed. This ## version number should be incremented each time you make changes to diff --git a/kubernetes/chart/zulip/README.md b/kubernetes/chart/zulip/README.md index a842d3f2cc..98c5dcc985 100644 --- a/kubernetes/chart/zulip/README.md +++ b/kubernetes/chart/zulip/README.md @@ -1,6 +1,6 @@ # Zulip -![Version: 0.11.41](https://img.shields.io/badge/Version-0.11.41-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 11.4-0](https://img.shields.io/badge/AppVersion-11.4--0-informational?style=flat-square) +![Version: 0.11.42](https://img.shields.io/badge/Version-0.11.42-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 11.4-0](https://img.shields.io/badge/AppVersion-11.4--0-informational?style=flat-square) [Zulip](https://zulip.com/) is an open source threaded team chat that helps teams stay productive and focused. @@ -66,83 +66,83 @@ Now you're ready to follow [the installation instructions above](#installation). ## Values -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| fullnameOverride | string | `""` | | -| global.security.allowInsecureImages | bool | `true` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"zulip/docker-zulip"` | | -| image.tag | string | `"11.4-0"` | | -| imagePullSecrets | list | `[]` | | -| ingress.annotations | object | `{}` | | -| ingress.enabled | bool | `false` | | -| ingress.hosts[0].host | string | `"zulip.example.com"` | | -| ingress.hosts[0].paths[0].path | string | `"/"` | | -| ingress.tls | list | `[]` | | -| livenessProbe.enabled | bool | `true` | | -| livenessProbe.failureThreshold | int | `3` | | -| livenessProbe.initialDelaySeconds | int | `10` | | -| livenessProbe.periodSeconds | int | `10` | | -| livenessProbe.successThreshold | int | `1` | | -| livenessProbe.timeoutSeconds | int | `5` | | -| memcached.image.repository | string | `"bitnamilegacy/memcached"` | | -| memcached.image.tag | string | `"latest"` | | -| memcached.memcachedUsername | string | `"zulip@localhost"` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| podAnnotations | object | `{}` | | -| podLabels | object | `{}` | | -| podSecurityContext | object | `{}` | | -| postSetup.scripts | object | `{}` | | -| postgresql.auth.database | string | `"zulip"` | | -| postgresql.auth.username | string | `"zulip"` | | -| postgresql.image.repository | string | `"zulip/zulip-postgresql"` | | -| postgresql.image.tag | int | `14` | | -| postgresql.primary.containerSecurityContext.readOnlyRootFilesystem | bool | `false` | | -| postgresql.primary.containerSecurityContext.runAsGroup | int | `70` | | -| postgresql.primary.containerSecurityContext.runAsUser | int | `70` | | -| rabbitmq.auth.username | string | `"zulip"` | | -| rabbitmq.image.repository | string | `"bitnamilegacy/rabbitmq"` | | -| rabbitmq.image.tag | string | `"4.1.3"` | | -| rabbitmq.persistence.enabled | bool | `false` | | -| redis.architecture | string | `"standalone"` | | -| redis.image.repository | string | `"bitnamilegacy/redis"` | | -| redis.image.tag | string | `"latest"` | | -| redis.master.persistence.enabled | bool | `false` | | -| resources | object | `{}` | | -| securityContext | object | `{}` | | -| service.port | int | `80` | | -| service.type | string | `"ClusterIP"` | | -| serviceAccount.annotations | object | `{}` | | -| serviceAccount.create | bool | `true` | | -| serviceAccount.name | string | `""` | | -| sidecars | list | `[]` | | -| startupProbe.enabled | bool | `true` | | -| startupProbe.failureThreshold | int | `30` | | -| startupProbe.initialDelaySeconds | int | `10` | | -| startupProbe.periodSeconds | int | `10` | | -| startupProbe.successThreshold | int | `1` | | -| startupProbe.timeoutSeconds | int | `5` | | -| statefulSetAnnotations | object | `{}` | | -| statefulSetLabels | object | `{}` | | -| tolerations | list | `[]` | | -| zulip.environment.DISABLE_HTTPS | bool | `true` | | -| zulip.environment.SECRETS_email_password | string | `"123456789"` | | -| zulip.environment.SETTING_EMAIL_HOST | string | `""` | | -| zulip.environment.SETTING_EMAIL_HOST_USER | string | `"noreply@example.com"` | | -| zulip.environment.SETTING_EMAIL_PORT | string | `"587"` | | -| zulip.environment.SETTING_EMAIL_USE_SSL | string | `"False"` | | -| zulip.environment.SETTING_EMAIL_USE_TLS | string | `"True"` | | -| zulip.environment.SETTING_EXTERNAL_HOST | string | `"zulip.example.com"` | | -| zulip.environment.SETTING_ZULIP_ADMINISTRATOR | string | `"admin@example.com"` | | -| zulip.environment.SSL_CERTIFICATE_GENERATION | string | `"self-signed"` | | -| zulip.environment.TRUST_GATEWAY_IP | bool | `true` | | -| zulip.environment.ZULIP_AUTH_BACKENDS | string | `"EmailAuthBackend"` | | -| zulip.persistence.accessMode | string | `"ReadWriteOnce"` | | -| zulip.persistence.enabled | bool | `true` | | -| zulip.persistence.size | string | `"10Gi"` | | -| zulip.persistence.storageClass | string | `nil` | | +| Key | Type | Default | Description | +| ------------------------------------------------------------------ | ------ | --------------------------- | ----------- | +| affinity | object | `{}` | | +| fullnameOverride | string | `""` | | +| global.security.allowInsecureImages | bool | `true` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"zulip/docker-zulip"` | | +| image.tag | string | `"11.4-0"` | | +| imagePullSecrets | list | `[]` | | +| ingress.annotations | object | `{}` | | +| ingress.enabled | bool | `false` | | +| ingress.hosts[0].host | string | `"zulip.example.com"` | | +| ingress.hosts[0].paths[0].path | string | `"/"` | | +| ingress.tls | list | `[]` | | +| livenessProbe.enabled | bool | `true` | | +| livenessProbe.failureThreshold | int | `3` | | +| livenessProbe.initialDelaySeconds | int | `10` | | +| livenessProbe.periodSeconds | int | `10` | | +| livenessProbe.successThreshold | int | `1` | | +| livenessProbe.timeoutSeconds | int | `5` | | +| memcached.image.repository | string | `"bitnamilegacy/memcached"` | | +| memcached.image.tag | string | `"latest"` | | +| memcached.memcachedUsername | string | `"zulip@localhost"` | | +| nameOverride | string | `""` | | +| nodeSelector | object | `{}` | | +| podAnnotations | object | `{}` | | +| podLabels | object | `{}` | | +| podSecurityContext | object | `{}` | | +| postSetup.scripts | object | `{}` | | +| postgresql.auth.database | string | `"zulip"` | | +| postgresql.auth.username | string | `"zulip"` | | +| postgresql.image.repository | string | `"zulip/zulip-postgresql"` | | +| postgresql.image.tag | int | `14` | | +| postgresql.primary.containerSecurityContext.readOnlyRootFilesystem | bool | `false` | | +| postgresql.primary.containerSecurityContext.runAsGroup | int | `70` | | +| postgresql.primary.containerSecurityContext.runAsUser | int | `70` | | +| rabbitmq.auth.username | string | `"zulip"` | | +| rabbitmq.image.repository | string | `"bitnamilegacy/rabbitmq"` | | +| rabbitmq.image.tag | string | `"4.1.3"` | | +| rabbitmq.persistence.enabled | bool | `false` | | +| redis.architecture | string | `"standalone"` | | +| redis.image.repository | string | `"bitnamilegacy/redis"` | | +| redis.image.tag | string | `"latest"` | | +| redis.master.persistence.enabled | bool | `false` | | +| resources | object | `{}` | | +| securityContext | object | `{}` | | +| service.port | int | `80` | | +| service.type | string | `"ClusterIP"` | | +| serviceAccount.annotations | object | `{}` | | +| serviceAccount.create | bool | `true` | | +| serviceAccount.name | string | `""` | | +| sidecars | list | `[]` | | +| startupProbe.enabled | bool | `true` | | +| startupProbe.failureThreshold | int | `30` | | +| startupProbe.initialDelaySeconds | int | `10` | | +| startupProbe.periodSeconds | int | `10` | | +| startupProbe.successThreshold | int | `1` | | +| startupProbe.timeoutSeconds | int | `5` | | +| statefulSetAnnotations | object | `{}` | | +| statefulSetLabels | object | `{}` | | +| tolerations | list | `[]` | | +| zulip.environment.DISABLE_HTTPS | bool | `true` | | +| zulip.environment.SECRETS_email_password | string | `"123456789"` | | +| zulip.environment.SETTING_EMAIL_HOST | string | `""` | | +| zulip.environment.SETTING_EMAIL_HOST_USER | string | `"noreply@example.com"` | | +| zulip.environment.SETTING_EMAIL_PORT | string | `"587"` | | +| zulip.environment.SETTING_EMAIL_USE_SSL | string | `"False"` | | +| zulip.environment.SETTING_EMAIL_USE_TLS | string | `"True"` | | +| zulip.environment.SETTING_EXTERNAL_HOST | string | `"zulip.example.com"` | | +| zulip.environment.SETTING_ZULIP_ADMINISTRATOR | string | `"admin@example.com"` | | +| zulip.environment.SSL_CERTIFICATE_GENERATION | string | `"self-signed"` | | +| zulip.environment.TRUST_GATEWAY_IP | bool | `true` | | +| zulip.environment.ZULIP_AUTH_BACKENDS | string | `"EmailAuthBackend"` | | +| zulip.persistence.accessMode | string | `"ReadWriteOnce"` | | +| zulip.persistence.enabled | bool | `true` | | +| zulip.persistence.size | string | `"10Gi"` | | +| zulip.persistence.storageClass | string | `nil` | | ## About this helm chart @@ -155,7 +155,7 @@ configuring Zulip through environment variables [here](https://github.com/zulip/docker-zulip/#configuration). Variables can be either a plain scalar value (i.e., a string or -integer), or a projected value from a secret or configmap. For +integer), or a projected value from a secret or configmap. For example: ```yaml @@ -182,9 +182,9 @@ image, because it contains the Postgresql plugins that are needed to run Zulip. ## Requirements -| Repository | Name | Version | -|------------|------|---------| -| oci://registry-1.docker.io/bitnamicharts | memcached | 8.1.5 | -| oci://registry-1.docker.io/bitnamicharts | postgresql | 18.1.8 | -| oci://registry-1.docker.io/bitnamicharts | rabbitmq | 16.0.14 | -| oci://registry-1.docker.io/bitnamicharts | redis | 23.2.12 | +| Repository | Name | Version | +| ---------------------------------------- | ---------- | ------- | +| oci://registry-1.docker.io/bitnamicharts | memcached | 8.1.5 | +| oci://registry-1.docker.io/bitnamicharts | postgresql | 18.1.8 | +| oci://registry-1.docker.io/bitnamicharts | rabbitmq | 16.0.14 | +| oci://registry-1.docker.io/bitnamicharts | redis | 23.2.12 | diff --git a/kubernetes/chart/zulip/README.md.gotmpl b/kubernetes/chart/zulip/README.md.gotmpl index 9de939a8dc..72a244681f 100644 --- a/kubernetes/chart/zulip/README.md.gotmpl +++ b/kubernetes/chart/zulip/README.md.gotmpl @@ -77,7 +77,7 @@ configuring Zulip through environment variables [here](https://github.com/zulip/docker-zulip/#configuration). Variables can be either a plain scalar value (i.e., a string or -integer), or a projected value from a secret or configmap. For +integer), or a projected value from a secret or configmap. For example: ```yaml From a733fd69645efc1c6ee681558deea128e2e80a9e Mon Sep 17 00:00:00 2001 From: Alex Vandiver Date: Thu, 13 Nov 2025 15:36:06 -0500 Subject: [PATCH 2/2] github: Add prettier lint step. --- .editorconfig | 4 +++ .github/workflows/prettier.yaml | 26 +++++++++++++++++++ CODE_OF_CONDUCT.md | 20 +++++++------- README.md | 4 +-- .../README.custom_zulip_files.md | 2 +- kubernetes/chart/zulip/CHANGELOG.md | 1 - 6 files changed, 43 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/prettier.yaml diff --git a/.editorconfig b/.editorconfig index 9a0ae3c7c3..b3dce89fc6 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,3 +14,7 @@ switch_case_indent = true [*.{yaml,yml}] indent_size = 2 + +[*.md] +indent_size = 2 +max_line_length = 80 diff --git a/.github/workflows/prettier.yaml b/.github/workflows/prettier.yaml new file mode 100644 index 0000000000..95ccd0268b --- /dev/null +++ b/.github/workflows/prettier.yaml @@ -0,0 +1,26 @@ +--- +name: Lint markdown files prettier + +on: + pull_request: + branches: + - main + +jobs: + prettier: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v5 + - uses: creyD/prettier_action@v4.6 + with: + dry: true + prettier_options: "--write **/*.md" + - name: Check for any diff + run: | + if ! git diff --exit-code; then + echo "Changes found!" + git status + git diff + exit 1 + fi diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index c98db53ae2..79c57d13cc 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -8,19 +8,19 @@ In the interest of fostering an open and welcoming environment, we as contributo Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting +- The use of sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities diff --git a/README.md b/README.md index 1f72763d9b..ee5686f50f 100644 --- a/README.md +++ b/README.md @@ -217,7 +217,7 @@ proxies][other-proxy]. [other-proxy]: https://zulip.readthedocs.io/en/latest/production/reverse-proxies.html#other-proxies **Outgoing proxy**: Zulip uses [Smokescreen][smokescreen] to proxy all -outgoing HTTP connections and prevent SSRF attacks. If you have +outgoing HTTP connections and prevent SSRF attacks. If you have private IPs (e.g., outgoing webhook hosts on private IPs), you can set `PROXY_ALLOW_ADDRESSES` or `PROXY_ALLOW_RANGES` to comma-separated lists of IP addresses or CIDR ranges. @@ -225,7 +225,7 @@ lists of IP addresses or CIDR ranges. [smokescreen]: https://zulip.readthedocs.io/en/latest/production/deployment.html#customizing-the-outgoing-http-proxy **Incoming email**: The Docker image exposes port 25, which is already -configured with Zulip's incoming email server. To use it, publish +configured with Zulip's incoming email server. To use it, publish port 25 of the Docker container, set `SETTING_EMAIL_GATEWAY_PATTERN`, and add an MX record to your DNS configuration pointing to the Docker container's public hostname (or wherever you chose to publicly expose diff --git a/custom_zulip_files/README.custom_zulip_files.md b/custom_zulip_files/README.custom_zulip_files.md index 79986f3e35..d87e74e4a8 100644 --- a/custom_zulip_files/README.custom_zulip_files.md +++ b/custom_zulip_files/README.custom_zulip_files.md @@ -1,5 +1,5 @@ The custom_zulip_files mechanism allows you to test edits to Zulip -before making changes in the upstream repo. It works by copying the +before making changes in the upstream repo. It works by copying the contents of this directory on top of the main zulip/zulip checkout as part of the Docker build process. diff --git a/kubernetes/chart/zulip/CHANGELOG.md b/kubernetes/chart/zulip/CHANGELOG.md index 8fd659caff..84fea7973a 100644 --- a/kubernetes/chart/zulip/CHANGELOG.md +++ b/kubernetes/chart/zulip/CHANGELOG.md @@ -141,7 +141,6 @@ ## [0.3.0] - 2022-04-21 - Update dependencies: - - Helm charts: | Repository | Name | Version |