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

Docker #435

Merged
merged 12 commits into from
Jan 30, 2018
Merged

Docker #435

merged 12 commits into from
Jan 30, 2018

Conversation

mi-wood
Copy link
Member

@mi-wood mi-wood commented Jan 29, 2018

I'll hunt down any vagrant issues, as this will close them

@mi-wood
Copy link
Member Author

mi-wood commented Jan 29, 2018

Closes #411 and #336

@stardust66
Copy link
Contributor

Running docker-compose down wipes the development database, since it's a temporary change made by the docker-compose run command. Is there a way to make this permanent? I tried putting this in the Dockerfile, which is only run during the building phase, but it didn't work because db hasn't been built yet. Is there a way to make docker-compose run something only at build time?

@mi-wood
Copy link
Member Author

mi-wood commented Jan 29, 2018

@stardust66 I referred to https://stackoverflow.com/questions/38089999/docker-compose-rails-best-practice-to-migrate, where someone suggests using an entrypoint to run the migration. Unfortunately, it has to happen every time, but I think that's kind of just a docker way of doing things.

@mi-wood
Copy link
Member Author

mi-wood commented Jan 29, 2018

I'm crying, this is so much easier

@stardust66
Copy link
Contributor

Hey, I think we can avoid this problem altogether by not running docker-compose down, since pressing ctrl-c already stops the services. docker-compose down removes the containers, which I don't think we need to do.

@mi-wood
Copy link
Member Author

mi-wood commented Jan 29, 2018

ctl-c doesn't kill the rails process itself, so next time you run docker-compose up there might be a phantom process that doesn't allow it to run


### 6 Assets
### 6 Optional tasks:
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tkwidmer do we need this anymore? I feel if we do, it might not belong in this doc

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if we still need this. The seed has been reduced to a small sample set rather than a larger set that it used to be. So we may not need this.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to delete since in my past 3.5 years of working on this I've never done this. It might just be confusing to a newcomer

apt-get install libfreetype6 libfreetype6-dev -y && \
apt-get install libfontconfig1 libfontconfig1-dev -y && \
cd ~ && \
export PHANTOM_JS="phantomjs-2.1.1-linux-x86_64" && \
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just reminding myself this should be $PANTOM_JS not 2.1.1

@stardust66
Copy link
Contributor

stardust66 commented Jan 29, 2018

I think the rails server leaves a server.pid file inside tmp/pids/ which prevents a new server from starting up.
image

My workaround is to mount an empty volume at /refugerestrooms/tmp/. In docker-compose.yml

services:
  web:
    volumes:
      - .:/refugerestrooms
      - /refugerestrooms/tmp

This makes the tmp folder in the container initially empty. Thus, no server.pid file to prevent the server from starting, and there won't be a need to run docker-compose down. Apart from not needing to run migrations every time, this also has the added benefit of persisting development data (any bathrooms you add to the database for testing will stay).

@mi-wood Do you see any downsides to this?

@mi-wood
Copy link
Member Author

mi-wood commented Jan 29, 2018

@stardust66 I'd probably rather just seed the DB every time than implement a workaround and have people use ctl-c since it goes against the docs. The seeding only takes a few seconds. If it becomes an issue, we can always change it.

@stardust66
Copy link
Contributor

Okay. That makes sense.

@mi-wood
Copy link
Member Author

mi-wood commented Jan 30, 2018

Going to go ahead and merge this, so I don't have to cherry pick around other branches to use it

@mi-wood mi-wood merged commit 5876b6a into develop Jan 30, 2018
@mi-wood mi-wood deleted the docker branch January 30, 2018 01:48
@tkwidmer
Copy link
Contributor

👍

@mi-wood mi-wood mentioned this pull request Feb 8, 2018
@tkwidmer tkwidmer added this to the 1.11.0 milestone Feb 8, 2018
DeeDeeG added a commit to DeeDeeG/refugerestrooms that referenced this pull request Feb 19, 2018
DeeDeeG added a commit to DeeDeeG/refugerestrooms that referenced this pull request Jun 2, 2018
This reverts commit 5876b6a.

Restores Vagrant files and configurations. Probably.
DeeDeeG added a commit to DeeDeeG/refugerestrooms that referenced this pull request Oct 3, 2018
This reverts commit 5876b6a.

(Restores Vagrant configuration as an alternative to Docker.)
DeeDeeG added a commit to DeeDeeG/refugerestrooms that referenced this pull request Oct 5, 2018
This reverts commit 5876b6a.

(Restores Vagrant configuration as an alternative to Docker.)
DeeDeeG added a commit to DeeDeeG/refugerestrooms that referenced this pull request Oct 5, 2018
This reverts commit 5876b6a.

(Restores Vagrant configuration as an alternative to Docker.)
DeeDeeG pushed a commit to DeeDeeG/refugerestrooms that referenced this pull request Oct 15, 2018
* add docker configs

* remove vagrant

* remove more vagrant

* update docs

* attempt to use travis...

* use compose

* add docs for forking project

* update contributing docs

* add db:create and db:migrate as entrypoint

* update docs
DeeDeeG added a commit to DeeDeeG/refugerestrooms that referenced this pull request Oct 16, 2018
(Big old squashed commit)

Squashed commit of the following:

commit 0bd0380
Author: DeeDeeG <[email protected]>
Date:   Fri Oct 5 20:15:23 2018 -0400

    setup_vagrant: Remove unnecessary packages

    Delete section of unnecessary package installation.

    Does not impact functionality of installation.

commit 2269ce0
Author: DeeDeeG <[email protected]>
Date:   Fri Oct 5 19:29:25 2018 -0400

    setup_vagrant.sh: Idempotentialize PhantomJS config

    Only try to install and configure PhantomJS
    if there is no phantomjs directory in /usr/local/bin.

commit f54773c
Author: DeeDeeG <[email protected]>
Date:   Fri Oct 5 19:23:03 2018 -0400

    Revert "setup_vagrant.sh: Install phantomjs via APT"

    This reverts commit ba85fa3.

    The APT package from the Ubuntu repository has too many
    heavy dependencies. Install just the custom-packaged version.

commit 262a45b
Author: DeeDeeG <[email protected]>
Date:   Fri Oct 5 18:53:17 2018 -0400

    setup_vagrant.sh: Move nodejs package install

    Use the idempotent apt installer subscript to install nodejs.

commit f5d9e1c
Author: DeeDeeG <[email protected]>
Date:   Fri Oct 5 18:50:15 2018 -0400

    setup_vagrant.sh: Idempotentialize Node.js config

    Only try to configure Node.js repo andother settings
    if there is no nodesource.list in /etc/apt/sources.list.d/

commit 54217ad
Author: DeeDeeG <[email protected]>
Date:   Fri Oct 5 18:45:17 2018 -0400

    setup_vagrant.sh: Idempotentialize Yarn repo

    Don't try to add the repo again if yarn.list already exists
    in `/etc/apt/sources.list.d`.

    (Is "idempotentialize" a word?)

commit 47a9cde
Author: DeeDeeG <[email protected]>
Date:   Fri Oct 5 18:30:40 2018 -0400

    setup_vagrant.sh: Install Yarn idempotently

    Use the nice APT idempotent package installer subscript
    to install Yarn. Neatens up the script,
    saves time when re-provisioning.

commit ba85fa3
Author: DeeDeeG <[email protected]>
Date:   Fri Oct 5 18:28:24 2018 -0400

    setup_vagrant.sh: Install phantomjs via APT

    Uses the package from the Ubuntu Bionic repositories,
    instead of custom-installing.

commit 6563c04
Author: DeeDeeG <[email protected]>
Date:   Fri Oct 5 18:24:25 2018 -0400

    setup_vagrant.sh: cleanup top of script

    Rearranges package installations
    under their own headers.

    Much more readable this way.

commit a404866
Author: DeeDeeG <[email protected]>
Date:   Fri Oct 5 17:50:31 2018 -0400

    Use rvm instead of rbenv and ruby-build

    Change setup_vagrant.sh from downloading and compiling ruby
    with rbenv to simply downloading and installing RVM's binary of ruby.

commit 5aafb18
Author: DeeDeeG <[email protected]>
Date:   Fri Oct 5 00:31:30 2018 -0400

    Bump Vagrant setup to 18.04 Bionic

    We need to do this because:
      1) Trusty will be end-of-service soon
      2) rvm does not have latest ruby binaries for Trusty

commit 63bd486
Author: DeeDeeG <[email protected]>
Date:   Thu Oct 4 21:40:52 2018 -0400

    Un-pin bundler; just download the latest version

    Vagrant stopped using bundler internally in late 2016.
    See:
    https://github.com/hashicorp/vagrant/commits/master/vagrant.gemspec

    And these two commits:

    4 Jan 2014, Vagrant begins to use bundler internally:
    hashicorp/vagrant@f2c6175

    5 Sep 2016, Vagrant drops its internal dependency on bundler:
    hashicorp/vagrant@1fb4553

commit a411369
Author: DeeDeeG <[email protected]>
Date:   Thu Oct 4 21:32:06 2018 -0400

    Revert "Docker (RefugeRestrooms#435)"

    This reverts commit 5876b6a.

    (Restores Vagrant configuration as an alternative to Docker.)
DeeDeeG pushed a commit to DeeDeeG/refugerestrooms that referenced this pull request Nov 3, 2018
* add docker configs

* remove vagrant

* remove more vagrant

* update docs

* attempt to use travis...

* use compose

* add docs for forking project

* update contributing docs

* add db:create and db:migrate as entrypoint

* update docs
DeeDeeG added a commit to DeeDeeG/refugerestrooms that referenced this pull request Mar 15, 2020
GitHub's CDN is more reliable than BitBucket's.

(This is the URL we originally used as of PR RefugeRestrooms#435,
which was the initial implementation of our Docker setup.)
DeeDeeG added a commit that referenced this pull request Mar 17, 2020
* Dockerfile: Use better PhantomJS URL

GitHub's CDN is more reliable than BitBucket's.

(This is the URL we originally used as of PR #435,
which was the initial implementation of our Docker setup.)

* docker-compose.yml: Add password for PostgreSQL db

This is in response to a recent change in the PostgreSQL Docker image.

Either the database must be configured to not check passwords, i.e.
`POSTGRESQL_HOST_AUTH_METHOD=trust`, or a password must now be set.

For explanation and context, see:

- docker-library/postgres#658
- docker-library/postgres#681
- docker-library/postgres#580
- https://discuss.circleci.com/t/postgresql-image-password-not-specified-issue/34555
DeeDeeG added a commit that referenced this pull request Apr 12, 2020
Squashed commit of the following:

commit a3ba4b7
Author: DeeDeeG <[email protected]>
Date:   Fri Apr 3 22:10:09 2020 -0400

    Update Node.JS and Ruby Dependencies (#617)
    
    * Gemfile[.lock]: Update rails to 5.2.4.2
    
    Also update its dependencies, as required.
    
    * Gemfile[.lock]: Update grape and grape-swagger
    
    Also update their dependencies, as needed.
    
    * Gemfile[.lock]: Update activeadmin
    
    * Gemfile: Pin sprockets to "< 4"
    
    The 4.x major version upgrade requires some configuration changes.
    
    Pinning keeps the app from breaking when doing `bundle update`.
    
    * Gemfile.lock: Update all packages
    
    * yarn.lock: Update all packages

commit 15fe9f7
Author: DeeDeeG <[email protected]>
Date:   Thu Apr 2 16:02:39 2020 -0400

    Ruby: Update from 2.5.7 to 2.5.8 (#618)

commit cc9f2a7
Author: DeeDeeG <[email protected]>
Date:   Tue Mar 17 15:02:57 2020 -0400

    Update docker config (#616)
    
    * Dockerfile: Use better PhantomJS URL
    
    GitHub's CDN is more reliable than BitBucket's.
    
    (This is the URL we originally used as of PR #435,
    which was the initial implementation of our Docker setup.)
    
    * docker-compose.yml: Add password for PostgreSQL db
    
    This is in response to a recent change in the PostgreSQL Docker image.
    
    Either the database must be configured to not check passwords, i.e.
    `POSTGRESQL_HOST_AUTH_METHOD=trust`, or a password must now be set.
    
    For explanation and context, see:
    
    - docker-library/postgres#658
    - docker-library/postgres#681
    - docker-library/postgres#580
    - https://discuss.circleci.com/t/postgresql-image-password-not-specified-issue/34555
mi-wood added a commit that referenced this pull request Apr 13, 2020
* db/seeds.rb: Give restroom entries an edit_id (#567)

Only applies during development and testing
when we use the "db/export.csv" data.

Doesn't affect production, which uses the real data in its db.

* Explain how to run individual tests and access psql (#570)

Also, clarify that there are two containers, web and db,
rather than just one; these can be viewed using
docker ps

* Make filter with "focus" class more readable

* Remove unused li

* Allow dropdown menu text to wrap and fit within the dropdown

Add border bottom to give each menu item more separation

* yarn.lock: Update jquery (#587)

* Dockerfile: Update and streamline steps (#586)

Does effectively the same things as before,
but now in a simpler/faster way.

Some of the changes take inspiration from
@btyy77c's dockerAlpine branch:
https://github.com/btyy77c/refugerestrooms/blob/dockerAlpine/Dockerfile

The PhantomJS install is based on (mostly copy-pasted from)
@nkovacs' phantomjs image from Docker Hub:
https://github.com/nkovacs/selenium-standalone-phantomjs/blob/c5f6bba218472270/Dockerfile#L19-L22

* Dockerfile: Get latest Node.js in a major version (#589)

(Also installs Node.js in /usr/local/
instead of installing Node.js in the root directory.)

With this updated script, we specify just a major version
and the script picks the latest minor/patch version within that.

--

Nodejs.org does most of the work by maintaining the "latest-v[MAJOR]"
folders; We only need to parse the "SHASUMS256.txt" file from there,
and pick the "linux-x64" variant, which works with our Docker setup.

At this point we can use the known directory URL, plus the filename
extracted from "SHASUMS256.txt", and download with curl, or wget, etc.

(e.g. "curl -L https://nodejs.org/dist/latest-v10.x/node-v10.16.0-linux-x64.tar.xz -o nodejs.tar.xz")

--

There is no "latest-LTS" folder or similar, so automatically getting
the latest LTS version would be more difficult.

We could search "nodejs.org/dist/" for folders with
the name "latest-[LETTERS-ONLY-STRING]", which would be the folders
of all the LTS codenames. Among these, the one with
the alphabetically last name is the latest LTS.

This would work at least until around 2040, when they may have
to loop around and re-use some earlier letters (a, b, c, etc.)

* Update Node.js and Ruby dependencies (#590)

* yarn.lock: Update Node.js packages

* Gemfile.lock: Update gems

* Add Bugsnag to readme

To fufill the open source agreement, we have to link to bugsnag now in our readme.

* .travis.yml: Use minimal base image for Travis CI

We do all the setup/build steps inside a Docker container,
so we don't need ruby tools outside of Docker
(on the Travis CI virtual machine instances).

Should save about 20 seconds of Travis CI build time.

--

Inspired by @btyy77c who did this first at their dockerAlpine branch:
  - btyy77c@393cf46

Documentation at Travis re: minimal/generic images:
  - https://docs.travis-ci.com/user/languages/minimal-and-generic/

* docker-compose.yml: Use postgresql:alpine image

This (the Alpine Linux-based postgresql image) is a smaller image
than the debian-based postgresql image,
so it should be marginally faster to download.

Seems like a good idea in general,
to speed up build times (even outside of Travis CI).

Also should save some disk space for developers.

--

Inspired by the general concept of @btyy77c's dockerAlpine branch:
  - https://github.com/btyy77c/refugerestrooms/commits/dockerAlpine

Docker Hub documentation on the alpine vs debian postgres images:
  - https://hub.docker.com/_/postgres#image-variants

* layouts/_footer.html.haml: Remove tumblr link

* stylesheets/.../common: Remove tumblr icon stlye

* en/footer.en.yml: Remove string for tumblr blog

This isn't needed anymore,
since we have removed the tumblr link from the footer.

* removed tumblr from about page (#593)

I noticed we were removing tumblr, here's one more instance

* Create about.fil.yml (#465)

* Filipino Translation devise.fil.yml (#454)

* Create devise.fil.yml

* Update devise.fil.yml

* Update for devise.fil.yml @100% Translation

* Update and rename devise.fil.yml to devise.fl.yml

* Update and rename devise.fl.yml to devise.fil.yml

* 100% completed for restroom.fil.yml file  (#467)

* Create restroom.fil.yml

* Translations for EN to FIL Issue 451 (#556)

Translated files from EN to FIL #451

* config/locales/fil/: Remove tumblr

See #592 and #593

* Updated filipino translations

* switched sass-rails gem (#595)

* switched sass-rails gem (sass-rails --> sassc-rails)

* Changed the word `restroom` to `banyo` to be mroe understandable to most Filipinos

* Fixed some unnoticed words that needed some changes in translation

* additional translation changes

* config/application.rb: Add 'fil' locale (Filipino)

Enables translations as merged in #596

* .travis.yml: Set "dist" to "trusty" (#600)

Should allow our CI tests to pass
while we investigate test failures on xenial and newer.

* production.rb: Fix i18n.fallbacks deprecation warn

* config/application.rb: Add Tagalog (:tl) locale

* production.rb: I18n fallbacks for :tl --> :fil

We don't maintain separate translations for
"Tagalog" and Filipino, since they are arguably the same language.

However, Firefox only allows users to set "Tagalog" as preferred,
and Chrome only allows users to set "Filipino" as preferred.

To support both browsers, we must support both the "Tagalog"
and the "Filipino" locales.

(These locales use the "tl" and "fil" locale codes, respectively.)

* config/application.rb: Set default locale to "en"

* package.json: Update swagger to master with patch

* yarn.lock: Commit updated (indirect) dependencies

* yarn.lock: Update all packages

* Gemfile[.lock]: Update devise, simple_form

* yarn.lock: Upgrade swagger-ui's dependencies

* Ruby: Upgrade from 2.5.3 to 2.5.7

* Dockerfile: Work around an issue with phantomjs

When running the tests, cliver tries to check that PhantomJS's version
is within a certain range, by running "phantomjs --version".

The "phantomjs --version" command fails for some reason
on the new ruby:2.5.7-slim Docker base image.

Perhaps because the new Docker image is based on Debian 10 "Buster,"
whereas the old Docker image was based on Debian 9 "Stretch"?

This commit's workaround allows "phantomjs --version" to work again.

* Fix Travis tests failing on distributions other than trusty (#606)

* Revert ".travis.yml: Set "dist" to "trusty" (#600)"

This reverts commit ac8f6ab.

Doing this to run tests on Travis to investigate why they
aren't passing.

* Explicitly require locations.rb in rspec.rb

Tentative fix for tests not passing in xenial but passing in trusty.
This might be because different distributions load files in a
different order. In xenial, `rspec.rb` might get loaded before
`locations.rb`, making `Locations` uninitialized. Explicit require
fixes this.

* Dockerfile: Upgrade Node from v10.x to v12.x (#603)

Node 12 "Erbium" is the newest Long Term Service release.

We should either pin a version of Node in our package.json file,
or stay on the latest LTS version of Node;

Heroku will use the latest LTS version of Node 
in production if we don't have any versions pinned in our package.json

* Webpack Upgrade (#607)

* Updated webpacker gem

* Upgraded yarn packages

* Ran webpack:install process.  Working without rails-erb-loader

* Added rails-erb-loader to webpack

* Fixed include PgSearch warning

* Added .dockerignore

* PR #607: Minor tweaks/cleanup

- Adjust Gemfile[.lock] to specify webpacker within the 4.x series,
  rather than any version 4.0 or greater.

- Delete some duplicate entries in the .gitignore file

* CONTRIBUTING.md: Remove the reference to "Cmd + C"

The "Cmd + C" keyboard shortcut is for copying text,
not quitting programs in the terminal.

The proper way to quit programs in the terminal
under macOS is "Ctrl + C", the same as Linux.

Referring to "Cmd + C" here was based on
a mistaken assumption that "Ctrl" on Windows or Linux
always gets translated to "Cmd" on macOS.

(In fact, some uses of "Ctrl" on Windows/Linux
are preserved as-is on macOS. It's a mixed bag.)

Deleting the reference to "Ctrl + C", to make the guidance clearer.

* db/schema.rb: Commit with underscores in date

The date gets underscores added automatically
when running migrations on the database.

Committing with the underscores so the change isn't flagged by git
when no code has been changed.

* restrooms_spec.rb: Fix a test (#608)

Background:

The Mission Creek Cafe in San Francisco has been closed for some time.

Google Maps API now resolves "Mission Creek Cafe"
to a coffee shop in Washington state.

Washington is too far away from our stub restroom entries;
No stub restrooms are located near Washington,
so no restroom results are shown on our results page for this search.

The test expects to see a stub restroom entry on the reults page,
but does not see it, and so the test fails.

---

Fix:

search the Maps API for "San Francisco," not "Mission Creek Cafe"

(This returns a lat/long associated with San Francisco not Washington)

* Update some dependencies, fix some deprecation warnings (#609)

* Gemfile[.lock]: Update simplecov

Fixes a deprecation warning

* restrooms_spec.rb: Use 'successful' not 'success'

Rspec's `be_success` and `.success?` are deprecated.

Rspec's `be_successful` and `.successful?`
are the non-deprecated versions of this check.

(This fixes the associated deprecation warning)

* Gemfile.lock: Bump some dependencies

Upgraded loofah, puma, rack, and rack-cors,
plus their dependencies.

* Tweak CSS a bit for narrow screens (e.g. mobile phones) (#610)

* CSS: Add some styles for narrow screens

For screen widths ~340px or narrower.

(Such a narrow screen is found, for example, on the original iPhone
through to the iPhone 5S and iPhone SE.)

- Makes the "+" icon on the "Add A Restroom" button
  appear in a more correct-looking position.

- Fixes the overlap of the "Refuge Restrooms" text
  with the "hamburger" drop-down menu button in the header/nav section.

- Adds a class via the haml source (.nav-column)
  to make applying one of the style rules easier.

* CSS: No double-padding on nested `.container`s

Eliminate double-padding in cases of
an [element].container immediately inside another [element].container.

(Doing this only directly under the header div, just to be conservative.)

The 15px + 15px = 30px of padding on both sides
seemed unintentionally wide. Also, I think this looks nicer.
Helps with the tight fit on mobile devices, too.

(Should affect the header/nav on all pages other than the home page,
aka the splash page, due to the way the pages are coded.)

* CSS: Center logo and brand name on narrow screens (#611)

* _mobile.scss: Lower logo/brand on narrow screens

Adjust the CSS "top" property to set the logo and "brand name"
("Refuge Restrooms") slightly lower within the navbar on narrow
screens.

This is to adjust for the navbar being responsively taller
on narrower screens. "767px screen width" happens to be the responsive
threshold for that height change for the navbar.

* _mobile.scss: Move 342px rules, adjust whitespace

Moved the "max 342px" rules to the bottom, so all screen-width-related
style rules are in descending order of the sizes that they apply to.
(For consistency).

Adjusted the use of newlines in this stylesheet to be more consitent.

* Update docker config (#616)

* Dockerfile: Use better PhantomJS URL

GitHub's CDN is more reliable than BitBucket's.

(This is the URL we originally used as of PR #435,
which was the initial implementation of our Docker setup.)

* docker-compose.yml: Add password for PostgreSQL db

This is in response to a recent change in the PostgreSQL Docker image.

Either the database must be configured to not check passwords, i.e.
`POSTGRESQL_HOST_AUTH_METHOD=trust`, or a password must now be set.

For explanation and context, see:

- docker-library/postgres#658
- docker-library/postgres#681
- docker-library/postgres#580
- https://discuss.circleci.com/t/postgresql-image-password-not-specified-issue/34555

* Ruby: Update from 2.5.7 to 2.5.8 (#618)

* Update Node.JS and Ruby Dependencies (#617)

* Gemfile[.lock]: Update rails to 5.2.4.2

Also update its dependencies, as required.

* Gemfile[.lock]: Update grape and grape-swagger

Also update their dependencies, as needed.

* Gemfile[.lock]: Update activeadmin

* Gemfile: Pin sprockets to "< 4"

The 4.x major version upgrade requires some configuration changes.

Pinning keeps the app from breaking when doing `bundle update`.

* Gemfile.lock: Update all packages

* yarn.lock: Update all packages

* Implement Google's reCAPTCHA (#566)

* Add server reCAPTCHA verification for contacts

Added a temporary secret key for testing in .env, which is loaded by
the dotenv gem. In production, just put another key in the Heroku
env variable settings.

* Add reCAPTCHA to contacts submission page

* Enable browser form validation by default

This gets form input validated on the client side, which gives faster
feedback to the user, without the need for a custom solution. This
feature is supported in all modern browsers.

* Add reCAPTCHA to restrooms page

* Make stub for reCAPTCHA verification during tests

Co-authored-by: Mikena Wood <[email protected]>

Co-authored-by: DeeDeeG <[email protected]>
Co-authored-by: Kai Middleton <[email protected]>
Co-authored-by: hkly <[email protected]>
Co-authored-by: Teagan <[email protected]>
Co-authored-by: Joe Wadcan <[email protected]>
Co-authored-by: vinzruzell <[email protected]>
Co-authored-by: hnarasaki <[email protected]>
Co-authored-by: Bryan Mark Fajutag <[email protected]>
Co-authored-by: Emily Ring <[email protected]>
Co-authored-by: Jason Chen <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants