diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000..1c5740a7 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,38 @@ +FROM ruby:2.6.3-buster + +# Avoid warnings by switching to noninteractive +ENV DEBIAN_FRONTEND=noninteractive + +# The ruby image comes with a base non-root 'ruby' user which this Dockerfile +# gives sudo access. Hoewver, for Linux, this user's GID/UID must match your local +# user UID/GID to avoid permission issues with bind mounts. Update USER_UID / USER_GID +# if yours is not 1000. See https://aka.ms/vscode-remote/containers/non-root-user. +ARG USERNAME=ruby +ARG USER_UID=1000 +ARG USER_GID=$USER_UID + +# Configure apt and install packages +RUN apt-get update \ + && apt-get -y install --no-install-recommends apt-utils dialog 2>&1 \ + # + # Verify git and needed tools are installed + && apt-get install -y git procps \ + && apt-get update \ + # + # Create a non-root user to use if preferred - see https://aka.ms/vscode-remote/containers/non-root-user. + && groupadd --gid $USER_GID $USERNAME \ + && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \ + # [Optional] Add sudo support for non-root users + && apt-get install -y sudo \ + && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ + && chmod 0440 /etc/sudoers.d/$USERNAME \ + # + # Clean up + && apt-get autoremove -y \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* + +# Switch back to dialog for any ad-hoc use of apt-get +ENV DEBIAN_FRONTEND= + +ENV HOME /home/$USERNAME \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..81c06a42 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,16 @@ +{ + "name": "NUnit.org", + "dockerFile": "Dockerfile", + "appPort": 4000, + "extensions": [ + "rebornix.Ruby", + "castwide.solargraph" + ], + "settings": { + "terminal.integrated.shell.linux": "/bin/bash" + }, + "postCreateCommand": "bundle install", + // Comment out the next line to run as root instead. Linux users, update + // Dockerfile with your user's UID/GID if not 1000. + "runArgs": [ "-u", "ruby" ] +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..d3c5c996 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# editorconfig.org +root = true + +[*] +end_of_line = lf +charset = utf-8 +indent_style = space +indent_size = 4 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..5dc46e6b --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +* text=auto eol=lf +*.{cmd,[cC][mM][dD]} text eol=crlf +*.{bat,[bB][aA][tT]} text eol=crlf \ No newline at end of file diff --git a/.gitignore b/.gitignore index 45c15053..73f5d46f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,14 @@ _site .sass-cache .jekyll-metadata + +Thumbs.db +.DS_Store + +!.gitkeep + +.rbenv-version +.rvmrc +.bundle +Gemfile.lock +jekyll diff --git a/Gemfile b/Gemfile index 66e72fce..dcf3b44b 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,7 @@ source "https://rubygems.org" -gem 'jekyll' -gem 'github-pages' +gem 'jekyll', '>= 3.8.5' +gem 'github-pages', '~> 198' gem 'yajl-ruby', '>= 1.3.1' -gem 'wdm', '>= 0.1.0' if Gem.win_platform? \ No newline at end of file +gem 'wdm', '>= 0.1.1' if Gem.win_platform? +gem 'solargraph' \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index deb90b5f..00000000 --- a/Gemfile.lock +++ /dev/null @@ -1,225 +0,0 @@ -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) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.11.1) - colorator (1.1.0) - concurrent-ruby (1.0.5) - ethon (0.11.0) - ffi (>= 1.3.0) - execjs (2.7.0) - faraday (0.13.1) - multipart-post (>= 1.2, < 3) - ffi (1.9.18-x64-mingw32) - forwardable-extended (2.6.0) - gemoji (3.0.0) - github-pages (169) - 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-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.2.0) - jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.1.0) - jekyll-redirect-from (= 0.12.1) - jekyll-relative-links (= 0.5.1) - 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.4.0) - jemoji (= 0.8.1) - kramdown (= 1.14.0) - liquid (= 4.0.0) - listen (= 3.0.6) - mercenary (~> 0.3) - minima (= 2.1.1) - rouge (= 2.2.1) - terminal-table (~> 1.4) - github-pages-health-check (1.3.5) - addressable (~> 2.3) - net-dns (~> 0.8) - octokit (~> 4.0) - public_suffix (~> 2.0) - typhoeus (~> 0.7) - html-pipeline (2.7.1) - activesupport (>= 2) - nokogiri (>= 1.4) - i18n (0.9.1) - concurrent-ruby (~> 1.0) - jekyll (3.6.2) - addressable (~> 2.4) - colorator (~> 1.0) - jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 1.1) - kramdown (~> 1.14) - liquid (~> 4.0) - mercenary (~> 0.3.3) - pathutil (~> 0.9) - rouge (>= 1.7, < 3) - safe_yaml (~> 1.0) - jekyll-avatar (0.5.0) - jekyll (~> 3.0) - jekyll-coffeescript (1.0.2) - coffee-script (~> 2.2) - coffee-script-source (~> 1.11.1) - jekyll-default-layout (0.1.4) - jekyll (~> 3.0) - jekyll-feed (0.9.2) - jekyll (~> 3.3) - jekyll-gist (1.4.1) - octokit (~> 4.2) - jekyll-github-metadata (2.9.3) - jekyll (~> 3.1) - octokit (~> 4.0, != 4.4.0) - jekyll-mentions (1.2.0) - activesupport (~> 4.0) - html-pipeline (~> 2.3) - jekyll (~> 3.0) - jekyll-optional-front-matter (0.2.0) - jekyll (~> 3.0) - jekyll-paginate (1.1.0) - jekyll-readme-index (0.1.0) - jekyll (~> 3.0) - jekyll-redirect-from (0.12.1) - jekyll (~> 3.3) - jekyll-relative-links (0.5.1) - jekyll (~> 3.3) - jekyll-sass-converter (1.5.0) - 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.0) - jekyll-theme-cayman (0.1.0) - jekyll (~> 3.5) - jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.1.0) - jekyll (~> 3.5) - jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.1.0) - jekyll (~> 3.5) - jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.1.0) - jekyll (~> 3.5) - jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.1.0) - jekyll (~> 3.5) - jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.1.0) - jekyll (~> 3.5) - jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.1.0) - jekyll (~> 3.5) - jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.1.0) - jekyll (~> 3.5) - jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.5.2) - jekyll (~> 3.5) - 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-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.1.0) - jekyll (~> 3.5) - jekyll-seo-tag (~> 2.0) - jekyll-titles-from-headings (0.4.0) - jekyll (~> 3.3) - jekyll-watch (1.5.0) - listen (~> 3.0, < 3.1) - jemoji (0.8.1) - activesupport (~> 4.0, >= 4.2.9) - 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) - mercenary (0.3.6) - mini_portile2 (2.3.0) - minima (2.1.1) - jekyll (~> 3.3) - minitest (5.10.3) - multipart-post (2.0.0) - net-dns (0.8.0) - nokogiri (1.8.1-x64-mingw32) - mini_portile2 (~> 2.3.0) - octokit (4.7.0) - sawyer (~> 0.8.0, >= 0.5.3) - pathutil (0.16.0) - 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) - safe_yaml (1.0.4) - sass (3.5.3) - 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) - 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) - wdm (0.1.1) - yajl-ruby (1.3.1) - -PLATFORMS - x64-mingw32 - -DEPENDENCIES - github-pages - jekyll - wdm (>= 0.1.0) - yajl-ruby (>= 1.3.1) - -BUNDLED WITH - 1.16.0 diff --git a/README.md b/README.md index 4d7de079..51a6efc9 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,58 @@ # NUnit.org website -## Installing Jekyll +To get started developing the website, you have two options. You can develop in a Docker Container using VS Code, or you can install Ruby locally and develop locally. + +## Installing Docker and VS Code + +Do this if you want to develop in a Docker container using VS Code. + +1. Install and configure [Docker](https://www.docker.com/get-started) for your operating system. + + **Windows / macOS**: + + 1. Install [Docker Desktop for Windows/Mac](https://www.docker.com/products/docker-desktop). + 2. Right-click on the Docker taskbar item and update **Settings / Preferences > Shared Drives / File Sharing** with the drive the web app source code is located in. If you run into trouble, see [Docker Desktop for Windows tips](/docs/remote/troubleshooting.md#docker-desktop-for-windows-tips) on avoiding common problems with sharing. + + **Linux**: + + 1. Follow the [official install instructions for Docker CE/EE for your distribution](https://docs.docker.com/install/#supported-platforms). + 2. Add your user to the `docker` group by using a terminal to run: `sudo usermod -aG docker $USER` + 3. Sign out and back in again so your changes take effect. + +2. Install [Visual Studio Code](https://code.visualstudio.com/). +3. Install the [Remote Development extension pack](https://aka.ms/vscode-remote/download/extension). + +### Quick Start for Docker with VSCode + +1. Start VS Code and click on the quick actions Status Bar item in the lower left corner of the window. + + ![Quick actions status bar item](https://code.visualstudio.com/assets/docs/remote/common/remote-dev-status-bar.png) + +2. Select **Remote-Containers: Open Folder in Container...** from the command list that appears, and open the root folder of the project you just cloned. + +3. The window will then reload, but since the container does not exist yet, VS Code will create one. This may take some time, and a progress notification will provide status updates. Fortunately, this step isn't necessary the next time you open the folder since the container will already exist. + + ![Dev Container Progress Notification](https://code.visualstudio.com/assets/docs/remote/containers/dev-container-progress.png) + +4. After the container is built, VS Code automatically connects to it and maps the project folder from your local file system into the container. + +5. Open the terminal in VS Code to a bash prompt within the container by clicking on **Terminal > New Terminal** + +6. In the terminal, type `bundle exec jekyll serve` to build and run the web site. (See below) + +7. Open the web site at [http://localhost:4000](http://localhost:4000). + +8. Begin developing in Visual Studio Code. + +## Installing Ruby and Jekyll locally 1. Install Ruby 2.2 ([Linux](https://www.ruby-lang.org/en/documentation/installation/), [Mac](https://gorails.com/setup/osx/10.10-yosemite), [Windows](http://rubyinstaller.org/)) 2. If you are on Windows, install [DevKit](http://rubyinstaller.org/add-ons/devkit/) 3. `gem install bundler` +4. `bundle install` + +## Building the project -## Initializing the project +GitHub will do this automatically when you push, but this allows you to view the site locally before you commit. -1. `bundle install` -2. `jekyll serve` \ No newline at end of file +1. `jekyll serve` \ No newline at end of file diff --git a/_config.yml b/_config.yml index 0049d647..2a095326 100644 --- a/_config.yml +++ b/_config.yml @@ -7,8 +7,8 @@ # Site settings title: NUnit.org -email: -description: NUnit is the most popular unit test framework for .NET. +email: +description: NUnit is the most popular unit test framework for .NET. baseurl: "" # the subpath of your site, e.g. /blog twitter_username: nunit github_username: nunit @@ -19,4 +19,5 @@ markdown: kramdown # This is used in the Atom & RSS feeds and in the sitemap production_url: "http://nunit.org" rss_path: /rss.xml -atom_path: /atom.xml \ No newline at end of file +atom_path: /atom.xml +host: 0.0.0.0 \ No newline at end of file diff --git a/_includes/footer.html b/_includes/footer.html index c4b8b58c..88b1e0ca 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -2,7 +2,7 @@
- Copyright © 2017, Charlie Poole, Rob Prouse. + Copyright © 2019, Charlie Poole, Rob Prouse.
CC BY-NC-SA 4.0 License diff --git a/_includes/paypal.html b/_includes/paypal.html deleted file mode 100644 index 758bc103..00000000 --- a/_includes/paypal.html +++ /dev/null @@ -1,12 +0,0 @@ -
- - - - - - - - - - -
\ No newline at end of file diff --git a/donations.md b/donations.md index 4d26bba1..ca893c2a 100644 --- a/donations.md +++ b/donations.md @@ -5,10 +5,9 @@ icon: fa-usd permalink: /donations/ --- -Your donation to NUnit helps us pay for web hosting, making presentations at user events and - of course - continuing -to develop the software itself. - -> _Currently, financial contributions to NUnit are suspended while we complete our reorganization under the .NET Foundation._ +Past donations to NUnit helped pay for web hosting, making presentations at user events and developing the software itself. +The team has decided to no longer accept donations at this time, but we are maintaining this page to acknowlege past +contributions. ## Recent Donations diff --git a/index.html b/index.html index 2a73c705..70219d84 100644 --- a/index.html +++ b/index.html @@ -31,26 +31,27 @@

What Is NUnit?

-

NUnit Joins the .NET Foundation

+

NUnit is a part of the .NET Foundation

.NET Foundation

- We are happy to announce that the NUnit Project is joining the .NET Foundation. - NUnit will continue to be run by the core team, Rob Prouse, + The NUnit Project is a member of the .NET Foundation. + NUnit is run by the core team, Rob Prouse, Charlie Poole, Terje Sandstrom, - Chris Maddock and Joseph Musser. + Chris Maddock, Joseph Musser + and Mikkel Nylander Bundgaard. The .NET Foundation will provide guidance and support to help ensure the future of the project.

The success of NUnit has been made possible through the hard work of our many contributors and - team members. This is the perfect time to thank everyone for - the help and contributions that have made NUnit the success that it is. This month, the various NUnit packages - passed 30 million downloads on NuGet.org. We couldn't have done that + team members. The Core Team thanks everyone for + the help and contributions that have made NUnit the success that it is. At last count, the various NUnit packages + passed 126 million downloads on NuGet.org. We couldn't have done that without the dedication of the many volunteers that donate their time and knowledge to the project.

@@ -58,7 +59,7 @@

NUnit Joins the .NET Foundation

-
+

License

NUnit is Open Source software and NUnit 3 is released under the MIT license. Earlier releases @@ -68,7 +69,7 @@

License

and libraries without restrictions.

-
+

About Us

NUnit 3 was created by Charlie Poole, Rob Prouse, @@ -76,17 +77,6 @@

About Us

Earlier versions of NUnit were developed by Charlie Poole, James Newkirk, Alexei Vorontsov, Michael Two and Philip Craig.

- -
-

Donations

- -

The NUnit team invests a great deal of time and effort to make NUnit a useful tool. In addition, we have expenses. We have - to purchase domain names, arrange for web site hosting and acquire equipment.

- -

Financial contributions are one way you can help to ensure that NUnit continues to develop and remains free - and open software. For more information or to view a list of donors, see our Donations page.

- -
\ No newline at end of file