diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..f1c529a9 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,14 @@ +# Documentation for all configuration options: +# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + + - package-ecosystem: bundler + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..ace64de2 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,52 @@ +name: CI +env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: true + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + build: + name: Build Site + runs-on: macOS-latest + steps: + - name: git checkout + uses: actions/checkout@v2.4.0 + + - name: versions + run: | + ruby --version + gem --version + bundler --version + + - name: cache + uses: actions/cache@v3.0.2 + with: + path: vendor/bundle + key: ${{ runner.os }}-gem-${{ hashFiles('**/Gemfile.lock') }} + restore-keys: | + ${{ runner.os }}-gem- + + - name: bundle install + run: | + gem uninstall jekyll-commonmark-ghpages + bundle config path vendor/bundle + bundle install --without=documentation --jobs 4 --retry 3 + echo "::add-path::/Users/runner/Library/Python/2.7/bin" + + - name: jekyll build + run: bundle exec jekyll build + + - name: danger + # The API token required for Danger to post comments is not available in fork PRs, + # thus disabling Danger for such PRs. See this post for more details: + # https://github.community/t/make-secrets-available-to-builds-of-forks/16166 + if: github.event.pull_request.head.repo.full_name == github.repository + env: + DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }} + run: bundle exec danger diff --git a/.gitignore b/.gitignore index 3da9b95d..1fc4b930 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .DS_Store _site/ .jekyll-metadata +.Ulysses-Settings.plist diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 00000000..fd2a0186 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +3.1.0 diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 525978c2..00000000 --- a/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: ruby -sudo: false -cache: bundler -rvm: 2.2.5 - -script: - - bundle exec jekyll build --future --drafts - - bundle exec danger diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index de206d7a..00000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,46 +0,0 @@ -# *Swift Weekly Brief* Contributor Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team leads [Bas](https://twitter.com/BasThomas) or [Jesse](https://www.jessesquires.com/contact/). The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]. - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 23efa294..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,160 +0,0 @@ -# Contributing to *Swift Weekly Brief* - -*Contributions are welcome and encouraged!* - -Please review and abide by [our code of conduct](https://github.com/SwiftWeekly/swiftweekly.github.io/blob/master/CODE_OF_CONDUCT.md). - -You should have a good understanding of how [Jekyll](http://jekyllrb.com) and [GitHub-Pages](https://pages.github.com) work — or be willing to learn. :smile: We are happy to help you with any questions, just ask. - -**Suggestions:** Have something you want to share in the newsletter? Please find [the current issue notes](https://github.com/SwiftWeekly/swiftweekly.github.io/issues?q=is%3Aissue+is%3Aopen+label%3A%22current+issue%22) and add a comment. Or you can [open an issue][issueLink] or [submit a pull request][prLink] to the [current draft](https://github.com/SwiftWeekly/swiftweekly.github.io/tree/master/_drafts) with a link and description. - -**Fixes:** Spelling, grammar, or code. Please [open an issue][issueLink] or [submit a pull request][prLink]! - -## ⚙️ Setup and process - -1. Add yourself to [`_data/authors.yml`](https://github.com/SwiftWeekly/swiftweekly.github.io/blob/master/_data/authors.yml), if you haven't already. Please provide: - - A username to reference for the site - - Your name - - GitHub username - - Twitter username -1. Run the [`new_draft.sh`](https://github.com/SwiftWeekly/swiftweekly.github.io/blob/master/new_draft.sh) script to generate an issue template in `_drafts/`. See the example below. -1. Open an issue on GitHub. Set the title to the newsletter issue number and date. -**Example:** `[100] Issue #100 - Jan 04, 2018` -1. Assign it to yourself. -1. Add the [`current issue` and `full issue notes`](https://github.com/SwiftWeekly/swiftweekly.github.io/issues?utf8=✓&q=is%3Aissue+label%3A%22current+issue%22+label%3A%22full+issue+notes%22+) labels. -1. We use this throughout the week to collect notes and make it easy for external contributors to contribute content. We also use this issue to collaborate with the other [Swift Weekly writers](https://swiftweekly.github.io/authors/) and troubleshoot any problems that come up. -1. Write the issue in `_drafts/` throughout the week. We recommend writing a little each day to make it easier. -1. For style and content, see the guide below. Also, follow the example set by previous issues. -1. **For code snippets, use jekyll highlight blocks:** -```jekyll -{% highlight swift %} - -// swift code here - -{% endhighlight %} -``` - -> 💡 **Note:** See the handy tips below! - -### Generating a draft - -Example: - -```bash -# usage: ./new_draft.sh - -$ ./new_draft.sh 2016-04-21 19 jsq - -# creates _drafts/2016-04-21-issue-19.md -``` - -### Generating a GitHub issue - -To generate a GitHub access token, see the [GitHub docs](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/). - -Example: - -```bash -# usage: export SWIFTWEEKLY_TOKEN= - -$ export SWIFTWEEKLY_TOKEN=access_token - -# usage: ruby ./github_issue_generator.rb --number= --date= - -$ ruby ./github_issue_generator.rb --number=1 --date='December 6, 2015' - -# more options and help: - -$ ruby ./github_issue_generator.rb --help -``` - -### Preview the site locally, with drafts - -```bash -$ bundle exec jekyll build --future --drafts - -# -- or -- - -$ bundle exec jekyll serve --future --drafts --watch -``` - -## 📝 Writing style guide - -We encourage all writes to use their own voice and express their own personality in their writing. This is what makes a great issue. - -*Some guidelines on writing style:* - -* All content must align with [Our Standards](https://github.com/SwiftWeekly/swiftweekly.github.io/blob/master/CODE_OF_CONDUCT.md#our-standards), outlined in the Code of Conduct. Language must be welcoming, inclusive, respectful, etc. - -* Maintain an overall positive tone. We want to avoid being overly negative. However, this *does not* mean we should not be critical. Constructive criticism is valid and should be presented in non-aggressive way. - -* Use simple past tense. This is simpler and easier to read, flows better, and is particularly easier for ESL readers. **Example:** - * Do this: *"Chris Lattner wrote a manifesto."* ✅ - * Not this: *"A manifesto was written by Chris Lattner."* ❌ - -* Avoid jargon and abbreviations when possible. - * **Example:** use *pull request* rather than *PR* - * **Example:** write *for example* rather than *e.g.* - -* Avoid contractions if possible. Again, this is easier to read, especially for ESL readers. - * **Example:** use *do not* rather than *don't*. - -* For the *"Commits and pull requests"* section use the format: `PERSON did ACTION`. - * **Example:** *"Chris Lattner opened a pull request for a prototype of async/await."* - -* For "Proposals in review" use the format: `SE-NNNN: TITLE by AUTHOR is under review`. - * **Example:** [SE-0185](https://github.com/apple/swift-evolution/blob/master/proposals/0185-synthesize-equatable-hashable.md): *Synthesizing Equatable and Hashable conformance* by Tony Allevato is [under review](https://lists.swift.org/pipermail/swift-evolution-announce/2017-August/000397.html). - -* For "Accepted proposals", "Rejected Proposals", etc. use the format: `SE-NNNN: TITLE was STATUS`. - * **Example:** [SE-0150](https://github.com/apple/swift-evolution/blob/master/proposals/0150-package-manager-branch-support.md): Package Manager Support for branches [was accepted](https://lists.swift.org/pipermail/swift-evolution-announce/2017-February/000315.html). - -## 🕵️‍♀️ Evaluating [Swift Forum](https://swift.org/community/#forums) content - -Not all forum discussions are important and valuable enough to be listed in the newsletter. There can be a lot of noise and bikeshedding that simply is not relevant to readers — or ideas are not solid enough. Try to avoid these and focus on "big picture" ideas and discussions pertinent to current or future proposals. - -Some good indications on whether or not a discussion is worth including: -* There is a lot of activity and replies. -* The Core Team or broader Swift team has responded positively. -* The Core Team or broader Swift team is highly engaged in the discussion. - -> 💡 **Note:** This does not mean that discussions without these characteristics are not worth mentioning. These are simply a few guidelines. - -# 📰 Publishing an issue - -> 💡 **Note:** We publish *every other Thursday*. - -New issues should be pushed to `master` **before noon** Pacific Time, preferably around 10 or 11 a.m. if possible. Pushing early allows us to catch and fix any last minute errors. If there are any problems, contact [Bas](https://twitter.com/BasThomas) or [Jesse](https://www.jessesquires.com/contact/). - -1. When ready to publish, move the `.md` file from `_drafts/` to the `_posts/` directory. -2. Run `jekyll build` on your local copy to preview. -3. Make sure everything looks good. :ok_hand: -4. Submit a [pull request][prLink] or push to `master`. :tada: - -### ~~Emails~~ - -~~Emails are automatically sent via Mailchimp's [RSS-to-Email](https://mailchimp.com/features/rss-to-email/) feature. **Publishing too late (*at or after* noon PST) will prevent emails from being sent.** If emails fail to send on Thursday at noon PST, Mailchimp will retry on Friday at noon PST.~~ - -> ⚠️ **Warning:** we currently are not sending emails. This section is here for historical reasons. - -### Tweets - -Tweets from [@swiftlybrief](https://twitter.com/swiftlybrief) are automated via [IFTTT](https://ifttt.com). - -## 🎢 Continuous integration - -We use [travis-ci](https://travis-ci.org/SwiftWeekly/swiftweekly.github.io), [danger](http://danger.systems), and [proselint](http://proselint.com) (via [danger-prose](https://github.com/dbgrandi/danger-prose)). This ensures: - -- We're always pushing valid markdown and `jekyll` can build the site. -- We write elegant prose — no grammar/spelling mistakes, and no offensive or unwelcoming language. See the [`Dangerfile`](https://github.com/SwiftWeekly/swiftweekly.github.io/blob/master/Dangerfile) for more details. - -## 💡Tips - -- Watch all of the main [Apple repositories](https://github.com/apple). -- Follow the prominent [contributors](https://github.com/orgs/apple/people) on GitHub and Twitter. -- Monitor and follow discussions on the [Swift Forums](https://forums.swift.org), and configure your notification settings. -- Starter tasks: check [this filter](https://bugs.swift.org/issues/?filter=10451). -- When in doubt, refer to previous issues for examples. -- Keep a draft running throughout the week, add a little bit of content each day. - -[issueLink]:https://github.com/SwiftWeekly/swiftweekly.github.io/issues/new -[prLink]:https://github.com/SwiftWeekly/swiftweekly.github.io/compare diff --git a/Dangerfile b/Dangerfile index 89bcc649..33c79a0a 100644 --- a/Dangerfile +++ b/Dangerfile @@ -5,7 +5,7 @@ is_editing_draft = !(git.modified_files.grep(/_drafts/).empty?) if is_editing_draft || is_adding_draft editing_message = <<-EOS Looks like you're editing a draft! 🤓 -**Don't forget** to review [our style guide](https://github.com/SwiftWeekly/swiftweekly.github.io/blob/master/CONTRIBUTING.md#-writing-style-guide) and [publish the issue](https://github.com/SwiftWeekly/swiftweekly.github.io/blob/master/CONTRIBUTING.md#-publishing-an-issue) when you're finished. +**Don't forget** to review [our style guide](https://github.com/SwiftWeekly/swiftweekly.github.io/blob/main/CONTRIBUTING.md#-writing-style-guide) and [publish the issue](https://github.com/SwiftWeekly/swiftweekly.github.io/blob/main/CONTRIBUTING.md#-publishing-an-issue) when you're finished. EOS warn(editing_message) end @@ -16,7 +16,7 @@ if is_publishing_issue publish_message = <<-EOS Looks like you're publishing a new issue! 🎉 **Don't forget to:** -1. Review [our style guide](https://github.com/SwiftWeekly/swiftweekly.github.io/blob/master/CONTRIBUTING.md#-writing-style-guide) before merging +1. Review [our style guide](https://github.com/SwiftWeekly/swiftweekly.github.io/blob/main/CONTRIBUTING.md#-writing-style-guide) before merging 2. After you merge, close the GitHub issue notes for this newsletter issue 3. Open the next GitHub issue, add the correct labels, assign it to the next writer 4. Run the `new_draft.sh` script and push the next draft @@ -25,6 +25,9 @@ Looks like you're publishing a new issue! 🎉 end # Check spelling and prose +prose.language = "en-us" +prose.ignore_acronyms = true +prose.ignore_numbers = true prose.ignored_words = [ "Swift", "iOS", "macOS", "watchOS", "tvOS", "iPhone", "iPad", "nonnull", "nullable", "nullability", "corelibs-foundation", "corelibs-libdispatch", "stdlib", "GCD", "SwiftPM", diff --git a/Gemfile b/Gemfile index b8263355..c8457296 100644 --- a/Gemfile +++ b/Gemfile @@ -1,9 +1,16 @@ source 'https://rubygems.org' -gem 'github-pages', '~> 172', group: :jekyll_plugins +gem 'github-pages' +gem 'jekyll-commonmark-ghpages' +gem 'jekyll-paginate' gem 'jekyll-sitemap' +gem 'jekyll' + gem 'danger' gem 'danger-prose' + gem 'claide' gem 'octokit' gem 'colorize' + +gem "webrick", "~> 1.7" diff --git a/Gemfile.lock b/Gemfile.lock index 578fa422..ffe448b9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,14 +1,14 @@ GEM remote: https://rubygems.org/ specs: - activesupport (4.2.9) - i18n (~> 0.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - addressable (2.5.2) - public_suffix (>= 2.0.2, < 4.0) - claide (1.0.2) + activesupport (7.0.4.3) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) + claide (1.1.0) claide-plugins (0.9.2) cork nap @@ -20,254 +20,311 @@ GEM colorator (1.1.0) colored2 (3.1.2) colorize (0.8.1) - commonmarker (0.17.7.1) - ruby-enum (~> 0.5) - concurrent-ruby (1.0.5) + commonmarker (0.23.8) + concurrent-ruby (1.2.2) cork (0.3.0) colored2 (~> 3.1) - danger (5.5.6) + danger (8.6.1) claide (~> 1.0) claide-plugins (>= 0.9.2) colored2 (~> 3.1) cork (~> 0.1) - faraday (~> 0.9) - faraday-http-cache (~> 1.0) - git (~> 1) - kramdown (~> 1.5) + faraday (>= 0.9.0, < 2.0) + faraday-http-cache (~> 2.0) + git (~> 1.7) + kramdown (~> 2.3) + kramdown-parser-gfm (~> 1.0) no_proxy_fix octokit (~> 4.7) - terminal-table (~> 1) - danger-prose (2.0.5) + terminal-table (>= 1, < 4) + danger-prose (2.0.7) danger - ethon (0.11.0) - ffi (>= 1.3.0) - execjs (2.7.0) - faraday (0.13.1) - multipart-post (>= 1.2, < 3) - faraday-http-cache (1.3.1) - faraday (~> 0.8) - ffi (1.9.18) + dnsruby (1.61.9) + simpleidn (~> 0.1) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + ethon (0.16.0) + ffi (>= 1.15.0) + eventmachine (1.2.7) + execjs (2.8.1) + faraday (1.10.3) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-http-cache (2.4.1) + faraday (>= 0.8) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.4) + multipart-post (~> 2) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + ffi (1.15.5) forwardable-extended (2.6.0) - gemoji (3.0.0) - git (1.3.0) - github-pages (172) - activesupport (= 4.2.9) - github-pages-health-check (= 1.3.5) - jekyll (= 3.6.2) - jekyll-avatar (= 0.5.0) - jekyll-coffeescript (= 1.0.2) - jekyll-commonmark-ghpages (= 0.1.3) + gemoji (3.0.1) + git (1.18.0) + addressable (~> 2.8) + rchardet (~> 1.8) + github-pages (228) + github-pages-health-check (= 1.17.9) + jekyll (= 3.9.3) + jekyll-avatar (= 0.7.0) + jekyll-coffeescript (= 1.1.1) + jekyll-commonmark-ghpages (= 0.4.0) jekyll-default-layout (= 0.1.4) - jekyll-feed (= 0.9.2) - jekyll-gist (= 1.4.1) - jekyll-github-metadata (= 2.9.3) - jekyll-mentions (= 1.2.0) - jekyll-optional-front-matter (= 0.3.0) + jekyll-feed (= 0.15.1) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.13.0) + jekyll-include-cache (= 0.2.1) + jekyll-mentions (= 1.6.0) + jekyll-optional-front-matter (= 0.3.2) jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.2.0) - jekyll-redirect-from (= 0.12.1) - jekyll-relative-links (= 0.5.2) - jekyll-remote-theme (= 0.2.3) - jekyll-sass-converter (= 1.5.0) - jekyll-seo-tag (= 2.3.0) - jekyll-sitemap (= 1.1.1) - jekyll-swiss (= 0.4.0) - jekyll-theme-architect (= 0.1.0) - jekyll-theme-cayman (= 0.1.0) - jekyll-theme-dinky (= 0.1.0) - jekyll-theme-hacker (= 0.1.0) - jekyll-theme-leap-day (= 0.1.0) - jekyll-theme-merlot (= 0.1.0) - jekyll-theme-midnight (= 0.1.0) - jekyll-theme-minimal (= 0.1.0) - jekyll-theme-modernist (= 0.1.0) - jekyll-theme-primer (= 0.5.2) - jekyll-theme-slate (= 0.1.0) - jekyll-theme-tactile (= 0.1.0) - jekyll-theme-time-machine (= 0.1.0) - jekyll-titles-from-headings (= 0.5.0) - jemoji (= 0.8.1) - kramdown (= 1.14.0) - liquid (= 4.0.0) - listen (= 3.0.6) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.16.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.3) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.8.0) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) + jekyll-theme-architect (= 0.2.0) + jekyll-theme-cayman (= 0.2.0) + jekyll-theme-dinky (= 0.2.0) + jekyll-theme-hacker (= 0.2.0) + jekyll-theme-leap-day (= 0.2.0) + jekyll-theme-merlot (= 0.2.0) + jekyll-theme-midnight (= 0.2.0) + jekyll-theme-minimal (= 0.2.0) + jekyll-theme-modernist (= 0.2.0) + jekyll-theme-primer (= 0.6.0) + jekyll-theme-slate (= 0.2.0) + 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) + kramdown-parser-gfm (= 1.1.0) + liquid (= 4.0.4) mercenary (~> 0.3) - minima (= 2.1.1) - rouge (= 2.2.1) + minima (= 2.5.1) + nokogiri (>= 1.13.6, < 2.0) + rouge (= 3.26.0) terminal-table (~> 1.4) - github-pages-health-check (1.3.5) + github-pages-health-check (1.17.9) addressable (~> 2.3) - net-dns (~> 0.8) + dnsruby (~> 1.60) octokit (~> 4.0) - public_suffix (~> 2.0) - typhoeus (~> 0.7) - html-pipeline (2.7.1) + public_suffix (>= 3.0, < 5.0) + typhoeus (~> 1.3) + html-pipeline (2.14.3) activesupport (>= 2) nokogiri (>= 1.4) - i18n (0.9.1) + http_parser.rb (0.8.0) + i18n (1.12.0) concurrent-ruby (~> 1.0) - jekyll (3.6.2) + jekyll (3.9.3) addressable (~> 2.4) colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (>= 0.7, < 2) jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 1.1) - kramdown (~> 1.14) + jekyll-watch (~> 2.0) + kramdown (>= 1.17, < 3) liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) - rouge (>= 1.7, < 3) + rouge (>= 1.7, < 4) safe_yaml (~> 1.0) - jekyll-avatar (0.5.0) - jekyll (~> 3.0) - jekyll-coffeescript (1.0.2) + jekyll-avatar (0.7.0) + jekyll (>= 3.0, < 5.0) + jekyll-coffeescript (1.1.1) coffee-script (~> 2.2) coffee-script-source (~> 1.11.1) - jekyll-commonmark (1.1.0) - commonmarker (~> 0.14) - jekyll (>= 3.0, < 4.0) - jekyll-commonmark-ghpages (0.1.3) - commonmarker (~> 0.17.6) - jekyll-commonmark (~> 1) - rouge (~> 2) + jekyll-commonmark (1.4.0) + commonmarker (~> 0.22) + jekyll-commonmark-ghpages (0.4.0) + commonmarker (~> 0.23.7) + jekyll (~> 3.9.0) + jekyll-commonmark (~> 1.4.0) + rouge (>= 2.0, < 5.0) jekyll-default-layout (0.1.4) jekyll (~> 3.0) - jekyll-feed (0.9.2) - jekyll (~> 3.3) - jekyll-gist (1.4.1) + jekyll-feed (0.15.1) + jekyll (>= 3.7, < 5.0) + jekyll-gist (1.5.0) octokit (~> 4.2) - jekyll-github-metadata (2.9.3) - jekyll (~> 3.1) + jekyll-github-metadata (2.13.0) + jekyll (>= 3.4, < 5.0) octokit (~> 4.0, != 4.4.0) - jekyll-mentions (1.2.0) - activesupport (~> 4.0) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-mentions (1.6.0) html-pipeline (~> 2.3) - jekyll (~> 3.0) - jekyll-optional-front-matter (0.3.0) - jekyll (~> 3.0) + jekyll (>= 3.7, < 5.0) + jekyll-optional-front-matter (0.3.2) + jekyll (>= 3.0, < 5.0) jekyll-paginate (1.1.0) - jekyll-readme-index (0.2.0) - jekyll (~> 3.0) - jekyll-redirect-from (0.12.1) - jekyll (~> 3.3) - jekyll-relative-links (0.5.2) - jekyll (~> 3.3) - jekyll-remote-theme (0.2.3) - jekyll (~> 3.5) - rubyzip (>= 1.2.1, < 3.0) - typhoeus (>= 0.7, < 2.0) - jekyll-sass-converter (1.5.0) + jekyll-readme-index (0.3.0) + jekyll (>= 3.0, < 5.0) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.3) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) + rubyzip (>= 1.3.0, < 3.0) + jekyll-sass-converter (1.5.2) sass (~> 3.4) - jekyll-seo-tag (2.3.0) - jekyll (~> 3.3) - jekyll-sitemap (1.1.1) - jekyll (~> 3.3) - jekyll-swiss (0.4.0) - jekyll-theme-architect (0.1.0) - jekyll (~> 3.5) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) + jekyll-theme-architect (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.1.0) - jekyll (~> 3.5) + jekyll-theme-cayman (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.1.0) - jekyll (~> 3.5) + jekyll-theme-dinky (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.1.0) - jekyll (~> 3.5) + jekyll-theme-hacker (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.1.0) - jekyll (~> 3.5) + jekyll-theme-leap-day (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.1.0) - jekyll (~> 3.5) + jekyll-theme-merlot (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.1.0) - jekyll (~> 3.5) + jekyll-theme-midnight (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.1.0) - jekyll (~> 3.5) + jekyll-theme-minimal (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.1.0) - jekyll (~> 3.5) + jekyll-theme-modernist (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.5.2) - jekyll (~> 3.5) + jekyll-theme-primer (0.6.0) + jekyll (> 3.5, < 5.0) jekyll-github-metadata (~> 2.9) - jekyll-seo-tag (~> 2.2) - jekyll-theme-slate (0.1.0) - jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.1.0) - jekyll (~> 3.5) + jekyll-theme-slate (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.1.0) - jekyll (~> 3.5) + jekyll-theme-time-machine (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-titles-from-headings (0.5.0) - jekyll (~> 3.3) - jekyll-watch (1.5.1) + jekyll-titles-from-headings (0.5.3) + jekyll (>= 3.3, < 5.0) + jekyll-watch (2.2.1) listen (~> 3.0) - jemoji (0.8.1) - activesupport (~> 4.0, >= 4.2.9) + jemoji (0.12.0) gemoji (~> 3.0) html-pipeline (~> 2.2) - jekyll (>= 3.0) - kramdown (1.14.0) - liquid (4.0.0) - listen (3.0.6) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9.7) + jekyll (>= 3.0, < 5.0) + kramdown (2.3.2) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.8.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) - mini_portile2 (2.3.0) - minima (2.1.1) - jekyll (~> 3.3) - minitest (5.11.1) - multipart-post (2.0.0) + mini_portile2 (2.8.1) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.18.0) + multipart-post (2.3.0) nap (1.1.0) - net-dns (0.8.0) no_proxy_fix (0.1.2) - nokogiri (1.8.1) - mini_portile2 (~> 2.3.0) - octokit (4.8.0) - sawyer (~> 0.8.0, >= 0.5.3) + nokogiri (1.14.2) + mini_portile2 (~> 2.8.0) + racc (~> 1.4) + nokogiri (1.14.2-arm64-darwin) + racc (~> 1.4) + nokogiri (1.14.2-x86_64-darwin) + racc (~> 1.4) + octokit (4.25.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) open4 (1.3.4) - pathutil (0.16.1) + pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (2.0.5) - rb-fsevent (0.10.2) - rb-inotify (0.9.10) - ffi (>= 0.5.0, < 2) - rouge (2.2.1) - ruby-enum (0.7.1) - i18n - rubyzip (1.2.1) - safe_yaml (1.0.4) - sass (3.5.5) + public_suffix (4.0.7) + racc (1.6.2) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rchardet (1.8.0) + rexml (3.2.5) + rouge (3.26.0) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + 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.8.1) - addressable (>= 2.3.5, < 2.6) - faraday (~> 0.8, < 1.0) + sawyer (0.9.2) + addressable (>= 2.3.5) + faraday (>= 0.17.3, < 3) + simpleidn (0.2.1) + unf (~> 0.1.4) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) - thread_safe (0.3.6) - typhoeus (0.8.0) - ethon (>= 0.8.0) - tzinfo (1.2.4) - thread_safe (~> 0.1) - unicode-display_width (1.3.0) + typhoeus (1.4.0) + ethon (>= 0.9.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.8.2) + unicode-display_width (1.8.0) + webrick (1.8.1) PLATFORMS ruby + universal-darwin-20 + x86_64-darwin-19 DEPENDENCIES claide colorize danger danger-prose - github-pages (~> 172) + github-pages + jekyll + jekyll-commonmark-ghpages + jekyll-paginate jekyll-sitemap octokit + webrick (~> 1.7) BUNDLED WITH - 1.16.1 + 2.4.9 diff --git a/README.md b/README.md index c049fde2..1457c988 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,20 @@ -# [swiftweekly.github.io](https://swiftweekly.github.io) [![Build Status](https://travis-ci.org/SwiftWeekly/swiftweekly.github.io.svg?branch=master)](https://travis-ci.org/SwiftWeekly/swiftweekly.github.io) +# [swiftweekly.github.io](https://swiftweekly.github.io) ![CI](https://github.com/swiftweekly/swiftweekly.github.io/workflows/CI/badge.svg) *A community-driven weekly newsletter about [Swift.org](https://swift.org)* -> Curated by [@jesse_squires](https://twitter.com/jesse_squires) and [@BasThomas](https://twitter.com/BasThomas). +> Started by [@jesse_squires](https://twitter.com/jesse_squires), continued by [@BasThomas](https://twitter.com/BasThomas) and now curated by [@fassko](https://twitter.com/fassko). - + ## About -This newsletter was originally started by [Jesse Squires](https://github.com/jessesquires), and hosted on his blog at [jessesquires.com](http://www.jessesquires.com). After issue #4, this site was created to provide the newsletter with a proper, dedicated home. All previous issues were [migrated](http://www.jessesquires.com/new-weekly-brief/), and it is now completely open for the community. Currently, [Bas Broek](https://github.com/BasThomas) is leading the project. Contributions are welcomed and encouraged! +This newsletter was originally started by [Jesse Squires](https://github.com/jessesquires), and hosted on his blog at [jessesquires.com](http://www.jessesquires.com). After issue #4, this site was created to provide the newsletter with a proper, dedicated home. All previous issues were [migrated](http://www.jessesquires.com/new-weekly-brief/), and it is now completely open for the community. At some point, [Bas Broek](https://twitter.com/BasThomas) took it over as the main contributor. Currently, [Kristaps Grinbergs](https://github.com/fassko) is leading the project. Contributions are welcomed and encouraged! Lovingly built with [Jekyll](https://jekyllrb.com), [Bootstrap](https://getbootstrap.com), [jQuery](https://jquery.com), and [Font Awesome](https://fortawesome.github.io/Font-Awesome/). Generously hosted by [GitHub](https://pages.github.com). ## Authors -There are a number of [contributing authors](https://swiftweekly.github.io/authors/) to the newsletter. If you'd like to join, open an issue to discuss! +There are a number of [contributing authors](https://swiftweeklybrief.com/authors/) to the newsletter. If you'd like to join, open an issue to discuss! ## Usage @@ -37,7 +37,7 @@ $ bundle exec jekyll build ### Previewing the site locally ```bash -$ bundle exec jekyll serve +$ bundle exec jekyll serve # Now browse to http://localhost:4000 ``` @@ -50,11 +50,11 @@ $ bundle exec jekyll serve --future --drafts --watch ## Contributing -To contribute, please read our [Contributing Guide](https://github.com/SwiftWeekly/swiftweekly.github.io/blob/master/CONTRIBUTING.md). +To contribute, please review our [Contributing Guide](https://github.com/SwiftWeekly/.github/blob/master/CONTRIBUTING.md). ## Conduct -Please read our [Code of Conduct](https://github.com/SwiftWeekly/swiftweekly.github.io/blob/master/CODE_OF_CONDUCT.md). Violations will not be tolerated and will result in immediate removal or blocking from the organization. +Please read our [Code of Conduct](https://github.com/SwiftWeekly/.github/blob/master/CODE_OF_CONDUCT.md). Violations will not be tolerated and will result in immediate removal or blocking from the organization. ## License diff --git a/_config.yml b/_config.yml index a6b49a4c..6854c1f0 100644 --- a/_config.yml +++ b/_config.yml @@ -4,9 +4,10 @@ highlighter: rouge plugins: - jekyll-sitemap + - jekyll-paginate # File rules -exclude: [vendor, Dangerfile, Gemfile, Gemfile.lock, LICENSE, README.md, CODE_OF_CONDUCT.md, CONTRIBUTING.md, new_draft.sh] +exclude: [vendor, Dangerfile, Gemfile, Gemfile.lock, LICENSE, README.md, CODE_OF_CONDUCT.md, CONTRIBUTING.md, new_draft.sh, github_issue_generator.rb] # Permalinks permalink: /:title/ @@ -14,10 +15,12 @@ permalink: /:title/ # Site title: 'Swift Weekly Brief' description: 'A community-driven weekly newsletter about Swift.org' -url: https://swiftweekly.github.io +url: https://swiftweeklybrief.com logo: /img/logo.png timezone: America/Los_Angeles +repo_name: swiftweekly.github.io + twitter: username: swiftlybrief @@ -32,3 +35,7 @@ links: issue: 'https://github.com/SwiftWeekly/swiftweekly.github.io/issues/new' pull: 'https://github.com/SwiftWeekly/swiftweekly.github.io/compare' applenews: 'https://apple.news/TIlGIYluMTGWA-CIToVtF4Q' + + +paginate: 25 +paginate_path: "/page:num/" \ No newline at end of file diff --git a/_data/authors.yml b/_data/authors.yml index d1cc37b1..a9e4ce2d 100644 --- a/_data/authors.yml +++ b/_data/authors.yml @@ -34,3 +34,11 @@ tapthaker: name: 'Tapan Thaker' twitter: tapthaker github: tapthaker +fassko: + name: 'Kristaps Grinbergs' + twitter: fassko + github: fassko +appforce1: + name: 'Jeroen Leenarts' + twitter: appforce1 + github: appforce1 diff --git a/_includes/foot.html b/_includes/foot.html index 988132a8..f6c4fc0f 100644 --- a/_includes/foot.html +++ b/_includes/foot.html @@ -2,6 +2,6 @@ - diff --git a/_includes/footer.html b/_includes/footer.html index 472fbd0b..3c60377e 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -12,7 +12,7 @@