417 Commits
Author SHA1 Message Date
Daniel O'Connor 4754d10495 Document why we pin 2026-08-23 08:09:33 +00:00
Daniel O'Connor b323280de9 Bump oauth to 1.1.6 2026-08-23 08:08:32 +00:00
Daniel O'Connor c0c7fc0290 Bump oauth to 1.1.5 2026-08-23 08:07:58 +00:00
Daniel O'Connor 449bb4dd13 Bump oauth to 1.1.4 2026-08-23 08:06:54 +00:00
Daniel O'Connor 704665d259 Bump oauth to 1.1.3 2026-08-23 08:06:01 +00:00
Daniel O'Connor 5ec95c68fc Bump oauth to 1.1.2 2026-08-23 08:05:16 +00:00
Daniel O'Connor 1e9b2bd3c0 Bump oauth to 1.1.1 2026-08-23 07:28:53 +00:00
Daniel O'Connor 3a8f112932 Bump oauth to 1.1.0 because Showing 409 changed files with 44,667 additions and 5,609 deletions is obscene 2026-08-23 07:15:53 +00:00
Daniel O'Connor 932d36255e Bump oauth to 1.1.6 2026-08-23 07:13:04 +00:00
Daniel O'Connor f4d883fee2 Bump oauth to 1.0.1 2026-08-23 07:07:47 +00:00
Daniel O'Connor 29bd577dc7 Bump oauth from 0.5.14 to 0.6.2 2026-08-23 06:56:49 +00:00
4563df45d0 Upgrade to Rails 8.1 (#4685)
* Upgrade application to Rails 8.1

- Update rails gem to ~> 8.1.0
- Set config.load_defaults 8.1 in application.rb
- Add gem 'csv' for Ruby 3.4+ compatibility
- Replace deprecated 'render text:' with 'render plain:' in PagesController
- Add compatibility patch for jsonapi-resources routing in Rails 8.1
- Add compatibility patch for Faraday 2.x error constants
- Add Searchkick test stubs for environments without Elasticsearch
- Include required Active Storage update migrations

Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com>

* Remove disabled searchkick

* Apply suggestion from @CloCkWeRX

* Delete config/initializers/faraday_patch.rb

* Apply suggestions from code review

Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>

* Remove modifications for tests without elasticsearch

* Remove psych gem and its dependencies

Removed psych gem version 5.4.0 and its dependencies.

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-08-09 22:53:15 +09:30
867c8b27fb Upgrade to Rails 8.0 (#4621)
* Upgrade application to Rails 8.0

- Updated Gemfile to rails ~> 8.0.0 and updated Gemfile.lock
- Set config.load_defaults 8.0 in config/application.rb
- Configured YAML as default_column_serializer for ActiveRecord serialization compatibility
- Added Faraday 2.x error constant compatibility shim in config/initializers/faraday_patch.rb
- Added Active Storage migrations and verified with db:migrate
- Added Rails 8 bin/dev and bin/rubocop scripts
- Maintained Ruby 3.4.9 compatibility in .ruby-version and Gemfile.lock

Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com>

* Delete db/migrate/20241117032507_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb

* Delete db/migrate/20241117032505_add_service_name_to_active_storage_blobs.active_storage.rb

* Delete db/migrate/20241117032506_create_active_storage_variant_records.active_storage.rb

* Delete config/initializers/faraday_patch.rb

* Update schema

* Fix conflicts

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-06-23 20:43:40 +09:30
Daniel O'Connor 555d5ddf15 Revert "Replace Sidekiq with Solid Queue (#4619)" (#4620)
This reverts commit 4659ac5464.
2026-05-04 18:15:17 +09:30
4659ac5464 Replace Sidekiq with Solid Queue (#4619)
* Replace Sidekiq with Solid Queue

This commit transitions the background job processing from Sidekiq to
Solid Queue.

Changes:
- Replaced `sidekiq` gem with `solid_queue` in Gemfile.
- Updated `development.rb` and `production.rb` to use `:solid_queue` as
  the queue adapter.
- Added Solid Queue database tables via a new migration.
- Configured Solid Queue in `config/queue.yml` and `config/recurring.yml`.
- Integrated Solid Queue supervisor as a Puma plugin in `config/puma.rb`.
- Removed separate worker process from `Procfile`.
- Removed Sidekiq-specific configuration files.
- Updated Gemfile.lock to support both `ruby` and `x86_64-linux` platforms.

Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com>

* Fix regression in gemfiles

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-05-03 15:29:03 +09:30
Daniel O'Connor 9abb0d02b9 Merge pull request #4581 from Growstuff/add-rack-attack-protection-3014929071908440304
Add Rack::Attack rate limiting and Fail2Ban protection
2026-04-27 13:23:17 +09:30
Daniel O'Connor a38d99ed4a Rubocop: Bundler/OrderedGems 2026-04-23 13:07:38 +00:00
Daniel O'Connor b9dcd95c00 Rubocop: Layout/TrailingWhitespace 2026-04-23 12:27:06 +00:00
Daniel O'Connor 0aa182af14 Remove travis 2026-03-01 05:11:29 +00:00
Daniel O'Connor 5049b6fd3b Pin 2025-12-08 21:49:38 +00:00
google-labs-jules[bot] 62be64fd38 feat: Upload sitemap to S3 bucket
This commit configures the sitemap generation process to upload the sitemap to an S3 bucket instead of the local filesystem.

It introduces the `aws-sdk-s3` gem to handle the S3 communication. A new configuration file, `config/sitemap.rb`, has been added to define the S3 adapter and specify the models to be included in the sitemap. The S3 bucket, access keys, and region are configured via environment variables.
2025-12-01 15:27:59 +00:00
google-labs-jules[bot] 7f75aed146 feat: Add sitemap generator
Adds the `sitemap_generator` gem to generate a sitemap.

- Includes static routes and dynamic routes for active crops, plantings, seeds, photos, posts, and members.
- Implements a caching mechanism to ensure the sitemap is generated no more frequently than every 72 hours.
- Updates `robots.txt` to point to the new sitemap.
- Includes a unit test for the caching Rake task.
2025-12-01 14:31:54 +00:00
google-labs-jules[bot]andDaniel O'Connor 13a8276313 Add version tracking to crops model (#4343)
* feat: Add version tracking to Crop model

This commit introduces version tracking for the Crop model using the PaperTrail gem.

Key changes include:
- Integrating `has_paper_trail` into the `Crop` model.
- Adding a "History" section to the crop show page to display a timeline of changes for that specific crop.
- Creating a new admin page for users with the "crop_wrangler" role to view a log of all recent crop edits, creations, and deletions.
- Fixing several N+1 query performance issues by eager-loading associated `Member` records in both the `CropsController` and the new `Admin::CropsController`.
- Refactoring view logic into a shared partial to reduce code duplication.

* Add papertrail

* Admin UI

* Add papertrail DB

* Add papertrail DB

* Rearrange

* Fix permissions

* Fix permissions

* Fix UI

* Fix UI

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
2025-11-30 14:47:46 +10:30
Daniel O'Connor 5418cad976 Rubocop 2025-09-20 10:15:14 +00:00
Daniel O'Connor d185ce495f Remove haml-lint-extractor 2025-09-01 12:13:08 +00:00
google-labs-jules[bot]andDaniel O'Connor ac1463e2cf Add international alternate names for crops (#4132)
* I will add the international alternate names for the crops.

* Mark required

* Update factory

* Add placeholder

* Fix seeds

* Add language, though hardcoded to EN in most places

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
2025-08-24 21:44:41 +09:30
Daniel O'Connor 3d4ba954e7 Remove defunct detail 2025-08-24 07:05:28 +00:00
google-labs-jules[bot] 0b639d5940 Remove twitter authentication
This change removes the twitter authentication feature from the application.

It removes the `omniauth-twitter` gem and all related code from controllers, views, and tests. It also removes the twitter icon and environment variable settings.
2025-08-24 07:03:20 +00:00
Daniel O'Connor 0b4820e5df Add rspec-retry (#4129)
* Add rspec-retry

* Add config

* Swap to rspec-rebound, which is a fork

* Swap to rspec-rebound, which is a fork
2025-08-10 15:55:52 +09:30
google-labs-jules[bot] 4f705ff37b Add CrowdIn translations support
This change adds support for CrowdIn to manage translations.

- Adds the `crowdin-cli` gem to the `Gemfile`.
- Adds a `crowdin.yml` configuration file to the project root.
2025-08-10 01:02:39 +00:00
Daniel O'Connor df9f8445ad Yeet codeclimate into the sun 2025-07-13 06:22:31 +00:00
Daniel O'Connor 5c206896af Rails 7.2.1 (#3789)
* Rails 7.2.0.beta3

* Rails 7.2.1

* Bump
2024-08-31 17:43:35 +09:30
Daniel O'Connor 78fee52f17 Ruby 3.2: Upgrade Rubocop and add more rubocop helpers (#3779)
* Ruby 3.2/Bundler 2.4

* Fix creation

* Upgrade to js-routes 2. Put all js routes into a global namespace.

* Remove js-routes

* Remove

* Adjust ownership

* Appease codeclimate for the nth time

* Fix deprecation warning by explicitly calling to_fs

* Fix deprecation warning by explicitly calling to_fs

* Fix deprecation warning by explicitly calling to_fs

* Swap to will paginate successor for bootstrap

* Update app/views/members/show.html.haml

* Update app/views/plantings/index.rss.haml

* Update .env

* Update .devcontainer/.env

* Fix spec

* Update spec

* Fix spec

* Pin to 2.4.22

* 3 space indent

* Regenerate

* Update rubocop

* Rubocop

* More rubocop

* Regenerate

* Fix config file
2024-07-13 15:09:32 +09:30
Daniel O'Connor 000f4979db Trial Ruby32 (#3418)
* Ruby 3.2/Bundler 2.4

* Fix creation

* Upgrade to js-routes 2. Put all js routes into a global namespace.

* Remove js-routes

* Remove

* Adjust ownership

* Appease codeclimate for the nth time

* Fix deprecation warning by explicitly calling to_fs

* Fix deprecation warning by explicitly calling to_fs

* Fix deprecation warning by explicitly calling to_fs

* Swap to will paginate successor for bootstrap

* Update app/views/members/show.html.haml

* Update app/views/plantings/index.rss.haml

* Update .env

* Update .devcontainer/.env

* Fix spec

* Update spec

* Fix spec

* Pin to 2.4.22

* 3 space indent

* Regenerate

* Update rubocop
2024-07-13 14:45:33 +09:30
Daniel O'Connor 7d63234841 Upgrade to bootstrap 5 (#3605)
* Upgrade boostrap

* Remove deprecated bootstrap toggles

* Migrate other details

* Avoid accidentally including bootstrap twice

* Avoid accidentally including bootstrap twice

* Avoid accidentally including bootstrap twice

* Fix spec

* Fix spec, where the size of the screen has gone to a partial breakpoint/you can't click on your own name in tablet view

* Fix spec

* Cleanup

* Cleanup
2024-03-10 11:49:22 +10:30
Daniel O'Connor 008667515e Swap from ugifier to terser 2024-01-27 01:28:55 +00:00
Daniel O'Connor 8249edd966 Add msgpack due to rails requesting it 2024-01-27 00:14:21 +00:00
Daniel O'Connor f338274611 Rails 7.1 (#3590)
* Rails 7.1

* Update application.rb

* Bump searchkick

* Bump to 7.0.0

* Fix

* Fix crop search

* Sync translation

* Drop required from form group

* Loosen specs further

* Fix Gemfile

* Update seeds_request_spec.rb

* Update test.rb

* Rename
2024-01-27 10:06:47 +10:30
Daniel O'Connor ad4a6e17e2 iCalendar feed of plantings (#3588)
* Register mime type

* Add rough first pass

* Index predictions, and add links

* Trailing space

* Fix implementation

* Fix names, make public

* Fix names, make public

* Fix

* Fix tyyos

* Add date

* If there are no predictions, keep growing

* Add a todo

* Fix factories

* Specs
2024-01-27 00:38:33 +10:30
Daniel O'Connor 254fd156f0 Remove faraday_middleware (#3604)
* Remove faraday_middleware

* Remove outdated migration

* Remove outdated migration
2024-01-27 00:10:17 +10:30
Daniel O'Connor b711618027 Unpin active_median (#3603)
* Unpin active_median

* Remove outdated migration

* Remove outdated migration
2024-01-26 23:47:59 +10:30
Daniel O'Connor 140fe7a087 Bump searchkick, elasticsearch (#3602)
* Bump searchkick

* Bump to 7.0.0

* Fix

* Fix crop search
2024-01-26 23:01:39 +10:30
Daniel O'Connor 12ff09ad51 Add Accessibility assertions to rspec, replacing accessbility-lint + fixes (#3573)
* Add dep

* Add tests around accessibility

* Add examples in a few places

* Try to fix screenshots

* Remove redundant role

* Adjust rules, colors, etc so tests pass

* Update app/assets/stylesheets/overrides.scss

* Wrap in label

* Omit rule, which is failing with a false positive

* Update index.haml

* Update _blurb.html.haml
2024-01-22 22:09:27 +10:30
Daniel O'Connor 50b6708c7f Update jquery-ui-rails 2024-01-21 13:42:48 +00:00
Daniel O'ConnorandCesy 8546794311 Recaptcha (#3586)
* add recaptcha on register view

Update new.html.haml to add it

* Update Gemfile to add recaptcha

* Update env-example to show recaptcha

* More view corrections for recaptcha

* Update registrations_controller.rb to add recaptcha

* Update env-example with test config

* Recaptcha help text

* Fix trailing spaces

* Fix trailing space

* Add Recaptcha to gemfile.lock

* Fixing Gemfile.lock space

* Typo on comments in view

* Update app/views/devise/registrations/new.html.haml

* Fix signup

---------

Co-authored-by: Cesy <cesy.avon@gmail.com>
2024-01-21 15:20:03 +10:30
Daniel O'Connor 1f0cfa9b6c Add GBIF to our scientific names, so that our crops can associate creative commons photos (#3559)
* Add GBIF cient

* Add lookup

* Add autocomplete for GBIF lookup

* Add extra detail to scientific names

* Autocomplete

* Add routes

* Rmeove mapping

* Add autocomplete

* Update GBIF data on save

* db/schema

* Style

* Extract service

* Add concern

* Add concern

* Save photos

* Initial coverage

* Coverage

* Add coverage

* Shut up, codeclimate

* Shut up, codeclimate

* Unused

* Shut up, codeclimate

* Apply suggestions from code review

* Remove localhost

* Fix rubocop

* Fix rubocop

* Add UI links

* Add rake

* Indent

* Update Gemfile.lock

* Update lib/tasks/gbif.rake

* Update app/views/crops/_scientific_names.html.haml

* Rubocop

* Expand edit photo form

* Fix error

* Add model validations

* Skip photos without backlinks

* Fix tests

* Add photo words

* Allow blank

* Rubocop and handle invalid legacy data

* Apply suggestions from code review

* Update lib/tasks/gbif.rake
2024-01-21 13:22:25 +10:30
Daniel O'Connor cab4c2dfca Drop webdrivers for selenium 4.11+ 2024-01-17 12:35:08 +00:00
Daniel O'Connor 5a5eddc1dd Swap to will paginate successor for bootstrap 2023-08-20 02:36:05 +00:00
Daniel O'Connor 2d332be0d3 Remove js-routes 2023-08-16 10:01:47 +01:00
Daniel O'Connor 59d8d27284 Upgrade to js-routes 2. Put all js routes into a global namespace. 2023-08-16 10:01:47 +01:00