diff --git a/.gitignore b/.gitignore index 4d0bed3c..0683169b 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ .DS_Store # Python environment -/env35 +/env36 # Python compilation *.pyc diff --git a/.travis.yml b/.travis.yml index f017378c..02f4d070 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,26 +5,26 @@ sudo: false language: python python: - - "3.5.2" + - "3.6.6" cache: pip: true install: # Install Python dependencies - - python -m pip install --upgrade pip==9.0.1 + - python -m pip install --upgrade pip==18.0 - python -m pip install -r requirements3.txt # Install Node - - nvm install 4.5.0 + - nvm install 8.12.0 # Install Ruby - - rvm @global do gem install bundler -v 1.13.6 - - rvm install 2.3.3 - - rvm use 2.3.3 --default + - rvm install 2.5.1 + - rvm @global do gem install bundler -v 1.16.5 + - rvm use 2.5.1 --default # Invoke will get our other dependencies - - invoke update_dependencies + - invoke dependencies_ensure script: - nosetests tests.fast diff --git a/.travis.yml.in b/.travis.yml.in index 7e3c383b..6798a658 100644 --- a/.travis.yml.in +++ b/.travis.yml.in @@ -37,8 +37,8 @@ install: {% endif %} {% if ruby is defined and ruby.required %} # Install Ruby - - rvm @global do gem install bundler -v {{ ruby.bundler_version }} - rvm install {{ ruby.version }} + - rvm @global do gem install bundler -v {{ ruby.bundler_version }} - rvm use {{ ruby.version }} --default {% endif %} @@ -58,7 +58,7 @@ install: {% endif %} # Invoke will get our other dependencies - - invoke update_dependencies + - invoke dependencies_ensure script: {% if docker is defined and docker.required %} diff --git a/Gemfile b/Gemfile index 0dce7857..bcf2170f 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,5 @@ source "https://rubygems.org" -ruby '2.3.3' +ruby '2.5.1' gem 'jekyll' diff --git a/Gemfile.lock b/Gemfile.lock index f2b5d9ee..70ad1d58 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,42 +1,59 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.5.0) - public_suffix (~> 2.0, >= 2.0.2) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) colorator (1.1.0) - ffi (1.9.14) - ffi (1.9.14-x86-mingw32) + concurrent-ruby (1.0.5) + em-websocket (0.5.1) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + eventmachine (1.2.7) + eventmachine (1.2.7-x86-mingw32) + ffi (1.9.25) + ffi (1.9.25-x86-mingw32) forwardable-extended (2.6.0) - jekyll (3.3.1) + http_parser.rb (0.6.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.8.4) addressable (~> 2.4) colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 1.1) - kramdown (~> 1.3) - liquid (~> 3.0) + jekyll-watch (~> 2.0) + kramdown (~> 1.14) + liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) - rouge (~> 1.7) + rouge (>= 1.7, < 4) safe_yaml (~> 1.0) - jekyll-sass-converter (1.5.0) + jekyll-sass-converter (1.5.2) sass (~> 3.4) - jekyll-watch (1.5.0) - listen (~> 3.0, < 3.1) - kramdown (1.13.1) - liquid (3.0.6) - listen (3.0.8) + jekyll-watch (2.0.0) + listen (~> 3.0) + kramdown (1.17.0) + liquid (4.0.0) + listen (3.1.5) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) mercenary (0.3.6) - pathutil (0.14.0) + pathutil (0.16.1) forwardable-extended (~> 2.6) - public_suffix (2.0.4) - rb-fsevent (0.9.8) - rb-inotify (0.9.7) - ffi (>= 0.5.0) - rouge (1.11.1) + public_suffix (3.0.3) + rb-fsevent (0.10.3) + rb-inotify (0.9.10) + ffi (>= 0.5.0, < 2) + rouge (3.2.1) + ruby_dep (1.5.0) safe_yaml (1.0.4) - sass (3.4.22) + sass (3.6.0) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) PLATFORMS ruby @@ -46,7 +63,7 @@ DEPENDENCIES jekyll RUBY VERSION - ruby 2.3.3p222 + ruby 2.5.1p57 BUNDLED WITH - 1.13.6 + 1.16.5 diff --git a/README.md b/README.md index a5b841b8..31f955d1 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,9 @@ Which is in turn based on: [https://github.com/fogies/invoke-base](https://github.com/fogies/invoke-base) Runtime dependencies for this project are: -- Python 3.5.2 -- Node 4.5.0 -- Ruby 2.3.3 -- Ruby DevKit +- Python 3.6.6 +- Node 8.12.0 +- Ruby 2.5.1 See [Installation for Windows](https://github.com/fogies/web-jekyll-base/blob/master/readme/install_windows.md). diff --git a/_base_config.yml b/_base_config.yml index e1c07972..f388d373 100644 --- a/_base_config.yml +++ b/_base_config.yml @@ -1,32 +1,34 @@ config: python: - version: 3.5.2 - pip_version: 9.0.1 + # Python is currently pinned by this bug: + # https://github.com/travis-ci/travis-ci/issues/9815 + version: 3.6.6 + pip_version: 18.0 # Invoke is currently pinned by this bug: # https://github.com/pyinvoke/invoke/issues/345 invoke_version: 0.12.2 node: required: true - version: 4.5.0 + version: 8.12.0 ruby: required: true - version: 2.3.3 - bundler_version: 1.13.6 + version: 2.5.1 + bundler_version: 1.16.5 docker: required: false toolbox: - version: v17.06.0a-ce + version: v18.06.1-ce macos: cmd_bash: /bin/bash cmd_dockermachine: /usr/local/bin/docker-machine windows: - cmd_bash: c:/Program Files/Git/bin/bash - cmd_dockermachine: c:/Program Files/Docker Toolbox/docker-machine.exe + cmd_bash: c:\Program Files\Git\bin\bash + cmd_dockermachine: c:\Program Files\Docker Toolbox\docker-machine.exe travis: version: 1.11.2-0~trusty @@ -54,6 +56,8 @@ config: build_test: base/readme/invoke/build_test.md compile_config: base/readme/invoke/compile_config.md compile_requirements: base/readme/invoke/compile_requirements.md + dependencies_ensure: base/readme/invoke/dependencies_ensure.md + dependencies_upgrade_base: base/readme/invoke/dependencies_upgrade_base.md docker_console: base/readme/invoke/docker_console.md docker_ip: base/readme/invoke/docker_ip.md docker_localize: base/readme/invoke/docker_localize.md @@ -62,55 +66,39 @@ config: docker_stop: base/readme/invoke/docker_stop.md serve_production: base/readme/invoke/serve_production.md serve_test: base/readme/invoke/serve_test.md - update_base: base/readme/invoke/update_base.md - update_dependencies: base/readme/invoke/update_dependencies.md python_versions: - - version: 3.5.2 - virtual_environment_name: env35 + - version: 3.7.0 + virtual_environment_name: env37 requirements_name: requirements3.txt windows: - installer_url: https://www.python.org/ftp/python/3.5.2/python-3.5.2.exe - install_path: c:/Python35 + installer_url: https://www.python.org/ftp/python/3.7.0/python-3.7.0.exe + install_path: c:\Python37 + - version: 3.6.6 + virtual_environment_name: env36 + requirements_name: requirements3.txt + windows: + installer_url: https://www.python.org/ftp/python/3.6.6/python-3.6.6.exe + install_path: c:\Python36 node_versions: - - version: 4.5.0 + - version: 8.12.0 windows: - installer_url: https://nodejs.org/dist/v4.5.0/node-v4.5.0-x64.msi + installer_url: https://nodejs.org/dist/v8.12.0/node-v8.12.0-x64.msi ruby_versions: - - version: 2.2.3 - windows: - installer_url: https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.3.exe - install_path: c:/Ruby223 - installer_devkit_url: https://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe - install_devkit_path: c:/RubyDevKit - - version: 2.3.1 + - version: 2.5.1 windows: - installer_url: https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.3.1.exe - install_path: c:/Ruby231 - installer_devkit_url: https://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe - install_devkit_path: c:/RubyDevKit - - version: 2.3.3 - windows: - installer_url: https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.3.3.exe - install_path: c:/Ruby233 - installer_devkit_url: https://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe - install_devkit_path: c:/RubyDevKit + installer_url: https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-2.5.1-2/rubyinstaller-devkit-2.5.1-2-x86.exe + install_path: c:\Ruby251 docker_toolbox_versions: - - version: v17.06.0a-ce - macos: - installer_url: https://github.com/docker/toolbox/releases/download/v17.06.0a-ce/DockerToolbox-17.06.0a-ce.pkg - windows: - installer_url: https://github.com/docker/toolbox/releases/download/v17.06.0a-ce/DockerToolbox-17.06.0a-ce.exe - install_path: c:/Program Files/Docker Toolbox - - version: 1.12.3 + - version: v18.06.1-ce macos: - installer_url: https://github.com/docker/toolbox/releases/download/v1.12.3/DockerToolbox-1.12.3.pkg + installer_url: https://github.com/docker/toolbox/releases/download/v18.06.1-ce/DockerToolbox-18.06.1-ce.pkg windows: - installer_url: https://github.com/docker/toolbox/releases/download/v1.12.3/DockerToolbox-1.12.3.exe - install_path: c:/Program Files/Docker Toolbox + installer_url: https://github.com/docker/toolbox/releases/download/v18.06.1-ce/DockerToolbox-18.06.1-ce.exe + install_path: c:\Program Files\Docker Toolbox compile_config: entries: diff --git a/base/invoke/tasks/command.py b/base/invoke/tasks/command.py index b13e17ff..c9c6fc30 100644 --- a/base/invoke/tasks/command.py +++ b/base/invoke/tasks/command.py @@ -12,10 +12,11 @@ def run(command, error_on_failure=True): output = '' for line in process.stdout: - line = str(line, encoding='utf-8') - - output += line try: + line = str(line, encoding='utf-8') + + output += line + if sys.stdout.encoding: print( line.encode( diff --git a/base/invoke/tasks/update.py b/base/invoke/tasks/dependencies.py similarity index 90% rename from base/invoke/tasks/update.py rename to base/invoke/tasks/dependencies.py index 77c208bd..4dafdd50 100644 --- a/base/invoke/tasks/update.py +++ b/base/invoke/tasks/dependencies.py @@ -7,16 +7,10 @@ import yaml -@invoke.task -def update_base(): - invoke.run('git pull https://github.com/fogies/web-jekyll-base.git master', encoding=sys.stdout.encoding) - invoke.run('git pull https://github.com/fogies/invoke-base.git master', encoding=sys.stdout.encoding) - - @invoke.task(pre=[ base.invoke.tasks.compile.compile_config ]) -def update_dependencies(): +def dependencies_ensure(): # Check that we are internet connected try: response = requests.head(url='http://www.google.com', timeout=5) @@ -77,13 +71,6 @@ def update_dependencies(): ) result = base.invoke.tasks.command.run(command) - # And only the correct Bundler version - # Expected to fail if no other versions of bundler are installed - command = 'gem uninstall bundler -v "!={}"'.format( - bundler_version_desired - ) - result = base.invoke.tasks.command.run(command, error_on_failure=False) - # Check we have our Ruby dependencies command = 'bundle check' result = base.invoke.tasks.command.run(command, error_on_failure=False) @@ -92,3 +79,9 @@ def update_dependencies(): if result.failed: command = 'bundle install' result = base.invoke.tasks.command.run(command) + + +@invoke.task +def dependencies_base_update(): + invoke.run('git pull https://github.com/fogies/web-jekyll-base.git master', encoding=sys.stdout.encoding) + invoke.run('git pull https://github.com/fogies/invoke-base.git master', encoding=sys.stdout.encoding) diff --git a/base/invoke/tasks/jekyll.py b/base/invoke/tasks/jekyll.py index f49865e9..294658e9 100644 --- a/base/invoke/tasks/jekyll.py +++ b/base/invoke/tasks/jekyll.py @@ -1,9 +1,9 @@ -import base.invoke.tasks.update +import base.invoke.tasks.dependencies import invoke import sys -@invoke.task(pre=[base.invoke.tasks.update.update_dependencies]) +@invoke.task(pre=[base.invoke.tasks.dependencies.dependencies_ensure]) def build_production(): invoke.run( 'bundle exec jekyll build -t --config _config.yml,_config-production.yml', @@ -11,7 +11,7 @@ def build_production(): ) -@invoke.task(pre=[base.invoke.tasks.update.update_dependencies]) +@invoke.task(pre=[base.invoke.tasks.dependencies.dependencies_ensure]) def build_test(): invoke.run( 'bundle exec jekyll build -t --config _config.yml,_config-test.yml', @@ -19,7 +19,7 @@ def build_test(): ) -@invoke.task(pre=[base.invoke.tasks.update.update_dependencies]) +@invoke.task(pre=[base.invoke.tasks.dependencies.dependencies_ensure]) def serve_production(): invoke.run( 'bundle exec jekyll serve -t --config _config.yml,_config-production.yml -H 0.0.0.0', @@ -27,7 +27,7 @@ def serve_production(): ) -@invoke.task(pre=[base.invoke.tasks.update.update_dependencies]) +@invoke.task(pre=[base.invoke.tasks.dependencies.dependencies_ensure]) def serve_test(): invoke.run( 'bundle exec jekyll serve -t --config _config.yml,_config-test.yml --watch --force_polling', diff --git a/base/readme/install/docker_toolbox_requirements.md b/base/readme/install/docker_toolbox_requirements.md index f16ad36c..2438fb66 100644 --- a/base/readme/install/docker_toolbox_requirements.md +++ b/base/readme/install/docker_toolbox_requirements.md @@ -1,7 +1,3 @@ {% if docker is defined and docker.required %} - Docker Toolbox {{ docker.toolbox.version }} - - Note we are using this version due to a potential bug in 1.12.5, which is unable to mount volumes on Windows. - - [https://github.com/docker/toolbox/issues/607](https://github.com/docker/toolbox/issues/607) {% endif %} diff --git a/base/readme/install/docker_toolbox_windows.md b/base/readme/install/docker_toolbox_windows.md index 297598ba..fcb32da7 100644 --- a/base/readme/install/docker_toolbox_windows.md +++ b/base/readme/install/docker_toolbox_windows.md @@ -9,7 +9,7 @@ [{{ install_params_docker_toolbox.windows.installer_url }}]({{ install_params_docker_toolbox.windows.installer_url }}) -This installer must be run by right-clicking and selecting 'Run as administrator'. +This installer should be run by right-clicking and selecting 'Run as administrator'. This is required even when using an Administrator account. Otherwise, VirtualBox can fail to create the host-only network required for VirtualBox and Docker Toolbox. diff --git a/base/readme/install/python_windows.md b/base/readme/install/python_windows.md index a4351ae1..cfe278a0 100644 --- a/base/readme/install/python_windows.md +++ b/base/readme/install/python_windows.md @@ -15,16 +15,24 @@ When installing Python: - Choose 'Customize Installation' - On 'Optional Features': - Check 'pip' and 'for all users (requires elevation)'. + Check 'pip'. - Uncheck 'Documentation', 'tcl/tk and IDLE', 'Python test suite', 'py launcher'. + Uncheck 'Documentation', 'tcl/tk and IDLE', 'Python test suite', 'py launcher', and 'for all users (requires elevation)'. - On 'Advanced Options': + Check 'Install for all users' and 'Precompile standard library'. + + Uncheck 'Create shortcuts for installed applications', 'Add Python to environment variables', 'Download debugging symbols', and 'Download debug binaries (requires VS 2015 or later)'. + Set an installation path of `{{ install_params_python.windows.install_path }}`. Uncheck all options. +- On 'Setup was successful': + + If present, choose 'Disable path length limit'. + ### Creating a Virtual Environment and Installing Dependencies Create the virtual environment. From the working directory of our project (e.g., `{{ readme.working_directory_windows }}`): diff --git a/base/readme/install/ruby_mac.md b/base/readme/install/ruby_mac.md index e795bfb7..b4aa008a 100644 --- a/base/readme/install/ruby_mac.md +++ b/base/readme/install/ruby_mac.md @@ -25,8 +25,4 @@ Alternatively, you can specify a Ruby version for the directory: rbenv local {{ ruby.version }} ~~~ -### Installing Ruby DevKit: - -Installing `rbenv` via Homebrew should automatically install `ruby-devkit` - {% endif %} diff --git a/base/readme/install/ruby_requirements.md b/base/readme/install/ruby_requirements.md index e1d65031..e8609a5d 100644 --- a/base/readme/install/ruby_requirements.md +++ b/base/readme/install/ruby_requirements.md @@ -1,4 +1,3 @@ {% if ruby is defined and ruby.required %} - Ruby {{ ruby.version }} -- Ruby DevKit {% endif %} diff --git a/base/readme/install/ruby_windows.md b/base/readme/install/ruby_windows.md index 75eddc3b..addda5a8 100644 --- a/base/readme/install/ruby_windows.md +++ b/base/readme/install/ruby_windows.md @@ -19,22 +19,20 @@ When installing Ruby: Check 'Add Ruby executables to your PATH'. -### Installing Ruby DevKit: + Uncheck 'Associate .rb and .rbw files with this Ruby installation' and 'Use UTF-8 as default external encoding'. -[{{ install_params_ruby.windows.installer_devkit_url }}]({{ install_params_ruby.windows.installer_devkit_url }}) +- On 'Select Components': -This documentation assumes an installation path of `{{ install_params_ruby.windows.install_devkit_path }}`. + Check 'MSYS2 development toolchain 2018-06-24'. -When installing the Ruby DevKit: +- On 'Completing the Ruby 2.5.1-2-x86 with MSYS2 Setup Wizard': -- Extract to `{{ install_params_ruby.windows.install_devkit_path }}`. + Check 'Run 'ridk install' to setup MSYS2 and development toolchain. -- Install the DevKit into the Ruby installation: +- On 'Ruby Installer 2 for Windows' - ~~~ - cd {{ install_params_ruby.windows.install_devkit_path }} - ruby dk.rb init - ruby dk.rb install - ~~~ + Press Enter for '[1, 2, 3]'. + + Press Enter for '[]'. {% endif %} diff --git a/base/readme/invoke/update_dependencies.md b/base/readme/invoke/dependencies_ensure.md similarity index 55% rename from base/readme/invoke/update_dependencies.md rename to base/readme/invoke/dependencies_ensure.md index 2fcc0ad4..8f8cfa7f 100644 --- a/base/readme/invoke/update_dependencies.md +++ b/base/readme/invoke/dependencies_ensure.md @@ -1,3 +1,3 @@ Ensure dependencies are installed. -`invoke update_depenencies` +`invoke dependencies_ensure` diff --git a/base/readme/invoke/dependencies_upgrade_base.md b/base/readme/invoke/dependencies_upgrade_base.md new file mode 100644 index 00000000..51f9c121 --- /dev/null +++ b/base/readme/invoke/dependencies_upgrade_base.md @@ -0,0 +1,3 @@ +Pull changes to this project template. + +`invoke dependencies_upgrade_base` diff --git a/base/readme/invoke/update_base.md b/base/readme/invoke/update_base.md deleted file mode 100644 index 808ace58..00000000 --- a/base/readme/invoke/update_base.md +++ /dev/null @@ -1,3 +0,0 @@ -Pull updates to this template. - -`invoke update_base` diff --git a/base/readme/scraps.md b/base/readme/scraps.md index 1bcf5a85..d02ad1a4 100644 --- a/base/readme/scraps.md +++ b/base/readme/scraps.md @@ -1,42 +1,3 @@ - -All Python work should be done within a virtual environment, to avoid dependency conflicts. -Node.js and Ruby have their own dependency management (i.e., npm shrinkwrap and bundler). -Our Python automation scripts will employ those tools, but we first need to configure Python. - - - - -Next use Python's invoke automation to get the rest of our dependencies: - - invoke update_dependencies - - - - -## Creating a Virtual Environment and Installing Dependencies - - {% set install_params_python = {} -%} - {%- for version_available in readme.python_versions -%} - {%- if version_available.version == local.python.version -%} - {%- set install_params_python = install_params_python.update(version_available) -%} - {%- endif -%} - {%- endfor -%} - -All Python work should be done within a virtual environment, to avoid dependency conflicts. - -Create the virtual environment. From the working directory of our project (e.g., `{{ readme.working_directory }}`): - - {{ install_params_python.install_path }}\python.exe -m venv {{ install_params_python.virtual_environment_name }} - -This will create a directory for the virtual environment (e.g., `{{ readme.working_directory }}\{{ install_params_python.virtual_environment_name }}\`). - -Next activate that virtual environment and install our Python dependencies: - - {{ install_params_python.virtual_environment_name }}\Scripts\activate.bat - pip install -r {{ install_params_python.requirements_name }} - - - ## Starting Docker Containers and Running Tests If it is not already active, you need to re-activate the virtual environment. diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 707e3209..bc30f037 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,67 +1,475 @@ { + "requires": true, + "lockfileVersion": 1, "dependencies": { - "less": { - "version": "2.7.1", - "from": "less@2.7.1", - "resolved": "https://registry.npmjs.org/less/-/less-2.7.1.tgz", + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "optional": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "optional": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "optional": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "optional": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "optional": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "optional": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "optional": true + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "optional": true + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "optional": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "optional": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "optional": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "optional": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "optional": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "optional": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "optional": true + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + }, "dependencies": { - "errno": { - "version": "0.1.4", - "from": "errno@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", - "dependencies": { - "prr": { - "version": "0.0.0", - "from": "prr@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz" - } - } - }, - "graceful-fs": { - "version": "4.1.6", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.6.tgz" - }, - "image-size": { - "version": "0.5.0", - "from": "image-size@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.0.tgz" - }, - "mime": { - "version": "1.3.4", - "from": "mime@>=1.2.11 <2.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } + "combined-stream": { + "version": "1.0.6", + "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "optional": true, + "requires": { + "delayed-stream": "~1.0.0" } - }, - "promise": { - "version": "7.1.1", - "from": "promise@>=7.1.1 <8.0.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", - "dependencies": { - "asap": { - "version": "2.0.4", - "from": "asap@>=2.0.3 <2.1.0", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.4.tgz" - } - } - }, - "source-map": { - "version": "0.5.6", - "from": "source-map@>=0.5.3 <0.6.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" } } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "optional": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "optional": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "optional": true + }, + "har-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "optional": true, + "requires": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "optional": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "optional": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "optional": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "optional": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "optional": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "optional": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "optional": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "less": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz", + "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==", + "requires": { + "clone": "^2.1.2", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "optional": true + }, + "mime-db": { + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + }, + "mime-types": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "requires": { + "mime-db": "~1.36.0" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "optional": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "optional": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "optional": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "optional": true + }, + "psl": { + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", + "optional": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "optional": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "optional": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "optional": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "optional": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "optional": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "optional": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "optional": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "optional": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } } } } diff --git a/package.json b/package.json index 02db490d..15a8548b 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { "dependencies": { - "less" : "*" + "less": "^3.8.1" } } diff --git a/readme/install_mac.md b/readme/install_mac.md index 80b0dfe9..a17492b1 100644 --- a/readme/install_mac.md +++ b/readme/install_mac.md @@ -27,15 +27,15 @@ pip3 install virtualenv Create the virtual environment. From the working directory of our project (e.g., `~/Desktop/web-jekyll-base`): ~~~ -virtualenv -p python3 env35 +virtualenv -p python3 env36 ~~~ -This will create a directory for the virtual environment (e.g., `~/Desktop/web-jekyll-base/env35/`). +This will create a directory for the virtual environment (e.g., `~/Desktop/web-jekyll-base/env36/`). Next activate that virtual environment and install our Python dependencies: ~~~ -source env35/bin/activate +source env36/bin/activate pip3 install -r requirements3.txt ~~~ @@ -61,17 +61,13 @@ source ~/.bash_profile` Install the correct version of Ruby: ~~~ -rbenv install 2.3.3 -rbenv global 2.3.3 +rbenv install 2.5.1 +rbenv global 2.5.1 ~~~ Alternatively, you can specify a Ruby version for the directory: ~~~ -rbenv local 2.3.3 +rbenv local 2.5.1 ~~~ -### Installing Ruby DevKit: - -Installing `rbenv` via Homebrew should automatically install `ruby-devkit` - diff --git a/readme/install_windows.md b/readme/install_windows.md index b28b3ea6..8e9dd1ff 100644 --- a/readme/install_windows.md +++ b/readme/install_windows.md @@ -2,77 +2,83 @@ ## Installing Python -[https://www.python.org/ftp/python/3.5.2/python-3.5.2.exe](https://www.python.org/ftp/python/3.5.2/python-3.5.2.exe) +[https://www.python.org/ftp/python/3.6.6/python-3.6.6.exe](https://www.python.org/ftp/python/3.6.6/python-3.6.6.exe) -This documentation assumes an installation path of `c:/Python35`. +This documentation assumes an installation path of `c:\Python36`. When installing Python: - Choose 'Customize Installation' - On 'Optional Features': - Check 'pip' and 'for all users (requires elevation)'. + Check 'pip'. - Uncheck 'Documentation', 'tcl/tk and IDLE', 'Python test suite', 'py launcher'. + Uncheck 'Documentation', 'tcl/tk and IDLE', 'Python test suite', 'py launcher', and 'for all users (requires elevation)'. - On 'Advanced Options': - Set an installation path of `c:/Python35`. + Check 'Install for all users' and 'Precompile standard library'. + + Uncheck 'Create shortcuts for installed applications', 'Add Python to environment variables', 'Download debugging symbols', and 'Download debug binaries (requires VS 2015 or later)'. + + Set an installation path of `c:\Python36`. Uncheck all options. +- On 'Setup was successful': + + If present, choose 'Disable path length limit'. + ### Creating a Virtual Environment and Installing Dependencies Create the virtual environment. From the working directory of our project (e.g., `c:/devel/web-jekyll-base`): ~~~ -c:/Python35/python.exe -m venv env35 +c:\Python36/python.exe -m venv env36 ~~~ -This will create a directory for the virtual environment (e.g., `c:/devel/web-jekyll-base/env35/`). +This will create a directory for the virtual environment (e.g., `c:/devel/web-jekyll-base/env36/`). Next activate that virtual environment and install our Python dependencies: ~~~ -env35/Scripts/activate.bat +env36/Scripts/activate.bat pip install -r requirements3.txt ~~~ ## Installing Node -[https://nodejs.org/dist/v4.5.0/node-v4.5.0-x64.msi](https://nodejs.org/dist/v4.5.0/node-v4.5.0-x64.msi) +[https://nodejs.org/dist/v8.12.0/node-v8.12.0-x64.msi](https://nodejs.org/dist/v8.12.0/node-v8.12.0-x64.msi) The default installation options are appropriate. ## Installing Ruby -[https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.3.3.exe](https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.3.3.exe) +[https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-2.5.1-2/rubyinstaller-devkit-2.5.1-2-x86.exe](https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-2.5.1-2/rubyinstaller-devkit-2.5.1-2-x86.exe) -This documentation assumes an installation path of `c:/Ruby233`. +This documentation assumes an installation path of `c:\Ruby251`. When installing Ruby: - On 'Installation Destination and Optional Tasks': - Set an installation path of `c:/Ruby233`. + Set an installation path of `c:\Ruby251`. Check 'Add Ruby executables to your PATH'. -### Installing Ruby DevKit: + Uncheck 'Associate .rb and .rbw files with this Ruby installation' and 'Use UTF-8 as default external encoding'. + +- On 'Select Components': -[https://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe](https://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe) + Check 'MSYS2 development toolchain 2018-06-24'. -This documentation assumes an installation path of `c:/RubyDevKit`. +- On 'Completing the Ruby 2.5.1-2-x86 with MSYS2 Setup Wizard': -When installing the Ruby DevKit: + Check 'Run 'ridk install' to setup MSYS2 and development toolchain. -- Extract to `c:/RubyDevKit`. +- On 'Ruby Installer 2 for Windows' -- Install the DevKit into the Ruby installation: + Press Enter for '[1, 2, 3]'. - ~~~ - cd c:/RubyDevKit - ruby dk.rb init - ruby dk.rb install - ~~~ + Press Enter for '[]'. diff --git a/readme/invoke.md b/readme/invoke.md index 8f14fe2e..a0243658 100644 --- a/readme/invoke.md +++ b/readme/invoke.md @@ -30,6 +30,18 @@ Compile `requirements3.txt` from `requirements3.txt.in`. `invoke compile_requirements` +### dependencies_ensure + +Ensure dependencies are installed. + +`invoke dependencies_ensure` + +### dependencies_upgrade_base + +Pull changes to this project template. + +`invoke dependencies_upgrade_base` + ### docker_console If the project uses Docker, open a console in the Docker virtual machine. @@ -78,15 +90,3 @@ Serve the site on port 4000, using the test configuration in `_config-test.yml`. `invoke serve_test` -### update_base - -Pull updates to this template. - -`invoke update_base` - -### update_dependencies - -Ensure dependencies are installed. - -`invoke update_depenencies` - diff --git a/requirements3.txt b/requirements3.txt index dc8f56cb..4ad627d1 100644 --- a/requirements3.txt +++ b/requirements3.txt @@ -4,13 +4,17 @@ # # pip-compile --output-file requirements3.txt requirements3.in # +certifi==2018.8.24 # via requests +chardet==3.0.4 # via requests click==6.7 # via pip-tools first==2.0.1 # via pip-tools +idna==2.7 # via requests invoke==0.12.2 -jinja2==2.9.6 -MarkupSafe==1.0 # via jinja2 +jinja2==2.10 +markupsafe==1.0 # via jinja2 nose==1.3.7 -pip-tools==1.9.0 -pyyaml==3.12 -requests==2.14.2 -six==1.10.0 # via pip-tools +pip-tools==2.0.2 +pyyaml==3.13 +requests==2.19.1 +six==1.11.0 # via pip-tools +urllib3==1.23 # via requests diff --git a/tasks.py b/tasks.py index 9c84dbf3..28c5e8d2 100644 --- a/tasks.py +++ b/tasks.py @@ -3,9 +3,9 @@ task_module_names = [ 'base.invoke.tasks.compile', + 'base.invoke.tasks.dependencies', 'base.invoke.tasks.docker', 'base.invoke.tasks.jekyll', - 'base.invoke.tasks.update', ] # Create our task collection