<feed xmlns='http://www.w3.org/2005/Atom'>
<title>website/.github, branch main</title>
<subtitle>The site of tala.run: a Vue frontend and an ASP.NET Core API.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/'/>
<entry>
<title>Pin the CodeQL action to its v4.38.2 release</title>
<updated>2026-11-08T21:42:31+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-08T21:42:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=5552879a1e328711319051a9b074b5769f69564e'/>
<id>5552879a1e328711319051a9b074b5769f69564e</id>
<content type='text'>
The init and analyze steps were pinned to 7999b86c, a commit no release tag
points at, with a "# v4" comment that names another commit (zizmor
ref-version-mismatch, two code-scanning alerts). Both steps now use
2892aa5e, the commit of v4.38.2, with that exact version as the comment.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The init and analyze steps were pinned to 7999b86c, a commit no release tag
points at, with a "# v4" comment that names another commit (zizmor
ref-version-mismatch, two code-scanning alerts). Both steps now use
2892aa5e, the commit of v4.38.2, with that exact version as the comment.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Gate the API documentation with DocFX</title>
<updated>2026-10-15T15:35:17+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-15T15:35:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=018696d64cdb4088c0dd502ceab8d8ed9e11543e'/>
<id>018696d64cdb4088c0dd502ceab8d8ed9e11543e</id>
<content type='text'>
The Kotlin backend checked its documentation with Dokka; the ASP.NET Core
API had only the compiler warning for a public declaration without a
comment. CI now builds the API reference with DocFX, every warning as an
error, and Documents/api/CheckDocumentation.cs fails when a namespace,
type or member of the reference has no description, internal and
private members included. The setup is the one Progmaweb uses: the
docfx tool pinned in .config/dotnet-tools.json, the configuration and
the namespace description under Documents/api, and the generated
reference ignored.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Kotlin backend checked its documentation with Dokka; the ASP.NET Core
API had only the compiler warning for a public declaration without a
comment. CI now builds the API reference with DocFX, every warning as an
error, and Documents/api/CheckDocumentation.cs fails when a namespace,
type or member of the reference has no description, internal and
private members included. The setup is the one Progmaweb uses: the
docfx tool pinned in .config/dotnet-tools.json, the configuration and
the namespace description under Documents/api, and the generated
reference ignored.
</pre>
</div>
</content>
</entry>
<entry>
<title>Run the backend job on Ubuntu</title>
<updated>2026-10-15T15:26:11+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-15T15:26:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=18951f0c5c6e3f54ccd8757cec040a40bd2b5068'/>
<id>18951f0c5c6e3f54ccd8757cec040a40bd2b5068</id>
<content type='text'>
The ASP.NET Core API builds and tests the same on every host, and the
macOS runners are the queue every repository of the organization waits
in: the first run of the job was cancelled before it started.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The ASP.NET Core API builds and tests the same on every host, and the
macOS runners are the queue every repository of the organization waits
in: the first run of the job was cancelled before it started.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Serve the site API from ASP.NET Core 10</title>
<updated>2026-10-15T14:36:58+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-15T14:36:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=9d1b19bc01d5d3d08e3528d69924a86e7e2bfc2a'/>
<id>9d1b19bc01d5d3d08e3528d69924a86e7e2bfc2a</id>
<content type='text'>
The language website ran a Spring Boot application on JVM 25 for two
endpoints, and it was the only JVM on the server: a quarter of a
gigabyte of resident memory for /api/v1/site and /health. The server
already runs ASP.NET Core 10 for Progmaweb.

The API is now Progmasoft.Tala.Website.Api, a minimal ASP.NET Core 10
application under the namespace Progmasoft.Tala.Website. It answers as
before: /api/v1/site returns the site's own state as the same JSON,
POST is not allowed there, /health answers with an empty 200, and every
other path is 404. It listens on 127.0.0.1, port 5086 unless PORT says
otherwise, as the Spring process did, so Nginx is unchanged.

- Progmasoft.Tala.Website.slnx, Directory.Build.props and global.json
  set up the solution with warnings as errors, documentation comments
  required and NuGet lock files.
- Progmasoft.Tala.Website.Api.Tests runs the endpoints in an in-memory
  host with xUnit v3 on Microsoft.Testing.Platform.
- ops/systemd/tala-site-api.service runs the published DLL on the shared
  runtime from /srv/xsharp/website/current/site-api, with the hardening
  of the unit it replaces.
- CI builds, tests, publishes and reports coverage with dotnet; CodeQL
  analyzes C# instead of Kotlin; Renovate watches NuGet instead of
  Gradle.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The language website ran a Spring Boot application on JVM 25 for two
endpoints, and it was the only JVM on the server: a quarter of a
gigabyte of resident memory for /api/v1/site and /health. The server
already runs ASP.NET Core 10 for Progmaweb.

The API is now Progmasoft.Tala.Website.Api, a minimal ASP.NET Core 10
application under the namespace Progmasoft.Tala.Website. It answers as
before: /api/v1/site returns the site's own state as the same JSON,
POST is not allowed there, /health answers with an empty 200, and every
other path is 404. It listens on 127.0.0.1, port 5086 unless PORT says
otherwise, as the Spring process did, so Nginx is unchanged.

- Progmasoft.Tala.Website.slnx, Directory.Build.props and global.json
  set up the solution with warnings as errors, documentation comments
  required and NuGet lock files.
- Progmasoft.Tala.Website.Api.Tests runs the endpoints in an in-memory
  host with xUnit v3 on Microsoft.Testing.Platform.
- ops/systemd/tala-site-api.service runs the published DLL on the shared
  runtime from /srv/xsharp/website/current/site-api, with the hardening
  of the unit it replaces.
- CI builds, tests, publishes and reports coverage with dotnet; CodeQL
  analyzes C# instead of Kotlin; Renovate watches NuGet instead of
  Gradle.
</pre>
</div>
</content>
</entry>
<entry>
<title>Call the language Tala in the API, the documents and the templates</title>
<updated>2026-10-12T03:16:43+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-12T03:16:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=1bb833c4b98f5cd7343ae7b227c0fc39ee44deca'/>
<id>1bb833c4b98f5cd7343ae7b227c0fc39ee44deca</id>
<content type='text'>
The pages were renamed; the rest of the repository still said Visual X#:
- the site API answered with the name Visual X#, and its test expected it;
- the documents, the issue and pull request templates, the support address
  and the name of the code scanning configuration.

The documents also said that a left-to-right mark follows the name of the
language in Hebrew text. That was for the `#` of the old name; the sentence
now speaks of names that end in a symbol, such as C#.

Not changed: host names, paths and unit names on the server, the name of the
backend artifact, the Kotlin package of the backend, and the keys of the
browser storage.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The pages were renamed; the rest of the repository still said Visual X#:
- the site API answered with the name Visual X#, and its test expected it;
- the documents, the issue and pull request templates, the support address
  and the name of the code scanning configuration.

The documents also said that a left-to-right mark follows the name of the
language in Hebrew text. That was for the `#` of the old name; the sentence
now speaks of names that end in a symbol, such as C#.

Not changed: host names, paths and unit names on the server, the name of the
backend artifact, the Kotlin package of the backend, and the keys of the
browser storage.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge the Renovate change into this branch</title>
<updated>2026-10-10T20:19:39+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-10T20:19:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=2ab378a441c98683d5b50d3f38eef8d2e2a4c788'/>
<id>2ab378a441c98683d5b50d3f38eef8d2e2a4c788</id>
<content type='text'>
The pull request that hands version updates to Renovate is folded in
here, so that the two workflow changes are tested and merged once.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The pull request that hands version updates to Renovate is folded in
here, so that the two workflow changes are tested and merged once.
</pre>
</div>
</content>
</entry>
<entry>
<title>Hand version updates to Renovate</title>
<updated>2026-10-10T19:30:17+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-10T19:30:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=47c1095335cc2b8adcfbe04df2ffe7d6df3ab735'/>
<id>47c1095335cc2b8adcfbe04df2ffe7d6df3ab735</id>
<content type='text'>
Renovate proposes the version updates of this repository from now on.
It watches what Dependabot watched, looks once a week, takes a release
a week after it is published, opens one pull request for each kind of
dependency with at most two open, and rebases a pull request only when
it conflicts. A dashboard issue lists what is pending.

The Dependabot configuration is removed, which turns its version
updates off. Dependabot keeps its alerts and its security updates,
which are repository settings. Renovate does not open its own pull
requests for vulnerabilities, so one advisory does not get two fixes.

The configuration passes Renovate's validator and takes effect when
the Renovate app is installed on the repository.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Renovate proposes the version updates of this repository from now on.
It watches what Dependabot watched, looks once a week, takes a release
a week after it is published, opens one pull request for each kind of
dependency with at most two open, and rebases a pull request only when
it conflicts. A dashboard issue lists what is pending.

The Dependabot configuration is removed, which turns its version
updates off. Dependabot keeps its alerts and its security updates,
which are repository settings. Renovate does not open its own pull
requests for vulnerabilities, so one advisory does not get two fixes.

The configuration passes Renovate's validator and takes effect when
the Renovate app is installed on the repository.
</pre>
</div>
</content>
</entry>
<entry>
<title>Drop the second Dependency Review workflow</title>
<updated>2026-10-10T17:42:34+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-10T17:42:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=5aee5ccf129c404ae8b7805ee03247ee981298c6'/>
<id>5aee5ccf129c404ae8b7805ee03247ee981298c6</id>
<content type='text'>
ci.yml already has a dependency-review job, which I missed. The
workflow this branch added ran the same review a second time on every
pull request, so it is removed; the existing job stays as it is.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ci.yml already has a dependency-review job, which I missed. The
workflow this branch added ran the same review a second time on every
pull request, so it is removed; the existing job stays as it is.
</pre>
</div>
</content>
</entry>
<entry>
<title>Leave out the Scorecard workflow</title>
<updated>2026-10-10T17:26:41+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-10T17:26:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=24edc8c26c1985e62405dc929ab69f63deabe019'/>
<id>24edc8c26c1985e62405dc929ab69f63deabe019</id>
<content type='text'>
The owner decided against running OpenSSF Scorecard here. The workflow
added by the commit before this one is removed; nothing else changes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The owner decided against running OpenSSF Scorecard here. The workflow
added by the commit before this one is removed; nothing else changes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add workflow, repository and dependency analysis</title>
<updated>2026-10-10T17:22:57+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-10T17:22:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=af41dcfb2da79fa9b864b57a8472334155896d93'/>
<id>af41dcfb2da79fa9b864b57a8472334155896d93</id>
<content type='text'>
zizmor audits the workflows themselves for what makes a workflow
unsafe, and uploads what it finds to code scanning. Its first run here
found one thing, 4 times: a checkout that leaves the job's token in
the checked-out repository, where any later step can read it. No
workflow pushes or needs the token after the checkout, so every checkout
now sets persist-credentials to false, and zizmor reports nothing.

OpenSSF Scorecard grades how the repository is kept: branch protection,
pinned dependencies, token permissions and the like. It runs on the
default branch and weekly, publishes its score and uploads its findings to
code scanning.

Dependency Review fails a pull request that adds or changes a dependency
with a known vulnerability of high severity or worse. Dependabot watches
what is already there; this holds what comes in.

Every new action is pinned to a commit, each job names the permissions
it needs, and no new workflow has a default permission.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
zizmor audits the workflows themselves for what makes a workflow
unsafe, and uploads what it finds to code scanning. Its first run here
found one thing, 4 times: a checkout that leaves the job's token in
the checked-out repository, where any later step can read it. No
workflow pushes or needs the token after the checkout, so every checkout
now sets persist-credentials to false, and zizmor reports nothing.

OpenSSF Scorecard grades how the repository is kept: branch protection,
pinned dependencies, token permissions and the like. It runs on the
default branch and weekly, publishes its score and uploads its findings to
code scanning.

Dependency Review fails a pull request that adds or changes a dependency
with a known vulnerability of high severity or worse. Dependabot watches
what is already there; this holds what comes in.

Every new action is pinned to a commit, each job names the permissions
it needs, and no new workflow has a default permission.
</pre>
</div>
</content>
</entry>
</feed>
