Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[UPSTREAM CHANGES] latest changes as of Mon Nov 11 2024 00:17:49 GMT+0000 (Coordinated Universal Time) #259

Open
wants to merge 751 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
751 commits
Select commit Hold shift + click to select a range
9547300
Switch back to custom handler
jamesrkiger Sep 21, 2023
84e393a
Fix error type
jamesrkiger Sep 21, 2023
f2a95c4
Switch to our micro-sentry fork
bufke Sep 23, 2023
bb2901e
Merge branch 'error-tracking-fix' into 'master'
bufke Sep 26, 2023
05ac2d6
Merge branch 'master' into glitchtip-micro-sentry
jamesrkiger Sep 26, 2023
0567d70
Switch out package location
jamesrkiger Sep 26, 2023
7037dc7
Merge branch 'glitchtip-micro-sentry' into 'master'
jamesrkiger Sep 26, 2023
b2497fb
Handle 409 error for redundant free subscriptions
jamesrkiger Sep 29, 2023
bca15cb
Merge branch 'free-subscription-error-handling' into 'master'
jamesrkiger Oct 2, 2023
1812ba9
Update packages
bufke Oct 2, 2023
6dc4692
Merge branch 'master' of gitlab.com:glitchtip/glitchtip-frontend
bufke Oct 2, 2023
9fe535a
Update packages
bufke Oct 4, 2023
d99ba2e
Fix loading state logic and move more to ts
jamesrkiger Oct 18, 2023
d6a488c
s/ParticalProjectAlert/PartialProjectAlert/g
chassing Oct 18, 2023
5d9d46a
Merge branch '2023-08-23_alert-name' into 'master'
jamesrkiger Oct 18, 2023
7c12f37
Fix mat-body typography
jamesrkiger Oct 19, 2023
1c8c628
Fix price card colors
jamesrkiger Oct 20, 2023
6d62af1
Add selector for subscription component
jamesrkiger Oct 20, 2023
8b41119
Merge branch 'fix-dark-mode-pricing' into 'master'
jamesrkiger Oct 20, 2023
3e1ed4e
Fix entry exception highlight in dark mode
jamesrkiger Oct 20, 2023
21ab860
Update project filter bar theme
jamesrkiger Oct 20, 2023
811a20a
Adjust dark mode foreground color
jamesrkiger Oct 23, 2023
864c0fc
Add theme addon, begin updating stories
jamesrkiger Oct 24, 2023
856cf93
Merge branch 'master' into storybook-fix
jamesrkiger Oct 24, 2023
f01ed71
Update packages
jamesrkiger Oct 24, 2023
3e1f00b
Switch to ts for preview
jamesrkiger Oct 24, 2023
313b610
Fix animations, remove more story modules
jamesrkiger Oct 24, 2023
43b2987
Use http testing module for storybook, update other storybook depende…
jamesrkiger Oct 24, 2023
3e43fa9
Merge branch 'storybook-fix' into 'master'
jamesrkiger Oct 24, 2023
a19b886
Refactor and cleanup code
jamesrkiger Oct 26, 2023
1361cfb
Make paginator param object values arrays
jamesrkiger Oct 27, 2023
5cb3c52
Fix types
jamesrkiger Oct 27, 2023
00e19bd
Merge branch 'paginator-fix' into 'master'
bufke Oct 27, 2023
fd482d3
Overhaul issue status update handling, make available regardless of h…
jamesrkiger Oct 27, 2023
890c54b
Merge branch 'master' into multi-project-bulk-updates
jamesrkiger Oct 27, 2023
1665d60
Lint and remove outdated e2e test
jamesrkiger Oct 27, 2023
a210147
Update action state changes
jamesrkiger Oct 27, 2023
33d8d27
Prep for updates
bufke Nov 10, 2023
cd57da2
Package updates
bufke Nov 10, 2023
5c7d017
Merge branch 'multi-project-bulk-updates' into 'master'
jamesrkiger Nov 10, 2023
e97bd91
Upgrade to angular 17
bufke Nov 11, 2023
612cb2f
Merge branch 'master' of gitlab.com:glitchtip/glitchtip-frontend into…
bufke Nov 11, 2023
b2de7be
Merge branch 'ng17' into 'master'
jamesrkiger Nov 13, 2023
2cdf448
Switch out our micro-sentry fork
jamesrkiger Nov 27, 2023
889d7e4
Merge branch 'micro-sentry-again' into 'master'
jamesrkiger Nov 27, 2023
edfc9f7
Update packages
bufke Dec 4, 2023
e1e82d1
feat: support for Google Chat notifications
baierjan Nov 28, 2023
9adbb17
Merge branch 'google_chat_notifications' into 'master'
jamesrkiger Dec 6, 2023
94a29cd
Update elixer docs. Add new sentry-cli friendly redirect
bufke Jan 1, 2024
fb308c4
Update packages
bufke Jan 11, 2024
0a0c6af
Improve C# docs
Daniel15 Jan 16, 2024
73557d3
Merge branch 'Daniel15au-master-patch-893b' into 'master'
bufke Jan 22, 2024
0727755
Package updates
bufke Feb 16, 2024
e736816
Update packages
bufke Mar 21, 2024
4213071
Minor package updates
bufke Mar 26, 2024
49c72cf
Set content type when creating e2e transactions
bufke Mar 26, 2024
8d0868b
Remove Event.issue, use groupID
bufke Mar 27, 2024
ce9bdf1
Switch to issue event rework URLs for issue updates
jamesrkiger Mar 29, 2024
0ce6cfa
Code cleanup
jamesrkiger Mar 29, 2024
c033825
Merge branch 'update-issue-urls' into 'master'
bufke Mar 29, 2024
fc94439
Update packages
bufke Apr 13, 2024
104bb65
Hide ', seen' when last seen not displayed
jamesrkiger Apr 15, 2024
e5605be
Update ruby.md
bufke Apr 16, 2024
f68b3ed
Update comment user interface
jamesrkiger Apr 17, 2024
4788d41
Merge branch 'comment-rework-adjustment' into 'master'
jamesrkiger Apr 17, 2024
2662b12
Update packages
bufke Apr 25, 2024
1d0df50
Fix misplaced code highlighting
jamesrkiger Apr 26, 2024
3275f0a
Place prism css within light and dark theme rules
jamesrkiger Apr 26, 2024
e405052
Merge branch '286-fix-code-line-numbers' into 'master'
jamesrkiger Apr 26, 2024
49a9e57
Check type before using json stringify in getter
jamesrkiger Apr 26, 2024
181c9b8
Merge branch 'fix-context-object-display' into 'master'
jamesrkiger Apr 26, 2024
d72a775
📝 Update elixir sdk-docs
ravensiris Apr 27, 2024
afebe88
Merge branch 'master' into 'master'
bufke Apr 28, 2024
b10048b
Merge branch 'master' into 286-fix-ruby-code-highlights
jamesrkiger May 2, 2024
75407aa
Cleanup line numbering, switch to getters
jamesrkiger May 2, 2024
2424e08
Merge branch '286-fix-ruby-code-highlights' into 'master'
bufke May 3, 2024
bf4185b
Switch to lazy loading animations
jamesrkiger May 3, 2024
5501074
Handle null values in old event stacktraces
jamesrkiger May 7, 2024
88d3adf
Merge branch 'zero-state-loading-fix' into 'master'
jamesrkiger May 10, 2024
f3e1fbc
Update angular packages
jamesrkiger May 24, 2024
2e2d216
Update angular material and fix errors
jamesrkiger May 24, 2024
caf5c99
Update cypress and others
bufke May 26, 2024
700ef87
Fix notifications theming
jamesrkiger May 28, 2024
f9346cc
Refactor theme styles
jamesrkiger May 28, 2024
aef0109
Merge branch 'angular-18-upgrade' into 'master'
bufke May 28, 2024
ee34c8a
Fix team slug client-side validation
jamesrkiger May 28, 2024
40f875c
Minor scss adjustments
jamesrkiger May 28, 2024
29db04f
Remove unused import
jamesrkiger May 28, 2024
b8a5769
PUT for users api
bufke Jun 2, 2024
312424b
Update ngx markdown
bufke Jun 3, 2024
d84e93a
Merge branch 'put-users' into 'master'
jamesrkiger Jun 3, 2024
f2f32a6
Upgrade angular eslint
jamesrkiger Jun 3, 2024
958c847
Switch to build-angular:browser-esbuild
jamesrkiger Jun 7, 2024
7cbdd85
Merge branch 'switch-to-esbuild' into 'master'
bufke Jun 7, 2024
1de768f
Use allauth headless api for email verification
bufke Jun 7, 2024
280edff
Use allauth api for disconnect social auth
bufke Jun 7, 2024
b1557ac
Start converting to django allauth's headless auth api
bufke Jun 7, 2024
26de70d
Partially update storybook, partially removed it. Really too much work
bufke Jun 8, 2024
c3f990c
.
bufke Jun 8, 2024
e652acd
Update angular
bufke Jun 8, 2024
7fda503
Merge branch 'master' of gitlab.com:glitchtip/glitchtip-frontend into…
bufke Jun 9, 2024
00f4580
Revert new logout api for now
bufke Jun 9, 2024
1aba082
Remove storybook linter
bufke Jun 9, 2024
b425df2
Merge branch 'master' of gitlab.com:glitchtip/glitchtip-frontend into…
bufke Jun 9, 2024
6ab1795
Merge branch 'allauth-verify' into 'master'
jamesrkiger Jun 10, 2024
48b5a9e
Merge branch 'allauth-auth' into 'master'
jamesrkiger Jun 10, 2024
3b88f17
Adjust cy test for duplicate email addresses
jamesrkiger Jun 13, 2024
8e774c9
Update project alert interface
jamesrkiger Jun 14, 2024
8f30460
Add visibility param for proj env list requests
jamesrkiger Jun 14, 2024
d182c0b
Add entry breadcrumbs theme for dark mode
jamesrkiger Jun 17, 2024
0bacc87
Fix mistake in npm dependency
Al3366 Jun 23, 2024
d585720
Merge branch 'master' into 'master'
bufke Jun 24, 2024
8fb23bf
Client side length validation for new projects
jamesrkiger Jun 25, 2024
b0b375f
Client side length validation for project name/platform in detail view
jamesrkiger Jun 25, 2024
1567e7d
Remove unnecessary validity check
jamesrkiger Jun 25, 2024
c2a74fa
Merge branch 'project-form-fixes' into 'master'
jamesrkiger Jun 25, 2024
60b0619
Do not recognize links too eagerly
josegomezr Jul 4, 2024
418ab05
Update org member interfaces
jamesrkiger Jul 5, 2024
1591374
Switch to camel case for org invite acceptance
jamesrkiger Jul 5, 2024
e67297d
Merge branch 'org-member-ninja-fixes' into 'master'
jamesrkiger Jul 5, 2024
06f96e8
Merge branch 'quickfix-frame-title-link' into 'master'
jamesrkiger Jul 5, 2024
5c919bb
Make event severity level visible on issue page
xurizaemon Jul 5, 2024
2458059
WIP: Consolidate colors for event levels
xurizaemon Jul 5, 2024
3645b2a
Use -light and -dark colors for event levels
xurizaemon Jul 5, 2024
0493aa9
Improve use of theme colors
xurizaemon Jul 5, 2024
157e090
Theme changes can wait
xurizaemon Jul 6, 2024
f70917f
Fix expected tokenInterceptor error status
jamesrkiger Jul 8, 2024
20721f4
Remove uppercase and event level class
xurizaemon Jul 8, 2024
7b8a2f3
Add error message for 403 on member invite
jamesrkiger Jul 9, 2024
2fe41c0
Add 403 error back to token interceptor
jamesrkiger Jul 12, 2024
3e7f127
Merge branch 'issue-event-levels' into 'master'
jamesrkiger Jul 12, 2024
b3eac8b
Adjust monitor interface and handling for int intervals
jamesrkiger Jul 12, 2024
0a7c30b
Switch monitor check response time to number
jamesrkiger Jul 15, 2024
b2d58e1
Send monitor timeout on all updates, adjust cypress tests
jamesrkiger Jul 19, 2024
f1bcdf6
Update packages
bufke Jul 22, 2024
d5dfb9a
Update frontend to match backend changes
bufke Jul 23, 2024
3d87ce9
Update stripe package
bufke Jul 23, 2024
e7cc965
Merge branch 'duration-and-interval-updates' into 'master'
jamesrkiger Jul 25, 2024
ab234d1
Add optional django allauth headless api oauth redirect
bufke Jul 26, 2024
6db9338
Remove performance e2e test
jamesrkiger Jul 26, 2024
8c49021
Merge branch 'master' into stripe-backend-changes
jamesrkiger Jul 26, 2024
ca26a2a
Merge branch 'stripe-backend-changes' into 'master'
jamesrkiger Jul 26, 2024
64eb1e5
Merge branch 'master' of gitlab.com:glitchtip/glitchtip-frontend into…
bufke Jul 27, 2024
d028c0c
Switch logout to allauth
bufke Jul 27, 2024
bdf5590
glitchtip-frontend#306: System info screen
xurizaemon Jul 8, 2024
3bc175b
glitchtip-frontend#306: Improve system information, show number of Or…
xurizaemon Jul 11, 2024
88eade1
glitchtip-frontend#306: Add version in nav sidebar, use that to link …
xurizaemon Jul 11, 2024
2dccc7a
glitchtip-frontend#306: Use a `<dl>`, tidy up
xurizaemon Jul 13, 2024
c9d2d0e
glitchtip-frontend#306: More tidy up
xurizaemon Jul 13, 2024
8599f77
glitchtip-frontend#306: Wrap in initialLoad$
xurizaemon Jul 13, 2024
e165f8d
fixup! glitchtip-frontend#306: More tidy up
xurizaemon Jul 13, 2024
c4d2e9f
glitchtip-frontend#306: `npx prettier --write src/app/system-info/`
xurizaemon Jul 13, 2024
7e9aa4c
Style adjustments, remove paid-for config, open docs in new tab
jamesrkiger Jul 30, 2024
8b32a89
Merge branch 'system-info' into 'master'
jamesrkiger Jul 30, 2024
3b7466b
Fix merge conflict
jamesrkiger Jul 30, 2024
670ca10
Merge branch 'allauth-callback' into 'master'
jamesrkiger Jul 30, 2024
95316fc
Move checkServerAuthStatus call to app component
jamesrkiger Jul 30, 2024
986d147
Update cypress test
jamesrkiger Jul 31, 2024
a14753d
When updating the auth state, remember to update localStorage
bufke Jul 31, 2024
2701f2b
.
bufke Jul 31, 2024
da74f25
Remove checkServerAuthStatus
jamesrkiger Aug 1, 2024
5799e42
.
bufke Aug 1, 2024
dd21af7
.
bufke Aug 2, 2024
982bbc1
.
bufke Aug 2, 2024
4de3156
.
bufke Aug 2, 2024
436b698
.
bufke Aug 3, 2024
9df18d3
.
bufke Aug 3, 2024
a335df4
.
bufke Aug 3, 2024
69fba11
.
bufke Aug 4, 2024
84afd1e
.
bufke Aug 4, 2024
80a301c
.
bufke Aug 5, 2024
39c95bb
.
bufke Aug 5, 2024
7f78a48
.
bufke Aug 6, 2024
b304043
.
bufke Aug 6, 2024
7ce0ee4
.
bufke Aug 7, 2024
37f33f4
.
bufke Aug 7, 2024
3d08eb0
.
bufke Aug 7, 2024
17633b6
.
bufke Aug 9, 2024
dfda9ed
.
bufke Aug 9, 2024
f2329ca
.
bufke Aug 9, 2024
b5f446f
.
bufke Aug 11, 2024
b85fdd3
.
bufke Aug 12, 2024
4cf4f19
.
bufke Aug 12, 2024
b5fb2bb
Remove untyped forms
bufke Aug 12, 2024
c6eae78
.
bufke Aug 13, 2024
2cac055
.
bufke Aug 15, 2024
5d6def6
.
bufke Aug 15, 2024
f4e64ff
.
bufke Aug 15, 2024
2e283a4
Update test
bufke Aug 15, 2024
c5d5e90
.
bufke Aug 15, 2024
a77e72d
Fix regression in project alerts form
bufke Aug 15, 2024
0bb9ade
Merge branch 'master' of gitlab.com:glitchtip/glitchtip-frontend into…
bufke Aug 15, 2024
c23522d
annoying
bufke Aug 16, 2024
210b114
Merge branch 'allauth-headless' into 'master'
bufke Aug 16, 2024
211ad7d
Adjust logged in guards to avoid race conditions on checking status
bufke Aug 16, 2024
6a71e00
Update contributing
bufke Aug 16, 2024
7440bb6
Add social login error
bufke Aug 16, 2024
efe4e9c
Update packages
bufke Aug 17, 2024
9f63e3a
Update packages and i18n
bufke Aug 17, 2024
4129596
Update storybook, but it's still pretty broken
bufke Aug 20, 2024
7df1fe3
Add totp login error handling and enable recovery code login submissions
jamesrkiger Aug 20, 2024
0f5c9f8
Merge branch 'allauth-update-fixes' into 'master'
bufke Aug 20, 2024
c41f0ac
Pass click function into gt-loading-button
jamesrkiger Aug 21, 2024
4d19e0c
Fix expired auth redirect and force clear state on logout
jamesrkiger Aug 26, 2024
1c74943
Remove unused code
jamesrkiger Aug 26, 2024
f01be74
Merge branch 'logout-fixes' into 'master'
jamesrkiger Aug 26, 2024
46c158b
Remove request for user details from initial request for password reset
jamesrkiger Aug 26, 2024
ab285b9
Upon succesful request for password reset, display only message and o…
jamesrkiger Aug 26, 2024
a5b7a1e
Fix password reset e2e test
jamesrkiger Aug 26, 2024
432d358
Update pluralization in alert form and update i18n files
jamesrkiger Aug 27, 2024
5dcbc24
Adjust max monitor interval
jamesrkiger Aug 30, 2024
6d1d851
Update some packages
bufke Sep 4, 2024
be3cbf3
Update packages
bufke Sep 5, 2024
0d96aea
Experiment
bufke Sep 6, 2024
15b7c39
Add marketing site build scripts
bufke Sep 9, 2024
f993da7
More marketing
bufke Sep 10, 2024
da476da
more marketing
bufke Sep 10, 2024
ade1828
marketing
bufke Sep 11, 2024
1b327c8
Make rss conform to spec
bufke Sep 11, 2024
01e8e2e
switch h1s in blog post body to h2s
jamesrkiger Sep 11, 2024
d464391
Fix footer gap from bottom of window
jamesrkiger Sep 12, 2024
d642041
Fix q&a component
bufke Sep 25, 2024
ff82c84
Merge branch 'marketing' of gitlab.com:glitchtip/glitchtip-frontend i…
bufke Sep 25, 2024
311901e
Update install docs
bufke Sep 25, 2024
92d418a
Styling fixes for marketing pricing sections
jamesrkiger Sep 27, 2024
e5de5ee
Merge branch 'marketing' into 'master'
bufke Sep 27, 2024
13159f0
Update default postgres to 17. Prefer valkey over redis. Refer to redis
bufke Sep 29, 2024
4fc6d35
Fix legal/documentation marketing links 404'ing
bufke Sep 30, 2024
a5ea018
Update packages
bufke Sep 30, 2024
79676db
Custom rendering of header tags for doc anchor tags and add anchor sc…
jamesrkiger Oct 1, 2024
b6081bd
Switch markdown rendering security context to 'style'
jamesrkiger Oct 1, 2024
5395eec
Merge branch 'marketing-markdown-adjustments' into 'marketing'
jamesrkiger Oct 1, 2024
1d7cd92
Add RSS feed link to marketing footer
jamesrkiger Oct 7, 2024
094d834
Update packages
bufke Oct 12, 2024
fcc9551
Bugfix: Typo in valkey image name.
Herz3h Oct 17, 2024
2c6fc72
Merge branch 'Herz3h-master-patch-21727' into 'master'
bufke Oct 17, 2024
4c16720
Merge branch 'marketing' of gitlab.com:glitchtip/glitchtip-frontend i…
bufke Oct 17, 2024
9432700
Update packages
bufke Oct 24, 2024
bd93bf0
Cleanup draft blog
jamesrkiger Oct 28, 2024
c631206
Remove draft blog post
jamesrkiger Oct 28, 2024
076a681
Add FAQ page to marketing documentation section
jamesrkiger Oct 29, 2024
0c8de29
add new line to faq
jamesrkiger Oct 29, 2024
0659029
Merge branch 'add-faq-page' into 'marketing'
jamesrkiger Oct 29, 2024
667029c
Restore gitlab.png from glitchtip-marketing@ccce6587ae27fb3fdcdafc8cd…
xurizaemon Oct 31, 2024
31f8284
Direct new issues to https://gitlab.com/glitchtip/glitchtip/-/issues/…
xurizaemon Oct 31, 2024
4f6d679
Merge branch 'docs-20241101' into 'master'
bufke Oct 31, 2024
5f87209
Merge branch 'marketing' of gitlab.com:glitchtip/glitchtip-frontend
bufke Nov 2, 2024
32fab09
Package updates
bufke Nov 2, 2024
5ed6c20
Allow comments user to be null
bufke Nov 2, 2024
0bf630a
Merge branch 'master' of https://gitlab.com/glitchtip/glitchtip-front…
actions-user Nov 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,8 @@ testem.log
Thumbs.db
cypress/screenshots
cypress/videos

projects/marketing/routes.txt
buildStaticSite.js
projects/marketing/public/blog/blogIndex.json
projects/marketing/public/blog/rss.xml
30 changes: 22 additions & 8 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
image: node:16
image: node:20

variables:
CHROME_BIN: chromium-browser
Expand All @@ -24,12 +24,11 @@ stages:

test:
stage: test
image: node:16-alpine
image: node:20-alpine
script:
- apk add --update --no-cache chromium-chromedriver chromium git
- npm ci --force
- npm run lint
- npm run test -- --progress false --watch=false --browsers=Chromium_CI
# Disabled because storybook :(
#- npm run lint

test-e2e:
stage: test
Expand All @@ -42,7 +41,7 @@ test-e2e:
alias: backend
command: ["./bin/run-migrate-and-runserver.sh"]
image:
name: cypress/included:10.1.0
name: cypress/included:13.13.3
entrypoint: [""]
script:
- npm ci --force
Expand Down Expand Up @@ -88,7 +87,7 @@ build-docker:
- echo "Build version $VERSION ci registry image $CI_REGISTRY_IMAGE commit ref $CI_COMMIT_REF_NAME"
- docker build -f Dockerfile.prod -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME} -t ${CONTAINER_IMAGE} --build-arg FRONTEND_GLITCHTIP_VERSION=$VERSION .
- if [ $CI_COMMIT_REF_NAME = "master" ]; then docker tag ${CONTAINER_IMAGE} ${CI_REGISTRY_IMAGE}:latest; fi
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com
- docker push ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}
- docker push ${CONTAINER_IMAGE}
- if [ $CI_COMMIT_REF_NAME = "master" ]; then docker push ${CI_REGISTRY_IMAGE}:latest; fi
Expand All @@ -101,6 +100,7 @@ upload-sourcemaps:
script:
- VERSION=glitchtip@${CI_COMMIT_REF_NAME#*v}
- sentry-cli releases files ${VERSION} upload-sourcemaps dist/glitchtip-frontend
allow_failure: true
only:
refs:
- tags
Expand All @@ -110,7 +110,7 @@ upload-sourcemaps:
deploy-staging:
stage: deploy
image:
name: alpine/helm:3.6.3
name: alpine/helm:3.15
entrypoint: [""]
# needs: ["build-docker", "test-e2e"]
script:
Expand All @@ -124,3 +124,17 @@ deploy-staging:
- master
variables:
- $CI_COMMIT_REF_PROTECTED

pages:
stage: deploy
script:
- npm ci --cache .npm --prefer-offline --force
- npm run build-static
- npm run build-marketing
- mv dist/marketing/browser public
- cp 404.html public/
artifacts:
paths:
- public
only:
- marketing
9 changes: 6 additions & 3 deletions .storybook/main.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
module.exports = {
stories: ["../src/**/*.stories.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],
stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],
addons: [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@storybook/addon-actions",
"@storybook/addon-a11y",
"@storybook/addon-themes",
],
core: {
builder: "webpack5",
framework: {
name: "@storybook/angular",
options: {},
},
docs: {},
};
42 changes: 42 additions & 0 deletions .storybook/preview.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import { importProvidersFrom } from "@angular/core";
import { withThemeByClassName } from "@storybook/addon-themes";
import { applicationConfig } from "@storybook/angular";
import { setCompodocJson } from "@storybook/addon-docs/angular";
import docJson from "../documentation.json";
setCompodocJson(docJson);

import { HttpClientTestingModule } from "@angular/common/http/testing";
import { MatSnackBarModule } from "@angular/material/snack-bar";
import { provideAnimations } from "@angular/platform-browser/animations";
import { RouterTestingModule } from "@angular/router/testing";
import { MicroSentryModule } from "@micro-sentry/angular";

export const decorators = [
withThemeByClassName({
themes: {
light: "light",
dark: "dark",
},
defaultTheme: "light",
}),
applicationConfig({
providers: [
importProvidersFrom(MatSnackBarModule),
importProvidersFrom(HttpClientTestingModule),
importProvidersFrom(RouterTestingModule),
provideAnimations(),
importProvidersFrom(MicroSentryModule.forRoot({})),
],
}),
];

export const parameters = {
actions: { argTypesRegex: "^on[A-Z].*" },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/,
},
},
};
export const tags = ["autodocs"];
4 changes: 3 additions & 1 deletion .storybook/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"compilerOptions": {
"types": [
"node"
]
],
"skipLibCheck": true
},
"exclude": [
"../src/test.ts",
Expand All @@ -15,6 +16,7 @@
"../projects/**/*"
],
"files": [
"./preview.ts",
"./typings.d.ts"
]
}
225 changes: 225 additions & 0 deletions 404.html

Large diffs are not rendered by default.

51 changes: 46 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ A good issue includes reproducible steps for bugs. Clear use cases for feature r

A good merge request includes a unit test demonstrating how a bug exists and is fixed with your change. Out of caution, contributors must not view or be familiar with proprietary Sentry code. Our codebase borrows code and ideas from Sentry when it was open source. We provide a fork of the last open source version of sentry [here](https://gitlab.com/glitchtip/sentry-open-source). You may and should read, understand, and copy open source Sentry code. While Sentry's current code is on Github, it would violate their proprietary license to use it.

## Adding larger features and npm dependencies

Please open an issue to discuss any larger feature or new npm dependency before starting work. We aim to be very dependency-light so as to keep the project maintainable with very little time. Larger feature development is encouraged, provided you are willing to assist with general project maintainance. Consider asking what maintaince task you can help with.

# Frontend Architecture Overview

GlitchTip features an isolated backend API and this Angular single page application frontend. This project aims to produce a static bundle that can be included in a full GlitchTip docker image that is ultimately served by Django (or maybe ultimately by a CDN). In theory, you could build your own frontend if you wanted to.
Expand All @@ -16,7 +20,7 @@ We use Angular CLI for rapid, performant development. Modules should be lazy loa

- Always use component encapsulated CSS (limit use of global)
- Use Storybook
- Follow redux-like patterns using RXJS but do not actually use redux. Services should contain immutable state, pure functions, and rxjs pipelines to build selectors. Contributors should have a basic familiarity with state management systems like redux and with RXJS. See "Managing State" for details.
- Follow redux-like patterns using signals. Services should contain immutable state, pure functions, and computed function selectors. Contributors should have a basic familiarity with state management systems like redux, RXJS, and signals. See "Managing State" for details.
- Do not store state in components except in trivial or rapid prototyping use cases.
- Use OnPush change detection. However very simple, isolated features maybe use Default.
- We don't have full test coverage. Complex functions should have unit tests. Trivial ones are acceptable without them as TypeScript checks them sufficiently. Integration tests that prove correctness of a collection of smaller functions is encouraged.
Expand All @@ -25,13 +29,50 @@ We use Angular CLI for rapid, performant development. Modules should be lazy loa

## Managing State

GlitchTip uses rxjs's BehaviorSubject to provide state to components. Most components should extend the following base classes:
GlitchTip uses signals (or rxjs's BehaviorSubject) to provide state to components. Use primarily signals and convert them to rxjs only when helpful. Most components should extend the following base classes:

**StatefulComponent** and **StatefulService**

StatefulComponent clears state on ngOnDestroy. Omit it if this isn't desired.

StatefulService provides react-like `setState` and `clearState` functions. `setState` should be used in reducer-style functions. Each such function should be responsible for setting all of the state in a service relevant to a given synchronous event.

A typical stateful service may look like:

```typescript
interface MyState {
foo: string;
loading: bool;
// Real code should store error states too
}

const initialState: MyState = {
foo: "init",
loading: false,
};

**StatefulBaseComponent** and **StatefulService**
@Injectable({
providedIn: "root",
})
export class MyService extends StatefulService<MyState> {
foo = computed(() => this.state().foo);
constructor(myAPIService: MyAPIService) {
super(initialState);
}

StatefulBaseComponent provides a destroy$ observable on ngOnDestroy. Use it to unsubscribe with takeUntil(this.$destroy). It also calls service.clearState on destroy.
getFoo() {
// More complex functions should be broken into a more explicit public "action" function and private "reducer" function. Simple ones can avoid such boilerplate.
this.setState({ loading: true });
console.log("direct state access", this.state());
// or this.state.set(initialState);
// Avoid calling HttpClient directly. Do not use fetch, as it won't get csrf tokens.
return this.myAPIService.getFoo().pipe(tap((resp) => this.setState({ foo: resp.foo, loading: false })));
// Add error handling in the pipe too for real code
}
}
```

StatefulService provides a react-like `setState` and `clearState` functions.
HttpClient API calls should be placed in a separate API service and imported into a StatefulService instance.

**PaginatedBaseComponent** extends StatefulBaseComponent and **PaginationStatefulService** extends StatefulService

Expand Down
Loading