Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
205 commits
Select commit Hold shift + click to select a range
308daf8
Update HOWTO_DEVELOPMENT_LOCAL_SETUP.md for more recent versions of D…
ibrand May 23, 2024
0dcdf4e
Update to Node v20.11.1 (#2352)
mau11 Jul 2, 2024
ff740cc
Update Spoke version number to v14.0 (#2373)
mau11 Jul 2, 2024
4396bba
Fix typo (#2375)
mau11 Jul 5, 2024
da0cf70
Better logs V2 (#2376)
engelhartrueben Jul 5, 2024
f64b00d
Package upgrades for 14.1 (#2377)
engelhartrueben Jul 10, 2024
12e175c
Upgrade cypress from 5.6.0 to 13.11.0
stefanhayden Jun 8, 2024
0cdb65e
Upgrade dotenv to 16.4.5 (#2370)
stefanhayden Jul 11, 2024
0128bc8
Bump http-cache-semantics from 4.1.0 to 4.1.1 (#2260)
dependabot[bot] Jul 17, 2024
79bb168
Add WSL to development DOCS (#2378)
engelhartrueben Jul 17, 2024
c580b6b
replaced soon to be deprecated set-output w/ patch (#2380)
engelhartrueben Jul 18, 2024
bf38990
move webpack-cli to deps instead of dev deps (#2381)
engelhartrueben Jul 18, 2024
16a0f1b
Typos. Typos. Typos (#2387)
engelhartrueben Jul 24, 2024
4344389
.timeout() is not supported by sqlite.
engelhartrueben Jul 24, 2024
898ae5e
PATCH 14.0.1 (#2386)
engelhartrueben Jul 24, 2024
ac9e25c
Bump mockdate from 2.0.5 to 3.0.5 (#2399)
dependabot[bot] Jul 25, 2024
2f206b8
Bump wait-for-expect from 1.3.0 to 3.0.2 (#2400)
dependabot[bot] Jul 25, 2024
6613eb6
Merge branch 'main' into stage-main-14.1
engelhartrueben Jul 25, 2024
56ab2a9
use built in 'isSqlite' instead of calling getConfig
engelhartrueben Jul 25, 2024
41c96dd
added pre-resolver for updated.at that was causing issues in sqlite
engelhartrueben Jul 26, 2024
4999959
allow [Yes] as a quesiton answer, not just "Yes:"
sduveen-pivot Jul 29, 2024
d8608c4
grouped survey responses both by questions and answers
sduveen-pivot Jul 30, 2024
1ba14cc
Bump aws-sdk from 2.1655.0 to 2.1664.0 (#2407)
dependabot[bot] Jul 30, 2024
03380d0
Bump @babel/traverse from 7.23.2 to 7.25.1 (#2406)
dependabot[bot] Jul 30, 2024
58acd61
Bump @aws-sdk/client-cloudwatch-events from 3.609.0 to 3.620.0 (#2404)
dependabot[bot] Jul 30, 2024
ad41f99
Bump mailgun-js from 0.20.0 to 0.22.0 (#2394)
dependabot[bot] Jul 30, 2024
58c5562
Bump express from 4.19.1 to 4.19.2 (#2391)
dependabot[bot] Jul 30, 2024
cdeed25
Remove MoveOn specific updates and clean up
mau11 Jul 30, 2024
64c9684
Revert "Upgrade Cypress"
mau11 Jul 30, 2024
ea251f3
Merge branch 'stage-main-14.1' into MoveOnOrg/main
mau11 Jul 30, 2024
dac4adf
new means of creating a bucket
engelhartrueben Jul 30, 2024
98b8563
remove now unused S3 import
engelhartrueben Jul 30, 2024
8338ac1
remove double await that was doing nothing
engelhartrueben Jul 30, 2024
8cc52b8
remove expires in parameter in getSignedURL that is taken care of in …
engelhartrueben Jul 30, 2024
43fd02d
change var name s3bucket to client + comment
engelhartrueben Jul 30, 2024
5e31c04
Merge branch 'main' into re/fix-eports
engelhartrueben Jul 30, 2024
3fcab79
call region from env
engelhartrueben Jul 30, 2024
af2bddd
move bucket name to func call. add location var found in example docs
engelhartrueben Jul 30, 2024
6818d2a
implement PutObjectCommand w/ supporting parameters.
engelhartrueben Jul 30, 2024
0a52da7
make pretty
engelhartrueben Jul 30, 2024
78c2aaa
remove logging
engelhartrueben Jul 30, 2024
50d5ea4
Re-add models update from commit #64c96849
mau11 Jul 31, 2024
2c101dc
add front end language for when export will end up in local Spoke dir…
engelhartrueben Jul 31, 2024
2e623b6
add hard check on email set-up. Next step is to (re-add) fix front e…
engelhartrueben Aug 2, 2024
2822230
Merge remote-tracking branch 'origin/main' into group-survey
sduveen-pivot Aug 3, 2024
e2d55c7
Bump eslint-plugin-react from 7.34.3 to 7.35.0
dependabot[bot] Aug 5, 2024
7a0a619
past-contacts fixed from query-string import
sduveen-pivot Aug 9, 2024
ff09b39
organizations sorted in user menu
mcverter Aug 9, 2024
c89fefc
use relative paths for markdown links
mcverter Aug 9, 2024
200fb67
push shortcode update to 14.1 branch
mabrownnyu Aug 11, 2024
c7edaa0
Merge branch 'main' into stage-main-14.1
mau11 Aug 12, 2024
bd71be3
Merge pull request #2415 from schuyler1d/bug/past-contacts
mau11 Aug 12, 2024
c733f1a
CollapsibleCard(s) for AdminCampaignStats for lower default renders a…
sduveen-pivot Aug 13, 2024
105ba01
Remove console.logs and linter edits
mau11 Aug 13, 2024
47e85d4
Merge branch 'stage-main-14.1' into mz/merge-moveon-14.1
mau11 Aug 13, 2024
87538cf
Add error handling when exporting to an S3 bucket
mau11 Aug 14, 2024
fb0f56d
misspointed check on emailEnabled
engelhartrueben Aug 14, 2024
48f095e
typos
engelhartrueben Aug 14, 2024
86c31bd
update phone number button names
mabrownnyu Aug 14, 2024
8562ac5
Merge pull request #2422 from StateVoicesNational/phone_inventory_test
mau11 Aug 15, 2024
243b610
change Snackbar logic to better fit outcome
engelhartrueben Aug 15, 2024
052685b
change exportCacheKey expiration to match AWS expiration of 1 day
engelhartrueben Aug 15, 2024
b70620d
Merge branch 'stage-main-14.1' into mz/merge-moveon-14.1
mau11 Aug 15, 2024
7417b63
cache error
engelhartrueben Aug 15, 2024
0d1055a
reduce timout to 15 sec
engelhartrueben Aug 15, 2024
ec04d8c
Revert "Remove console.logs and linter edits"
mau11 Aug 15, 2024
ee6a29c
adjust export UI logic to only show each respective methods output, a…
engelhartrueben Aug 15, 2024
be0bd30
revert back to emailEnabled check
engelhartrueben Aug 15, 2024
cf87e1c
allow for client side access to client_email found in GOOGLE_SECRET
engelhartrueben Aug 15, 2024
a35b9dd
add google client URL to front end for easy sharing
engelhartrueben Aug 15, 2024
ee1ff6b
change google api scope to read only
engelhartrueben Aug 16, 2024
6cf0a64
add protection agains bad env variable
engelhartrueben Aug 16, 2024
b7d1f6e
return client email
engelhartrueben Aug 16, 2024
60cf202
remove finally to instead return nothing if all else fails
engelhartrueben Aug 16, 2024
a280510
Make sure ids are the expected type
mau11 Aug 18, 2024
1b49824
Update parameter name
mau11 Aug 18, 2024
ee63629
string to int
engelhartrueben Aug 15, 2024
0501979
lessen eqaulity check to still disable the ability for a user to rese…
engelhartrueben Aug 15, 2024
0419c32
move google client email function logic outside of html export
engelhartrueben Aug 19, 2024
50caf96
Merge pull request #2424 from StateVoicesNational/re/fix-reset-password
engelhartrueben Aug 19, 2024
01d3bf2
Merge pull request #2410 from StateVoicesNational/re/fix-exports
engelhartrueben Aug 19, 2024
f7f9038
Merge pull request #2425 from StateVoicesNational/mz/message-review-i…
engelhartrueben Aug 19, 2024
5eed34a
push to clean up locally
engelhartrueben Aug 19, 2024
3c4de5d
clean up ++ add filter to remove spaces in client email
engelhartrueben Aug 19, 2024
9be5327
render google client email ++ error message
engelhartrueben Aug 19, 2024
c5ca5b0
replace >> replaceAll
engelhartrueben Aug 19, 2024
d1106bb
Allow org-specific message handlers
jeffm2001 Aug 20, 2024
a023ab2
pass array rather than spread :: how did this work before?
engelhartrueben Aug 21, 2024
6f30c47
14.0.1 >> 14.0.2
engelhartrueben Aug 21, 2024
1a54275
bullet points
engelhartrueben Aug 21, 2024
adb6064
Merge pull request #2430 from StateVoicesNational/stage-main-14.0.2
engelhartrueben Aug 21, 2024
e6e0235
Merge pull request #2414 from StateVoicesNational/dependabot/npm_and_…
dependabot[bot] Aug 26, 2024
7e190e8
Merge remote-tracking branch 'origin/main' into group-survey
sduveen-pivot Aug 28, 2024
ed8a98a
group survey: correct console.log errors and style
sduveen-pivot Aug 28, 2024
75438a6
Add instructions for local postgres
sjwmoveon Sep 3, 2024
db153ba
Merge branch 'stage-main-14.1' into mz/merge-moveon-14.1
mau11 Sep 4, 2024
cecc5ff
Fix failing sqlite test
mau11 Sep 4, 2024
2f4d9f6
Merge branch 'main' into stage-main-14.1 :: To include 14.0.2 patch
engelhartrueben Sep 4, 2024
74558a6
Merge pull request #2389 from StateVoicesNational/re/fix-sqlite
engelhartrueben Sep 4, 2024
89fcd2e
Merge pull request #2408 from StateVoicesNational/group-survey
engelhartrueben Sep 4, 2024
7c28980
fixe function typeError
engelhartrueben Sep 4, 2024
6c261a4
Clarify test database commands
sjwmoveon Sep 4, 2024
1bf7c39
Merge pull request #2423 from StateVoicesNational/mz/merge-moveon-14.1
engelhartrueben Sep 4, 2024
3c2456e
Merge pull request #2431 from aflcio/org-message-handlers
mau11 Sep 4, 2024
1d2113b
Merge branch 'stage-main-14.1' into re/google-docs-integration-UI
engelhartrueben Sep 4, 2024
237fc52
Merge pull request #2432 from StateVoicesNational/re/google-docs-inte…
mau11 Sep 4, 2024
b7985fb
Merge pull request #2371 from StateVoicesNational/stefanhayden/cypres…
mau11 Sep 4, 2024
32f2d70
Merge pull request #2417 from mcverter/mverter/relative-links-in-mark…
engelhartrueben Sep 5, 2024
7675125
Merge pull request #2416 from mcverter/2201-alphabetize-orgs-right-menu
mau11 Sep 5, 2024
99ee3f0
re add old styling for floatingButton. Unsure where/why this was removed
engelhartrueben Sep 11, 2024
0978b3f
upgrade googleapis to 144.0.0
engelhartrueben Sep 12, 2024
2223882
use native abort controller
engelhartrueben Sep 12, 2024
6beed96
add error handling when parsing google secret
engelhartrueben Sep 12, 2024
7c2852c
add pm2 config file to gitignore
engelhartrueben Sep 12, 2024
87626a6
clean up logic
engelhartrueben Sep 12, 2024
f012fb9
attempt to get git hub actions to work
engelhartrueben Sep 12, 2024
e707bc1
Update texter view styling to be more responsive
mau11 Sep 12, 2024
a8c4686
upgrade upload artifact to V4. V2 was deprecated June 30, 2024.
engelhartrueben Sep 12, 2024
534dca5
Merge branch 'stage-main-14.1' into mz/update-texter-view-styling
mau11 Sep 12, 2024
25febbc
Add a function to convert string array to integer array
mau11 Sep 13, 2024
27d9e03
Fix type error when saving or deleting canned responses with tags
mau11 Sep 13, 2024
42f99ac
Fix hidden text when canned response contains an action handler
mau11 Sep 13, 2024
1d4ae9e
Merge pull request #2451 from StateVoicesNational/mz/update-texter-vi…
engelhartrueben Sep 13, 2024
d65e441
change GOOGLE_SECRET to BASE64_GOOGLE_SECRET
engelhartrueben Sep 13, 2024
794fe7d
adjust AWS deployment docs when talking about large env variables lik…
engelhartrueben Sep 13, 2024
292ff99
change docs to better represent current work flow + mention BASE64_GO…
engelhartrueben Sep 13, 2024
3d690b3
attempt to get base64 working
engelhartrueben Sep 13, 2024
5880eee
attempt to debug whats going on with JSON key
engelhartrueben Sep 16, 2024
ef4928b
change decode + debugging log
engelhartrueben Sep 16, 2024
e7ba1ea
new appraoch
engelhartrueben Sep 16, 2024
7abd287
add base64ToString to utils
engelhartrueben Sep 16, 2024
40aeb79
use base64ToString util
engelhartrueben Sep 16, 2024
bfb08f5
check arg
engelhartrueben Sep 16, 2024
1367b04
use base64ToString + remove logging
engelhartrueben Sep 16, 2024
f672300
add documentation on converting Google Secret JSON to Base64 for envi…
engelhartrueben Sep 16, 2024
0b8cfbc
review and clean up
engelhartrueben Sep 16, 2024
6f6fd49
Merge pull request #2455 from StateVoicesNational/re/google-api-stuff
engelhartrueben Sep 18, 2024
e5361e5
Revert "update phone number button names"
mau11 Sep 19, 2024
23f9733
Revert "push shortcode update to 14.1 branch"
mau11 Sep 19, 2024
f0ee27e
Merge pull request #2452 from StateVoicesNational/mz/canned-resp-type…
mau11 Sep 19, 2024
a5779a0
Merge pull request #2458 from StateVoicesNational/mz/revert-short-codes
mau11 Sep 19, 2024
920ddbb
Remove attempted reassignment of read-only object, nextProps
mau11 Sep 20, 2024
b51b7d9
add auto hide duration to replies alert
engelhartrueben Sep 20, 2024
c236951
Merge pull request #2459 from StateVoicesNational/mz/fix-white-screen…
engelhartrueben Sep 20, 2024
d3e28f3
Remove extra css - duplicate after reverting a commit that initially …
mau11 Sep 23, 2024
900f4d3
Update Spoke version and add release notes
mau11 Sep 23, 2024
92d3f86
14.0.2 >> 14.1.0
engelhartrueben Sep 23, 2024
680713c
Merge pull request #2444 from StateVoicesNational/stage-main-14.1
engelhartrueben Sep 23, 2024
6cf1d8d
class component >> function component
engelhartrueben Sep 24, 2024
669df5d
remove clutter
engelhartrueben Sep 24, 2024
52614a5
class component >> function component
engelhartrueben Sep 24, 2024
c6974c7
change how we manipulate campaigns in this table
engelhartrueben Sep 24, 2024
01edd11
filter out campaigns that have been archived or unarchived
engelhartrueben Sep 24, 2024
8598a2f
ensure isArchived persists into next render
engelhartrueben Sep 24, 2024
d7c5c3e
add @testing-library/react @testing-library/jest-dom
engelhartrueben Sep 26, 2024
0992c41
downgrade testing library to 12.1.5
engelhartrueben Sep 26, 2024
e56d17b
Expoert AdminCampaignList for testing
engelhartrueben Sep 26, 2024
ce3a94a
add RTL userEvent and dom
engelhartrueben Sep 26, 2024
43aa5d6
Fix getAsync + delAsync redis errors
mau11 Sep 27, 2024
ebe30c8
remove testing-library/jest-dom
engelhartrueben Sep 27, 2024
6407b60
log error message
engelhartrueben Sep 30, 2024
7190805
upgrade twilio lookup to v2
engelhartrueben Sep 30, 2024
f0aadf0
forgotten yarn
engelhartrueben Sep 30, 2024
6009f18
persists sortBy
engelhartrueben Sep 30, 2024
1d476b9
redo timezone tests
engelhartrueben Sep 30, 2024
57ed8ea
prettier lint
engelhartrueben Oct 1, 2024
4bc59a3
prettier lint
engelhartrueben Oct 1, 2024
93d1041
Merge pull request #2472 from StateVoicesNational/mz/fix-redis-errors
mau11 Oct 1, 2024
c0415a6
remove parantheses
engelhartrueben Oct 1, 2024
710fe1d
use log instead of console for error message
engelhartrueben Oct 1, 2024
3364e9b
add back the v I accidently deleted
engelhartrueben Oct 1, 2024
2b8c7c5
Merge pull request #2471 from StateVoicesNational/re/twilio-lookup
engelhartrueben Oct 1, 2024
b67906b
Merge pull request #2473 from StateVoicesNational/re/archives
engelhartrueben Oct 1, 2024
9adc14f
Update Spoke version and add release notes + ran linter
mau11 Oct 1, 2024
7ce0e22
Merge pull request #2475 from StateVoicesNational/stage-main-14.1.1
engelhartrueben Oct 1, 2024
34a5454
Allow pausing of initial messages
jeffm2001 Sep 29, 2022
494ec93
Add to documentation
jeffm2001 Oct 4, 2024
aec5dfc
Fix redis and read only db
jeffm2001 Oct 11, 2024
3c83842
Fix another redis error
jeffm2001 Oct 14, 2024
e7aef62
Bandwidth fix
jeffm2001 Oct 14, 2024
103842a
Avoid error on opt-out
jeffm2001 Oct 15, 2024
43957bf
Fix error on bulk reassign
jeffm2001 Oct 15, 2024
d07bc25
Fix UserInputError on error code filter
jeffm2001 Oct 16, 2024
17fd400
yarn add buffer :: fix broken docker image build
engelhartrueben Oct 16, 2024
b83350e
change heroku plan from basic (EOL as of May 2024) to
engelhartrueben Oct 17, 2024
f22ce38
Merge pull request #2488 from aflcio/ssl-fixes
mau11 Oct 18, 2024
e0822f9
Merge pull request #2490 from aflcio/bandwidth-fix
mau11 Oct 18, 2024
fd745e4
Merge pull request #2491 from aflcio/opt-out-error
mau11 Oct 18, 2024
2a9cdaa
Merge pull request #2493 from StateVoicesNational/re/add-buffer-for-d…
mau11 Oct 18, 2024
0c37c46
Merge pull request #2442 from sjwmoveon/patch-2
mau11 Oct 18, 2024
a1d6ce5
Merge pull request #2478 from aflcio/downtime-no-initial
mau11 Oct 18, 2024
e94ad3d
Merge pull request #2494 from StateVoicesNational/re/heroku-plans
mau11 Oct 18, 2024
a32f248
change target branch for dependabot
engelhartrueben Oct 18, 2024
d8972f3
Merge pull request #2495 from StateVoicesNational/re/dependabot-14.2
mau11 Oct 21, 2024
a70d409
Remove unused variables causing /phone-numbers blank screen error for…
mau11 Oct 21, 2024
a4cf989
Fix button styling
mau11 Sep 17, 2024
673c07b
Merge pull request #2498 from StateVoicesNational/mz/clean-up
engelhartrueben Oct 21, 2024
467b346
Update Spoke version from 14.1.1 -> 14.1.2
mau11 Oct 21, 2024
5322282
Add null check
jeffm2001 Oct 21, 2024
ec0e69b
Merge pull request #2492 from aflcio/bulk-reassign-error
mau11 Oct 21, 2024
4c1b0ce
Update release notes
mau11 Oct 21, 2024
149d1ae
Fix release notes formatting
mau11 Oct 23, 2024
715ab46
Merge pull request #2499 from StateVoicesNational/stage-main-14.1.2
mau11 Oct 23, 2024
9f1618e
Merge remote-tracking branch 'parent/main' into mz/14.1.2
mau11 Nov 13, 2024
d4bf632
Set up the Serverless Framework to replace the deprecated
mau11 Mar 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ TWILIO_MESSAGE_VALIDITY_PERIOD=
DST_REFERENCE_TIMEZONE='US/Eastern'
PASSPORT_STRATEGY=local
TEXTER_SIDEBOXES=celebration-gif,default-dynamicassignment,default-releasecontacts,contact-reference,tag-contact,freshworks-widget,default-editinitial,take-conversations,hide-media,texter-feedback,contact-notes
DYNAMICASSIGNMENT_BATCHES=finished-replies-tz,vetted-texters,finished-replies
OWNER_CONFIGURABLE=ALL
NGP_VAN_API_KEY=
NGP_VAN_APP_NAME=
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ If applicable, add screenshots to help explain your problem.
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Desktop or Mobile?
- Spoke Version: [e.g. 13.0.0]
- Spoke Version: [e.g. 14.0.1]

**Additional context**
Add any other context about the problem here.
13 changes: 13 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
target-branch: "stage-main-14.2"
schedule:
interval: "weekly"
day: "monday"
time: "12:00"
rebase-strategy: auto
open-pull-requests-limit: 10
labels:
- "A-dependencies"
2 changes: 1 addition & 1 deletion .github/workflows/build-image.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
uses: docker/metadata-action@v3
with:
images: |
ghcr.io/moveonorg/moveon-spoke
ghcr.io/statevoicesnational/spoke
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
Expand Down
13 changes: 8 additions & 5 deletions .github/workflows/cypress-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,13 @@ jobs:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Cypress run
uses: cypress-io/github-action@v4
env:
env:
DEBUG: '@cypress/github-action'
NODE_ENV: test
PORT: 3001
Expand All @@ -50,13 +53,13 @@ jobs:
build: npm run prod-build
start: npm start
wait-on: 'http://localhost:3001'
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-videos
path: cypress/videos
path: cypress/videos
49 changes: 36 additions & 13 deletions .github/workflows/jest-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
node-version: [14.x, 15.x, 16.x]
node-version: [14.x, 15.x, 16.x, 18.x, 20.x]
services:
redis:
image: redis
Expand All @@ -24,11 +24,14 @@ jobs:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v1
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
Expand All @@ -47,6 +50,11 @@ jobs:
image: redis
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
postgres:
image: postgres:10
env:
Expand All @@ -57,11 +65,14 @@ jobs:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v1
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
Expand All @@ -80,6 +91,11 @@ jobs:
image: redis
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
postgres:
image: postgres:10
env:
Expand All @@ -90,11 +106,14 @@ jobs:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v1
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
Expand All @@ -114,11 +133,15 @@ jobs:
ports:
- 6379:6379
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20

- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v1
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,5 @@ CONFIG_FILE.json
scratch/
cypress/screenshots
cypress/videos
spoke-pm2.config.js
.serverless/
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
16.18.0
20.11.1
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ If you see someone who is making an extra effort to ensure our community is welc

Unacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated.

Any community member asked to stop unacceptable behavior is expected to comply immediately. If the member fails to comply immediately, the community organizers may take any action they deem appropriate, up to and including [blocking users from collaboration with MoveOn Github repositories](https://help.github.com/en/articles/blocking-a-user-from-your-organization) and/or temporarily banning or permanently expelling the non-complying member from the community without warning (and without refund in the case of a paid event).
Any community member asked to stop unacceptable behavior is expected to comply immediately. If the member fails to comply immediately, the community organizers may take any action they deem appropriate, up to and including [blocking users from collaboration with StateVoices Github repositories](https://help.github.com/en/articles/blocking-a-user-from-your-organization) and/or temporarily banning or permanently expelling the non-complying member from the community without warning (and without refund in the case of a paid event).

## Our Responsibilities

Expand Down
5 changes: 2 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ many important organizations!
- ProgCode has community guidelines
- We have a weekly(ish) working group at [Progressive HackNight](https://progressivehacknight.org) that organizes in the #wg-spoke_p2p_sms_tool channel in the slack
- Feel free to [create an issue or comment on an existing issue](https://github.com/StateVoicesNational/Spoke/issues) -- Every time we hear from the outside progressive developer community, we do a little dance.
- We also welcome reaching out on our [MoveOn Spoke interest form](https://act.moveon.org/survey/spoke-project/) with questions, etc.

In all forums we affirm the [Progressive Coder Community Guidelines](https://docs.google.com/document/d/1coMHvuGf6x6Qn_73SEhOXi_QaoRBM__3Zj6_5TyrmWs/edit#heading=h.ab96v3qhdgk9)

Expand Down Expand Up @@ -57,7 +56,7 @@ Welcome to the project! Once you've completed that first contribution, there are
- We use our [Area labels](docs/EXPLANATION-labels.md) to categorize issues into which code feature areas they belong in. Feel free to sort by an area you're interested in.
- We use our [Organization labels](docs/EXPLANATION-labels.md) to categorize issues by which organizations are prioritizing them. You can sort by your favorite org and help out there.
- More broadly, there are all sort of different [labels](https://github.com/StateVoicesNational/Spoke/labels) we use to filter the issues down and you can leverage that to help you find work.
- Lastly, you can always ping a project maintainer (@ibrand, and @schuyler1d) to get a read on what's on our radar right now.
- Lastly, you can always ping a project maintainer (@mau11 and @engelhartrueben) to get a read on what's on our radar right now.

### Claiming issues
- Like for your first issue, comment on the issue and tell us that you're working on it. Feel free to ask any clarifying questions that you have.
Expand All @@ -83,7 +82,7 @@ The actual process:
- We create a new stage-main branch at least twice a month:
- The stage-main branch includes the latest approved pull requests in one merged branch
- This ensures that PRs will not contain anything that breaks deployment and also will allow us to see if any PRs negatively interact with each other before they end up merged to main. Why bother with this step? It's helpful to have a separate "release candidate" on the stage-main branch because in earlier testing rounds people weren't sure what had been deployed to staging and having a separate branch makes this explicit and clear.
- After stage-main is created, we deploy it to MoveOn's staging instance. We have a small set of QA volunteers who then run through a list of [QA steps](https://github.com/StateVoicesNational/Spoke/blob/main/docs/HOWTO_QA_GUIDE.md) in order to find bugs and test new features.
- After stage-main is created, we deploy it to StateVoices staging instance. We have a small set of QA volunteers who then run through a list of [QA steps](https://github.com/StateVoicesNational/Spoke/blob/main/docs/HOWTO_QA_GUIDE.md) in order to find bugs and test new features.
- After QA is completed, and volunteers haven't identified any bugs, we deploy stage-main to production.
- We let stage-main run in production for at least a day, before merging stage-main into the main branch.
- We never roll code directly to prod without first testing on staging.
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ARG BUILDER_IMAGE=node:16.18
ARG RUNTIME_IMAGE=node:16.18-alpine
ARG BUILDER_IMAGE=node:20.11.1
ARG RUNTIME_IMAGE=node:20.11.1-alpine
ARG PHONE_NUMBER_COUNTRY=US

FROM ${BUILDER_IMAGE} as builder
Expand Down
36 changes: 11 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,43 @@
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)

# StateVoices is the new community steward for Spoke!

On November 19th, the repo Spoke was transfered from MoveOn to StateVoices. If you're looking for the most up-to-date Spoke to fork from, start [at the StateVoices repo](https://github.com/StateVoicesNational/Spoke)

## Spoke History

Spoke is an open source text-distribution tool for organizations to mobilize supporters and members into action. Spoke allows you to upload phone numbers, customize scripts and assign volunteers to communicate with supporters while allowing organizations to manage the process.

Spoke was created by Saikat Chakrabarti and Sheena Pakanati, and is now maintained by MoveOn.org.

The latest version can be found on the [State Voices repo page](https://github.com/StateVoicesNational/Spoke) (see [release notes](https://github.com/StateVoicesNational/Spoke/blob/main/docs/RELEASE_NOTES.md))
Spoke was created by Saikat Chakrabarti and Sheena Pakanati.

If you're a developer switching over from the MoveOn fork to the new StateVoices base, you can run:
```
git remote set-url upstream https://github.com/StateVoicesNational/Spoke
git remote set-url origin https://github.com/StateVoicesNational/Spoke
```
to reset where your repo is pointing and ensure you're pulling the correct code.
On November 19th, 2023, the repo Spoke was transferred from MoveOn to State Voices.

The latest version can be found here: [Release Notes](https://github.com/StateVoicesNational/Spoke/blob/main/docs/RELEASE_NOTES.md)

## Setting up Spoke

The easiest way to get started is with Heroku. You can also learn about Spoke through the [texter](https://youtu.be/EqE1UDvKGco) and [admin](https://youtu.be/PTMykMX8gII) video demos or in the explanation on [how to decide if Spoke is right for you.](docs/EXPLANATION_DECIDING_ON_SPOKE.md)

The easiest way to get started is with Heroku. You can also learn about Spoke through the [texter](https://youtu.be/EqE1UDvKGco) and [admin](https://youtu.be/PTMykMX8gII) video demos or in the explanation on [how to decide if Spoke is right for you.](/docs/EXPLANATION_DECIDING_ON_SPOKE.md)

For developers, please see our recommendations for [deploying locally for development](/docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md).
For developers, please see our recommendations for [deploying locally for development](docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md).

Want to know more?
[Click here to visit the Spoke Documentation microsite!](https://statevoicesnational.github.io/Spoke/)


### Quick Start with Heroku
This version of Spoke suitable for testing and, potentially, for small campaigns. This won't cost any money and will not support production(aka large-scale) usage. It's a great way to practice deploying Spoke or see it in action.

<a href="https://heroku.com/deploy?template=https://github.com/StateVoicesNational/Spoke/tree/13.2.0">
This version of Spoke suitable for testing and, potentially, for small campaigns. This won't cost any money and will not support production(aka large-scale) usage. It's a great way to practice deploying Spoke or see it in action.

<a href="https://heroku.com/deploy?template=https://github.com/StateVoicesNational/Spoke/tree/v14.1.2">

<img src="https://www.herokucdn.com/deploy/button.svg" alt="Deploy">
</a>

Follow up instructions located [here](/docs/HOWTO_HEROKU_DEPLOY.md).


**NOTE:** You can upgrade this deployment later for use in a production setting, but keep in mind you will need to migrate data from any prior campaigns. Thus it is best to upgrade before you start any live campaigns. This will cost ~$75 ($25 dyno + $50 postgres) a month and should be suitable for production level usage for most organizations. We recommend that if you plan to use Spoke at scale that you use [this link to deploy with a production infrastructure from the start!](https://heroku.com/deploy?template=https://github.com/StateVoicesNational/Spoke/tree/heroku-button-paid)

Please let us know if you deployed by filling out this form [here](https://act.moveon.org/survey/tech/)
Follow up instructions located [here](docs/HOWTO_HEROKU_DEPLOY.md).

**NOTE:** You can upgrade this deployment later for use in a production setting, but keep in mind you will need to migrate data from any prior campaigns. Thus it is best to upgrade before you start any live campaigns. This will cost ~$75 ($25 dyno + \$50 postgres) a month and should be suitable for production level usage for most organizations. We recommend that if you plan to use Spoke at scale that you use [this link to deploy with a production infrastructure from the start!](https://heroku.com/deploy?template=https://github.com/StateVoicesNational/Spoke/tree/heroku-button-paid)

### Other Options for Production Use

You can also [deploy on AWS Lambda.](docs/HOWTO_DEPLOYING_AWS_LAMBDA.md) which is a lot cheaper than Heroku at scale, but requires considerably more technical knowledge to deploy and maintain. We recommend this option for large scale campaigns with tech resources.

Additional guidance:

- [Choosing a set-up for production](docs/EXPLANATION_CHOOSE_A_SETUP.md)
- [How to hire someone to install Spoke](docs/HOWTO_HIRE_SOMEONE_TO_INSTALL_SPOKE.md)
- [Option for minimalist deployment](docs/HOWTO_MINIMALIST_DEPLOY.md)
Expand Down
Loading
Loading