Skip to content

Release 2022-11-02 - (expected chart version 4.26.0)#2814

Closed
zebot wants to merge 63 commits intomasterfrom
release_2022-11-02_08_46
Closed

Release 2022-11-02 - (expected chart version 4.26.0)#2814
zebot wants to merge 63 commits intomasterfrom
release_2022-11-02_08_46

Conversation

@zebot
Copy link
Contributor

@zebot zebot commented Nov 2, 2022

[2022-11-02] (Chart Release 4.26.0)

Release notes

API changes

Features

Bug fixes and other updates

Documentation

Internal changes

Veki301 and others added 30 commits September 29, 2022 10:20
* feat: make repl

* doc: changelog
* feat: add unsafe concurrency effect
* feat: just hoist traverse
* feat: add a "safety" flag
* refactor: UnsafeConcurrency -> Concurrency
* feat: add haddocks
* Bump servant-swagger-ui

* Fixup

* bycatch

* don't remove from cabal, add to stack.yaml!

* hi ci
Documentation updates fix - missing -h param in nodetool
Master->Develop after release
* Servantify /i-api

* Serve servant api under path prefix.

* More servant end-points

* More servant end-points

* More servant end-points

* More servant end-points

* More servant end-points

* More servant end-points

* Keep wai-route routing table only for swagger1.2 (part 1).

* Keep wai-route routing table only for swagger1.2 (part 2).

* More servant end-points

* More servant end-points

* Fun with schema-profunctor

* More servant end-points (feature config)

* More servant end-points (feature config)

* More servant end-points (feature config)

* More servant end-points

* Cleanup

* Fixup

* Bug fix: make routes distinguishable by path.

Given two routes with the same path, some swagger-ui version
distinguish by query params, some (including the servant-swagger-ui
version we're going to use moving forward) will collapse all of them
into the last.  This commit makes the paths different by adding string
literal segments.

* Update docs

* Revert "Cleanup"

This reverts commit 7d1c0e1.

* changelog

* Removed unused imports.

* imports

* Fixup

* Cleanup

* docs.

* hi ci

Co-authored-by: Igor Ranieri <igor@elland.me>
* rpc effect machinery
* propagate effects
* move RPC calls into interpreter
* feat: use unsafe concurrency for lookupProfiles
* services/gundeck: move appName closer to where it's used

* services/gundeck: document SNS Platform Application requirements
This seems to have gotten broken, it complains about some resources that
can't be found:

```
level=error ts=2022-09-30T08:09:08.703284478Z caller=klog.go:116 component=k8s_client_runtime func=ErrorDepth msg="status \"default/wire-server-metrics-kube-p-prometheus\" failed: failed to update status subresource: prometheuses.monitoring.coreos.com \"wire-server-metrics-kube-p-prometheus\" not found"
```

Describing how to install a monitoring system, shipping our own wrapper
chart, and documenting how to install it shouldn't be something we did
in first place. It's a potential endless game of whack-a-mole with
upstream changes, and mirroring it downstream in our documentation
shouldn't be part of wire-server.

Instead, describe what wire-server can do, how it marks its metrics
endpoints via ServiceMonitor, and refer to the upstream docs of two
commonly used metrics operators.
* refactor: build UserSpec tests out of more composable pieces
Co-authored-by: Marko Dimjašević <marko.dimjasevic@wire.com>
Co-authored-by: Stefan Matting <stefan@wire.com>
Co-authored-by: Zebot <zebot@users.noreply.github.com>
Co-authored-by: Zebot <zebot@users.noreply.github.com>
Major changes:
1. Instead of pinning things in `cabal.project`, we pin them in `nix/haskell-pins.nix`. This allows us to share built artefacts among the team and helps us avoid problems of compiling things with newer C libraries because cabal doesn't invalidate the built artefacts in the cabal-store.
2. Images are built using nixpkgs' `dockerTools.streamLayeredImage`. This allows us to build minimal images without needing a docker daemon to be running. This also helps us cache most of our images in the nix cache.
3. Every time any cabal file is changed or a new package is added, we must run `make regen-local-nix-derivations`. This will update various nix derivations we have for our project. This is protected by `make check-local-nix-derivations` which runs as a dependency of `make lint-all` in CI. 

Co-authored-by: Stefan Matting <stefan@wire.com>
Co-authored-by: Akshay Mankar <akshay@wire.com>
* Makefile: Avoid building haddocks while building production images

* Add changelog for nix builds, forgotten in #2331
… http(s) managers (#2772)

* cacert-fixup attempt

* Use SSL.contextSetDefaultVerifyPaths so we respect SSL_CERT_FILE env var

* Revert "cacert-fixup attempt"

This reverts commit 398cec18b365481640a5206b57305071401a5817.

No need.

* Set SSL_CERT_FILE in all docker images

* Changelog

* Redundant imports

* more redundant imports

Co-authored-by: Akshay Mankar <akshay@wire.com>
* New version of hlint is more reliable

* Change file check for -all

* Fixed compilation breaking b/c of operation order?

* Fixed lint script -k true

* Apply lint correctly
akshaymankar and others added 26 commits October 24, 2022 10:17
Using haskellPacakges.shellFor directly forced us to use nix-shell which exports
too many environment variables. These environment variables cause a lot of
problems, specially for people not using NixOS.

This change reads buildInputs and nativeBuildInputs for the derivation produced
by haskellPacakges.shellFor and adds it to paths of pkgs.buildEnv. To allow
cabal to find C dependencies, we also have to export PKG_CONFIG_PATH 
and LIBRARY_PATH
* Servant Cookie combinator

* Parse authorization header

* Remove confusing type synonyms

* Create schemas for Wire.API.User.Auth types

* Fix build and golden tests

* Add Access(..)

* Add mkSomeAccess and mkSomeCookie & adapt

* Optional response headers in MultiVerb

* Replace SomeCookie with UserTokenCookie

* Finish servantification of access endpoint

* Servantify send-login-code

* Servantify login endpoint

* Servantify logout endpoint

* Servantify change-self-email endpoint

* Servantify list-cookies endpoint

* Servantify remove-cookies endpoint

* Change status code to 200

* Servantify legalhold-login endpoint

* Servantify sso-login endpoint

* Servantify login-code endpoint

* Servantify reauthenticate endpoint

* Fix build

* Add access_token query parameter

* Parse cookies leniently

* Adapt integration test to new error codes

* Add CanThrow annotations

* Document Bearer token in Swagger

* Add CHANGELOG entry

* Revert "Adapt integration test to new error codes"

This reverts commit 165340ab3072d21fc72cf097c00aabd857c5f584.

* Make servant cookie parser lenient

* More leniency in Servant parsers

* Adapt some tests

* Remove redundant Brig error

* Redundant brackets

* lbl → label

* Reformat long line

* Remove empty routes

* Apply hlint suggestions

* Regenerate nix derivations

Co-authored-by: Stefan Matting <stefan@wire.com>
* upload docker images: retry, take 1

To work around:

```
*** Uploading /tmp/tmp.kIKRERgZ1H/image to quay.io/wire/spar-integration:4.25.22Getting image source signatures

Copying blob f4f33343fcb5 skipped: already exists

Copying blob a3ab88edf03d skipped: already exists

Copying blob 9360a695c022 skipped: already exists

Copying blob 62d7b43f88a6 skipped: already exists

Copying blob 134eff2df9f9 skipped: already exists

Copying blob 8834895fc941 skipped: already exists

Copying blob 52a0756d3ab1 done  ======================>----------] 30.0MiB / 40.3MiB

Copying blob fa04d4e808c5 done  ---------------------------------] 8.0b / 190.0KiB

Copying blob 6c806be006f4 skipped: already exists

FATA[0004] trying to reuse blob sha256:95218c34e1598cf423f77062d98259bedcc19c9b8f4d937d0905895ee7b0242e at destination: too many requests to registry

make: *** [Makefile:242: upload-images] Error 1

make: Leaving directory '/tmp/build/80754af9/wire-server'
```

* Hi CI

* Move `--retry-times` after copy

Co-authored-by: Akshay Mankar <akshay@wire.com>
* CommitBundle: Add protobuf ser/deser

* Change mime type of endpoint

* Adapt tests

* Remove superfluous test

* Add additional check to test

* Add new test case: commit bundles to remote conv

* Add test case: Commit bundle from remote user

* reformat wire-message-proto-lens.cabal

* add changelog entry

* Renamed protoLabel

* Linted and formatted

* Added fundeps to convert proto lens.

* Updated mimetype

* Removed redundant qualified

Co-authored-by: Igor Ranieri <igor@elland.me>
* Makefile: Allow db-migrate and db-reset to migrate/reset all keyspaces

* Use locally built schema binaries for db migrations

Also make sure DB is up to date every time tests are run and not just when DBs
are spun up.
* feat: implement intersperse and testing framework

* chore: format

* doc: changelog

* test: add a test showing a simpler use of intersperse

* chore: format

* Update libs/polysemy-wire-zoo/test/Test/IntersperseSpec.hs

Co-authored-by: Igor Ranieri Elland <54423+elland@users.noreply.github.com>

* chore: disable hlint hint

Co-authored-by: Igor Ranieri Elland <54423+elland@users.noreply.github.com>
* Fix content type used when testing MLS commit bundles

* shellcheck .cabal file

* Must not forget to regen derivations
…m clients/TM (#2786)

After not using the wire client for some time, it can easily happen that many conversations have many assets that should be downloaded. We may wish to be more lenient on asset download (well, getting signed URLs to download assets) requests. See https://wearezeta.atlassian.net/browse/SQCORE-1372 and https://wearezeta.atlassian.net/browse/SQSERVICES-1763
* Refactor for clarity.

* More hints in case of compiler errors.

* Make `make full-clean` fuller.
* Use ormolu 0.5.0.1 in dev environment

* use ghc92

* add ormolu fixity configuration

* reformat all files

* Formatted pending changes from develop

Co-authored-by: Igor Ranieri <igor@elland.me>
Co-authored-by: jschaul <jschaul@users.noreply.github.com>
* Check external commit criteria
- Extract the key package from the update path
- Validate key package before replacing the old one
* Fix the serialiseMLS instance for `Sender 'MLSPlainText`
* Update the mls-test-cli reference
* Integration tests for external commits
* Add optional client ID to tokens

* Add client ID to access token

* Access can now take a client ID

* Add client ID access test

* More client ID access tests

* hlint

* Regenerate nix derivations

* Change client ID field in token

libzauth expects one-letter fields

* Disable automatic formatting in libzauth

* Test client id token metadata

* Add Z-Client variable

* Add ZClient combinator

* Add CHANGELOG entry

* Check validity of client ID on access

* Throw error on /access with a different client ID

* Add Z-Client header to nginz in charts
* nix: Pin openssl to 1.1

* Revert "nix: Pin openssl to 1.1"

This causes a world rebuild of nixpkgs (which takes a lot of time), and the
build in CI doesn't complete successfully anyhow.

This reverts commit dc1f54e.

* nix: selectively pin openssl to 1.1 for Haskell packages.

This injects openssl 1.1 into the build of specifically the HsOpenSSL package,
which other Haskell derivations depend on for TLS functionality.

Co-authored-by: Molly Miller <molly.miller@wire.com>
* chore: add advisory regarding openssl

* name files consistently to have security responses show up ordered by date

* Set reversed order to have most recent entry on top

Co-authored-by: jschaul <jschaul@users.noreply.github.com>
@zebot zebot temporarily deployed to cachix November 2, 2022 08:46 Inactive
@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label Nov 2, 2022
@smatting
Copy link
Contributor

smatting commented Nov 2, 2022

Closing this because I'd like to have #2816 included in the release

@smatting smatting closed this Nov 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Comments