## What changed?
Add `fairsim` binary (from #8158) to `.gitignore` and `make clean` and
remove it from the repo. (Don't add it to `make bins` since it's not
generally useful.)
## Why
It accidentally got checked in.
## What changed?
Fixed a bug in the gcloud visibility_archiver.go file and added a new
unit test in visibility_archiver_test.go.
## Why?
There is a bug in the visibility-archiver implementation of the Google
Cloud archiver. All archived workflows are being retrieved and displayed
twice. This change fixes that bug.
## How did you test it?
- [X] built
- [X] run locally and tested manually
- [ ] covered by existing tests
- [X] added new unit test(s)
- [ ] added new functional test(s)
## Potential risks
No risk since the archiver is completely decoupled from the core
functionality.
## What changed?
Run our flaky test report on a cadence and send results in Slack
## Why?
Help oss team take action on our flaky alerts
## How did you test it?
- [ ] built
- [ ] run locally and tested manually
- [ ] covered by existing tests
- [ ] added new unit test(s)
- [ ] added new functional test(s)
## Potential risks
NA
## What changed?
Expanding `testrunner` tool to add alerts for panics and data races.
Sample table with an injected data race (and real panic):
<table><tr><th><th>Tests</th><th>Passed ✅</th><th>Skipped
⏭️</th><th>Failed ❌</th></tr><tr><td>JUnit Test Report</td><td>721
ran</td><td>340 passed</td><td>370 skipped</td><td>11
failed</td></tr></table>
<table><tr><th>Test</th><th>Result</th></tr><tr><td
colspan="2"><strong>JUnit Test
Report</strong></td></tr><tr><td>functional-test (crash)</td><td>❌
failure</td></tr><tr><td>io/server/tests.TestActivityApiBatchResetClientTestSuite/TestActivityBatchReset_DataRace</td><td>❌
failure</td></tr><tr><td>io/server/tests.TestTaskQueueStats_Pri_Suite/TestNoTasks_ValidateStats</td><td>❌
failure</td></tr><tr><td>io/server/tests.TestVersioning3FunctionalSuite/TestUnpinnedQuery_NoSticky/ForceTaskForwardForcePollForwardForceAsync</td><td>❌
failure</td></tr><tr><td>io/server/tests.TestVersioningFunctionalSuite/TestDispatchQueryOld/ForceTaskForwardForcePollForwardForceAsync</td><td>❌
failure</td></tr><tr><td>io/server/tests.TestActivityApiBatchResetClientTestSuite/TestActivityBatchReset_DataRace
(retry 1)</td><td>❌
failure</td></tr><tr><td>io/server/tests.TestActivityApiBatchResetClientTestSuite/TestActivityBatchReset_DataRace
(retry 2)</td><td>❌ failure</td></tr><tr><td>func1.DATA RACE: Data race
detected — in
go.temporal.io/server/tests.(*ActivityApiBatchResetClientTestSuite).TestActivityBatchReset_DataRace.func1</td><td>❌
failure</td></tr><tr><td>PANIC: runtime error: invalid memory address or
nil pointer dereference — in
TestTaskQueueStats_Pri_Suite/TestAddMultipleTasks_MultiplePartitions_ValidateStats_Cached</td><td>❌
failure</td></tr><tr><td>func1.DATA RACE: Data race detected — in
go.temporal.io/server/tests.(*ActivityApiBatchResetClientTestSuite).TestActivityBatchReset_DataRace.func1</td><td>❌
failure</td></tr><tr><td>func1.DATA RACE: Data race detected — in
go.temporal.io/server/tests.(*ActivityApiBatchResetClientTestSuite).TestActivityBatchReset_DataRace.func1</td><td>❌
failure</td></tr></table>
Source:
https://github.com/temporalio/temporal/actions/runs/17870152469?pr=8351
## Why?
This change will help the temporal team find bugs sooner.
## How did you test it?
- [ ] built
- [ ] run locally and tested manually
- [ ] covered by existing tests
- [X] added new unit test(s)
- [ ] added new functional test(s)
## Potential risks
NA
## What changed?
Added support for defining protos in chasm libs.
## Why?
Keep everything local to the library.
## How did you test it?
- [x] built
- [x] run locally and tested manually
## What changed?
This reverts commit 9cffbc016d.
## Why?
It broke a build action
## How did you test it?
## Potential risks
## Documentation
## Is hotfix candidate?
## What changed?
<!-- Describe what has changed in this PR -->
Remove `temporalio-dashboards` submodule. Checkout and extract the
dashboard from `tar` instead.
## Why?
<!-- Tell your future self why have you made these changes -->
Remove top-level `.gitmodules` file (visually cluttering the top-level
of the repo).
## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->
## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->
## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->
## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->
## What changed?
- Add (back) make target buf-breaking to run buf's breaking proto
changes check against the parent commit and the main branch.
- Add buf-breaking to ci-build-misc so it runs in CI.
- Fix goimports target to use shell variables instead of git variables
to make make faster, and also fix the binary name (was just broken).
- GitHub Actions: run tests on PR head, not merge.
## Why?
Detecting breaking proto changes early avoids bugs.
## How did you test it?
Manual testing with deliberate breaking changes.
## What changed?
- Remove `proto/api` submodule.
- Adds a new program that's automatically run by the Makefile as
required to output the api protos in binary form, which can be used by
most tools. The command is run by `go run` and uses the same api-go
reference as the rest of the server for the source protos.
- Removed http annotations from internal matchingservice proto.
## Why?
- Ensure that the api-go import (in go.mod) and the proto files imported
by this repo's proto files are always in sync.
- Simplify update process, stop having to mess with submodules.
## How did you test it?
running commands manually a lot
## Potential risks
Importing protos from somewhere other than our api and google well-known
protos may require some updates to the script's import path logic.
## Documentation
updated docs
## What changed?
All tooling is now installed to and used from a local binary directory.
After these changes you'll never need to run `make install` or `make
update-BLAH` to keep our tools up to date; Make will do that for you.
## Why?
Keeping tool versions in sync across repos is a nightmare when each repo
installs its tooling globally. To fix that we're going to install all
our tools into a local bin directory and use those versions for
everything.
This is set up using two directories: a local binary directory (.bin)
and a stamp directory for state-tracking. The stamp directory is used
for programs that need to be named a certain way; the stampfile is
how we know if we've installed the right version.
## How did you test it?
I ran through our common makefile uses locally
## Potential risks
None that I'm aware of
## Documentation
No
## Is hotfix candidate?
No
**What changed?**
- In CI, build most of the tests and dependencies and reuse them in
subsequent steps.
- Additionally pre-build dependencies separately on a weekly schedule
(in buildkite configuration) and reuse them when possible.
- Add more test sharding for functional tests (split the main functional
test suite into three).
**Why?**
Increase parallelism, reduce latency of getting test results, reduce
granularity of retries
**How did you test it?**
lots of testing on buildkite
**Potential risks**
**Is hotfix candidate?**
This PR adds the ability to set specific tally.SanitizeOptions via temporal configuration. If the configuration is not set, we rely on the default that is defined in code. Otherwise, we will generate a tally.SanitizeOptions by parsing the configuration file and converting it to a tally.SanitizeOptions.
Because configuration comes in via yaml, all relevant input fields are strings. The code converts the strings to runes and performs length check validations. Any invalid configuration will fail server startup.
* Added /build to .gitignore
* Minor cleanup in metadata_test_config
* Added ReplicationHistory field to NamespaceDetail
* Initial checkin of writing Active Cluster History to NS
* Changed handler to write ReplicationHistory when status is changed to NORMAL
* Added test for handover failure
* Changed UpdateNamespace to record a replication history status if the active cluster changes without a handover
* Ran make goimports
* Moved ReplicationHistory into ReplicationConfig
* Limit number of replication history entries
* Use failoverVersion instead of cluster name
* Updated maybeUpdateFailoverHistory to handle the case where updateReplicationConfig is nil
* ran make goimports
* Reorganized imports
* Added comment about checking for configurationChanged
Build trace exporters from YAML and make TracerProvider instances available to the history/matching/worker/frontend services. Also puts gRPC instrumentation interceptors in place so that gRPC requests and responses are given their own spans.
Rename generated binaries:
- cadence -> temporal
- cadence-server -> temporal-server
- cadence-canary -> temporal-canary
- cadence-sql-tool -> temporal-sql-tool
- cadecne-cassandra-tool -> temporal-cassandra-tool
Moved core schema files for all database implementation to be under temporal folder.
Also used 'temporal' as keyspace or database name for core schema.
Renamed all environment variable to use TEMPORAL instead of CADENCE.
Renamed all docker scripts to references to point to new executables and mention
temporal.
Change reference to buildkite pipelines for temporal.
Dep generates a folder, _vendor-*, with copies of the source code for dependencies. Added this to .gitignore and set the "make copyright" check to skip that folder.
Pruning is not enabled in the toml since that deletes files used during build. Updated contribution guide to talk about dep instead of glide. Set cadence version to 0.7.2
Summary:
Split the runs into multiple activities.
Merge branch 'master' of code.uber.internal:devexp/minions into demo
Thrift integration to demo.
Add workflow ID to the demo logs.
Add persistence to MakeFile.
Demo changes.
Subscribers: jenkins
Differential Revision: https://code.uberinternal.com/D669739
Summary:
This change adds the files generated by thrift compiler to the repo.
This is needed to use this package in the uber-minions repo.
The good news is that the auto generated files will not change unless
the thrift IDL file changes, even when make clean is used so it would
not create a lot of overhead for other check-ins.
Reviewers: samar, sivakk
Reviewed By: sivakk
Differential Revision: https://code.uberinternal.com/D653858