This commit introduces three new scripts:
- `release.sh` To be run by a user on their local machine to preview and
create a new release (tag + push)
- `check_commit_metadata.sh` For e.g. detecting breaking changes
- `genereate_release_notes.sh` To display the generated release notes,
used for previews and in `publish_release.sh`
The `release.sh` script can be run without arguments, and it will
automatically determine if we're to do a patch or minor release. A minor
release can be forced via `--minor` flag.
Breaking changes can be annotated either via commit/merge title prefix
(`feat!:`, `feat(api)!:`), or by adding the `release/breaking` label to
the PR that was merged (on GitHub).
Related #5233
I'm not sure why this issue is common, but it seems to be
based on: https://github.com/coder/coder/issues/4551.
This improves the error messages to be unique,
and also fixes a small edge-case bug a user ran into.
Our Windows test-runner often takes close to 3m to complete the test,
this was producing a few false failures due to us adding tests over time
and test times increasing.
* fix: No org admins until organizations are in the UI
Until organizations have management UI, we should not set any org
admins. This goes around the site wide perms transparently and
is confusing to users.
Default user is no longer an org admin, so the demotion test makes
no sense
Since AgentReportStats takes a stats function which was doing mutex
locking on agent shutdown, it was possible for there to be a deadlock
depending on how the AgentReportsStats Close function is implemented.
This mostly seems to happen on Windows test runners as it's pretty hard
to hit this edge case. The bug currently only exists in the test
implementation of AgentReportStats, however, this was refactored to be
more robust in case of future changes.
* feat: add dotfiles_uri var to dogfood template
* refactor: use dotfiles if dotfiles var exists
This ensures the `coder dotfiles` command only runs if the dotfiles var
in the template is not empty.
* Update dogfood/main.tf
* refactor: assign variable to shell variable
* Update dogfood/main.tf
* fixup!: add default value
* fix: Enable reconnectingpty loadtest and fix/improve logging
This commit re-enabled reconnectingpty loadtests after a logging
refactor of `(*agent).handleReconnectingPTY`. The reasons the tests were
flaking was that `logger.Error` was being called and `slogtest` failing
the test.
We could have set the option for `slogtest` to disable failing, but that
could hide real issues. The current approach improves reconnectingpty
logging overall and provides more insight into what's happening. It's
expected that reconnectingpty sessions fail after the agent is closed,
so calling `logger.Error` at that point is not wanted.
Ref: #5322
It turns out that writing tests that contain subtests should probably be
limited to table-based tests and tests that share a common setup shared
between tests.
Writing tests with a subtest like this:
```
func TestSomething(t *testing.T) {
t.Run("Subtest", func(t *testing.t) {})
}
```
Has the following disadvantages:
- It can lead to multiple tests failing with `(unknown)` status when
only one of the subtests hang (never exit)
- In Go 1.20rc1, using `t.Setenv` is no longer allowed if the parent
test is parallel
* fix: pin code-server to 4.8.3
We're having some terminal issues on macOS clients (i.e. iPad) with 4.9.0 so downgrading to 4.8.3 in the meantime.
* Update dogfood/main.tf