diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..c17efd8 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,29 @@ +name: Build + +on: + push: + branches: [master] + pull_request: + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + timeout-minutes: 10 + env: + JEKYLL_ENV: production + JEKYLL_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v7 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.3' + bundler: '2.6.9' + bundler-cache: true + - run: bundle exec jekyll build --strict_front_matter diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8a2b83c..d8b01fb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,7 @@ Contributing ============ -The https://mongoid.github.io site is work of [many contributors](https://github.com/mongoid/mongoid.github.io/graphs/contributors). You're encouraged to submit [pull requests](https://github.com/mongoid/mongoid.github.io/pulls) and [propose topics](https://github.com/mongoid/mongoid.github.io/issues). When in doubt, ask a question in the [MongoDB User Group](https://groups.google.com/group/mongodb-user). +The https://mongoid.github.io site is work of [many contributors](https://github.com/mongoid/mongoid.github.io/graphs/contributors). You're encouraged to submit [pull requests](https://github.com/mongoid/mongoid.github.io/pulls) and [propose topics](https://github.com/mongoid/mongoid.github.io/issues). Ask Mongoid usage questions in the [MongoDB Community Forums](https://www.mongodb.com/community/forums/tag/mongoid-odm). #### Fork the Project @@ -25,10 +25,11 @@ git checkout -b my-feature-branch #### Bundle Install and Run Jekyll -Ensure that you can build the project and run tests. +Use Ruby 3.3 or newer and the committed GitHub Pages-compatible bundle. Ensure that the production site builds before submitting a pull request. ``` bundle install +JEKYLL_ENV=production bundle exec jekyll build --strict_front_matter bundle exec jekyll serve ``` @@ -38,6 +39,14 @@ Navigate to http://localhost:4000. Create markdown content. +#### Maintain the Homepage + +Update release numbers in `index.md` using [RubyGems](https://rubygems.org/gems/mongoid/versions) and [upstream releases](https://github.com/mongodb/mongoid/releases), and refresh the checked date. Distinguish the current major from the previous major without implying that they have the same support policy. Link to MongoDB's official documentation and compatibility tables rather than duplicating a compatibility matrix here. + +List only non-archived projects with recent substantive default-branch maintenance or an active modernization pull request. Check the actual code and maintenance activity; a recent repository `updated_at` or incidental branch push alone is not sufficient. Keep descriptions concise, use canonical repository links, and let each project document its supported versions. Remove dormant projects from the homepage without deleting their repositories or historical documentation. + +Preserve existing paths under `old/` and keep those references clearly labeled as historical. Keep Markdown paragraphs on one line. + #### Commit Changes Make sure git knows your name and email address: @@ -71,15 +80,10 @@ If you've been working on a change for a while, rebase with upstream/master. ``` git fetch upstream git rebase upstream/master -git push origin my-feature-branch -f +git push --force-with-lease origin my-feature-branch ``` -Amend your previous commit and force push the changes. - -``` -git commit --amend -git push origin my-feature-branch -f -``` +Keep the pull request focused and never force-push the default branch. #### Be Patient diff --git a/Gemfile b/Gemfile index 53aaf91..60c43b4 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,4 @@ source 'https://rubygems.org' -gem 'github-pages' - +gem 'github-pages', '~> 232' +gem 'webrick', '~> 1.8' diff --git a/Gemfile.lock b/Gemfile.lock index 1fcc426..f240353 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,47 +1,67 @@ GEM remote: https://rubygems.org/ specs: - activesupport (6.0.6.1) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - zeitwerk (~> 2.2, >= 2.2.2) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) + activesupport (8.1.4) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + json + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) + addressable (2.9.0) + public_suffix (>= 2.0.2, < 8.0) + base64 (0.3.0) + bigdecimal (4.1.3) coffee-script (2.4.1) coffee-script-source execjs - coffee-script-source (1.11.1) + coffee-script-source (1.12.2) colorator (1.1.0) - commonmarker (0.23.10) - concurrent-ruby (1.2.0) - dnsruby (1.61.9) - simpleidn (~> 0.1) + commonmarker (0.23.12) + concurrent-ruby (1.3.8) + connection_pool (3.0.2) + csv (3.3.7) + dnsruby (1.74.0) + base64 (>= 0.2) + logger (~> 1.6) + simpleidn (~> 0.2.1) + drb (2.2.3) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) - ethon (0.15.0) + ethon (0.19.0) ffi (>= 1.15.0) + logger eventmachine (1.2.7) - execjs (2.8.1) - faraday (2.5.2) - faraday-net_http (>= 2.0, < 3.1) - ruby2_keywords (>= 0.0.4) - faraday-net_http (3.0.0) - ffi (1.15.5) + execjs (2.10.2) + json (>= 2) + faraday (2.15.1) + faraday-net_http (>= 2.0, < 3.6) + json + logger + faraday-net_http (3.5.0) + net-http (~> 0.5) + ffi (1.17.4) + ffi (1.17.4-arm64-darwin) + ffi (1.17.4-x86_64-linux-gnu) forwardable-extended (2.6.0) - gemoji (3.0.1) - github-pages (227) - github-pages-health-check (= 1.17.9) - jekyll (= 3.9.2) - jekyll-avatar (= 0.7.0) - jekyll-coffeescript (= 1.1.1) - jekyll-commonmark-ghpages (= 0.2.0) - jekyll-default-layout (= 0.1.4) - jekyll-feed (= 0.15.1) + gemoji (4.1.0) + github-pages (232) + github-pages-health-check (= 1.18.2) + jekyll (= 3.10.0) + jekyll-avatar (= 0.8.0) + jekyll-coffeescript (= 1.2.2) + jekyll-commonmark-ghpages (= 0.5.1) + jekyll-default-layout (= 0.1.5) + jekyll-feed (= 0.17.0) jekyll-gist (= 1.5.0) - jekyll-github-metadata (= 2.13.0) + jekyll-github-metadata (= 2.16.1) jekyll-include-cache (= 0.2.1) jekyll-mentions (= 1.6.0) jekyll-optional-front-matter (= 0.3.2) @@ -68,32 +88,34 @@ GEM jekyll-theme-tactile (= 0.2.0) jekyll-theme-time-machine (= 0.2.0) jekyll-titles-from-headings (= 0.5.3) - jemoji (= 0.12.0) - kramdown (= 2.3.2) + jemoji (= 0.13.0) + kramdown (= 2.4.0) kramdown-parser-gfm (= 1.1.0) - liquid (= 4.0.3) + liquid (= 4.0.4) mercenary (~> 0.3) minima (= 2.5.1) - nokogiri (>= 1.13.6, < 2.0) - rouge (= 3.26.0) + nokogiri (>= 1.16.2, < 2.0) + rouge (= 3.30.0) terminal-table (~> 1.4) - github-pages-health-check (1.17.9) + webrick (~> 1.8) + github-pages-health-check (1.18.2) addressable (~> 2.3) dnsruby (~> 1.60) - octokit (~> 4.0) - public_suffix (>= 3.0, < 5.0) + octokit (>= 4, < 8) + public_suffix (>= 3.0, < 6.0) typhoeus (~> 1.3) - html-pipeline (2.14.2) + html-pipeline (2.14.3) activesupport (>= 2) nokogiri (>= 1.4) - http_parser.rb (0.8.0) - i18n (0.9.5) + http_parser.rb (0.8.1) + i18n (1.15.2) concurrent-ruby (~> 1.0) - jekyll (3.9.2) + jekyll (3.10.0) addressable (~> 2.4) colorator (~> 1.0) + csv (~> 3.0) em-websocket (~> 0.5) - i18n (~> 0.7) + i18n (>= 0.7, < 2) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 2.0) kramdown (>= 1.17, < 3) @@ -102,27 +124,28 @@ GEM pathutil (~> 0.9) rouge (>= 1.7, < 4) safe_yaml (~> 1.0) - jekyll-avatar (0.7.0) + webrick (>= 1.0) + jekyll-avatar (0.8.0) jekyll (>= 3.0, < 5.0) - jekyll-coffeescript (1.1.1) + jekyll-coffeescript (1.2.2) coffee-script (~> 2.2) - coffee-script-source (~> 1.11.1) + coffee-script-source (~> 1.12) jekyll-commonmark (1.4.0) commonmarker (~> 0.22) - jekyll-commonmark-ghpages (0.2.0) - commonmarker (~> 0.23.4) - jekyll (~> 3.9.0) + jekyll-commonmark-ghpages (0.5.1) + commonmarker (>= 0.23.7, < 1.1.0) + jekyll (>= 3.9, < 4.0) jekyll-commonmark (~> 1.4.0) - rouge (>= 2.0, < 4.0) - jekyll-default-layout (0.1.4) - jekyll (~> 3.0) - jekyll-feed (0.15.1) + rouge (>= 2.0, < 5.0) + jekyll-default-layout (0.1.5) + jekyll (>= 3.0, < 5.0) + jekyll-feed (0.17.0) jekyll (>= 3.7, < 5.0) jekyll-gist (1.5.0) octokit (~> 4.2) - jekyll-github-metadata (2.13.0) + jekyll-github-metadata (2.16.1) jekyll (>= 3.4, < 5.0) - octokit (~> 4.0, != 4.4.0) + octokit (>= 4, < 7, != 4.4.0) jekyll-include-cache (0.2.1) jekyll (>= 3.7, < 5.0) jekyll-mentions (1.6.0) @@ -193,73 +216,86 @@ GEM jekyll (>= 3.3, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) - jemoji (0.12.0) - gemoji (~> 3.0) + jemoji (0.13.0) + gemoji (>= 3, < 5) html-pipeline (~> 2.2) jekyll (>= 3.0, < 5.0) - kramdown (2.3.2) + json (3.1.0) + kramdown (2.4.0) rexml kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) - liquid (4.0.3) - listen (3.7.1) + liquid (4.0.4) + listen (3.10.1) + logger rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) + logger (1.7.0) mercenary (0.3.6) - mini_portile2 (2.8.6) + mini_portile2 (2.8.9) minima (2.5.1) jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.17.0) - nokogiri (1.16.5) + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) + net-http (0.10.0) + net-protocol (>= 0.3.0) + uri (>= 0.11.1) + net-protocol (0.4.0) + timeout + nokogiri (1.19.4) mini_portile2 (~> 2.8.2) racc (~> 1.4) + nokogiri (1.19.4-arm64-darwin) + racc (~> 1.4) + nokogiri (1.19.4-x86_64-linux-gnu) + racc (~> 1.4) octokit (4.25.1) faraday (>= 1, < 3) sawyer (~> 0.9) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (4.0.7) - racc (1.7.3) - rb-fsevent (0.11.1) - rb-inotify (0.10.1) + prism (1.9.0) + public_suffix (5.1.1) + racc (1.8.1) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) ffi (~> 1.0) - rexml (3.2.8) - strscan (>= 3.0.9) - rouge (3.26.0) - ruby2_keywords (0.0.5) - rubyzip (2.3.2) + rexml (3.4.4) + rouge (3.30.0) + rubyzip (2.4.1) safe_yaml (1.0.5) sass (3.7.4) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.9.2) + sawyer (0.9.3) addressable (>= 2.3.5) faraday (>= 0.17.3, < 3) - simpleidn (0.2.1) - unf (~> 0.1.4) - strscan (3.1.0) + securerandom (0.4.1) + simpleidn (0.2.3) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) - thread_safe (0.3.6) - typhoeus (1.4.0) - ethon (>= 0.9.0) - tzinfo (1.2.11) - thread_safe (~> 0.1) - unf (0.1.4) - unf_ext - unf_ext (0.0.8.2) + timeout (0.6.1) + typhoeus (1.7.0) + ethon (>= 0.19.0, < 0.20.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) unicode-display_width (1.8.0) - zeitwerk (2.6.6) + uri (1.1.2) + webrick (1.9.2) PLATFORMS + arm64-darwin-23 ruby + x86_64-linux DEPENDENCIES - github-pages + github-pages (~> 232) + webrick (~> 1.8) BUNDLED WITH - 1.17.2 + 2.6.9 diff --git a/README.md b/README.md index 1b9bbb1..0bedbbb 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,17 @@  -Mongoid is the officially supported ODM (Object-Document-Mapper) framework for MongoDB in Ruby. The Github mongoid organization helps community projects around the Mongoid ODM. +Source for [mongoid.github.io](https://mongoid.github.io), the independent Mongoid community website. [Mongoid itself](https://github.com/mongodb/mongoid) is maintained by MongoDB; this site highlights maintained community libraries and links to the official documentation. -Please contribute to this site, see [CONTRIBUTING](CONTRIBUTING.md). +The homepage lists the latest releases in the current and previous major lines and a curated directory of active projects. Historical documentation under `old/` is retained to preserve existing URLs. + +Use Ruby 3.3 or newer: + +```sh +bundle install +bundle exec jekyll build --strict_front_matter +bundle exec jekyll serve +``` + +Open [localhost:4000](http://localhost:4000). The bundle stays compatible with GitHub Pages' branch-based Jekyll deployment, and pull requests run a production build. + +See [CONTRIBUTING](CONTRIBUTING.md) for content maintenance and contribution instructions. diff --git a/_config.yml b/_config.yml index d9bdde5..9fd2efe 100644 --- a/_config.yml +++ b/_config.yml @@ -1,20 +1,20 @@ title: - long: Mongoid | Mongoid is the officially supported ODM (Object-Document-Mapper) framework for MongoDB in Ruby. + long: Mongoid Community | Libraries and tools for Mongoid short: Mongoid locale: en_US url: https://mongoid.github.io sass: sass_dir: _sass style: compressed -gems: +plugins: - jekyll-sitemap kramdown: input: GFM owner: name: Mongoid Community avatar: mongoid.png - info: - email: mongodb-user@googlegroups.com + info: Community-maintained libraries and tools for Mongoid. + email: disqus-shortname: twitter: facebook: diff --git a/_includes/_navigation.html b/_includes/_navigation.html index 7708930..f81e50a 100644 --- a/_includes/_navigation.html +++ b/_includes/_navigation.html @@ -6,5 +6,4 @@