diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..6cc9e527 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,9 @@ +Please delete the text below before submitting your contribution. + +--- + +Thanks for contributing! If this contribution is for instructor training, please send an email to checkout@carpentries.org with a link to this contribution so we can record your progress. You’ve completed your contribution step for instructor checkout just by submitting this contribution. + +Please keep in mind that lesson maintainers are volunteers and it may be some time before they can respond to your contribution. Although not all contributions can be incorporated into the lesson materials, we appreciate your time and effort to improve the curriculum. If you have any questions about the lesson maintenance process or would like to volunteer your time as a contribution reviewer, please contact Kate Hertweck (k8hertweck@gmail.com). + +--- diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..6cc9e527 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,9 @@ +Please delete the text below before submitting your contribution. + +--- + +Thanks for contributing! If this contribution is for instructor training, please send an email to checkout@carpentries.org with a link to this contribution so we can record your progress. You’ve completed your contribution step for instructor checkout just by submitting this contribution. + +Please keep in mind that lesson maintainers are volunteers and it may be some time before they can respond to your contribution. Although not all contributions can be incorporated into the lesson materials, we appreciate your time and effort to improve the curriculum. If you have any questions about the lesson maintenance process or would like to volunteer your time as a contribution reviewer, please contact Kate Hertweck (k8hertweck@gmail.com). + +--- diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000..659aeece --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +FIXME: list authors' names and email addresses. diff --git a/CITATION b/CITATION new file mode 100644 index 00000000..d5bfc2b3 --- /dev/null +++ b/CITATION @@ -0,0 +1 @@ +FIXME: describe how to cite this lesson. diff --git a/CONDUCT.md b/CONDUCT.md index e83b08fa..c323ec53 100644 --- a/CONDUCT.md +++ b/CONDUCT.md @@ -10,35 +10,8 @@ updating documentation, submitting pull requests or patches, and other activities. -We are committed to making participation in this project a harassment-free experience for everyone, -regardless of level of experience, -gender, -gender identity and expression, -sexual orientation, -disability, -personal appearance, -body size, -race, -ethnicity, -age, -or religion. +The CWL Project is dedicated to providing a harassment-free experience for everyone, regardless of gender, gender identity and expression, sexual orientation, disability, physical appearance, body size, age, race, or religion. We do not tolerate harassment of participants in any form. -Examples of unacceptable behavior by participants include the use of sexual language or imagery, -derogatory comments or personal attacks, -trolling, -public or private harassment, -insults, -or other unprofessional conduct. +This code of conduct applies to all CWL Project spaces, including the Google Group, the Gitter chat room, the Google Hangouts chats, both online and off. Anyone who violates this code of conduct may be sanctioned or expelled from these spaces at the discretion of the leadership team. -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. -Project maintainers who do not follow the Code of Conduct may be removed from the project team. - -Instances of abusive, harassing, or otherwise unacceptable behavior -may be reported by opening an issue or contacting one or more of the project maintainers. - -This Code of Conduct is adapted from -the [Contributor Covenant][contrib-covenant] Version 1.0.0. - -[contrib-covenant]: http://contributor-covenant.org/ +For more details, see our https://github.com/common-workflow-language/common-workflow-language/blob/master/CODE_OF_CONDUCT.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..5d15dc0b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,150 @@ +# Contributing + +The [Common Workflow Language project](cwl-site) is an open source project, +and we welcome contributions of all kinds: +new lessons, +fixes to existing material, +bug reports, +and reviews of proposed changes are all welcome. + +## Contributor Agreement + +By contributing, +you agree that we may redistribute your work under [our license](LICENSE.md). +In exchange, +we will address your issues and/or assess your change proposal as promptly as we can, +and help you become a member of our community. +Everyone involved in the [Common Workflow Language project](cwl-site) +agrees to abide by our [code of conduct](CONDUCT.md). + +## How to Contribute + +The easiest way to get started is to file an issue +to tell us about a spelling mistake, +some awkward wording, +or a factual error. +This is a good way to introduce yourself +and to meet some of our community members. + +1. If you do not have a [GitHub][github] account, + you can [send us comments by email][contact]. + However, + we will be able to respond more quickly if you use one of the other methods described below. + +2. If you have a [GitHub][github] account, + or are willing to [create one][github-join], + but do not know how to use Git, + you can report problems or suggest improvements by [creating an issue][issues]. + This allows us to assign the item to someone + and to respond to it in a threaded discussion. + +3. If you are comfortable with Git, + and would like to add or change material, + you can submit a pull request (PR). + Instructions for doing this are [included below](#using-github). + +## Where to Contribute + +1. If you wish to change this lesson, + please work in , + which can be viewed at . + +2. If you wish to change the example lesson, + please work in , + which documents the format of our lessons + and can be viewed at . + +3. If you wish to change the template used for workshop websites, + please work in . + The home page of that repository explains how to set up workshop websites, + while the extra pages in + provide more background on our design choices. + +4. If you wish to change CSS style files, tools, + or HTML boilerplate for lessons or workshops stored in `_includes` or `_layouts`, + please work in . + +## What to Contribute + +There are many ways to contribute, +from writing new exercises and improving existing ones +to updating or filling in the documentation +and and submitting [bug reports][issues] +about things that don't work, aren't clear, or are missing. +If you are looking for ideas, +please see [the list of issues for this repository][issues], +or the issues for [Common Workflow Language](cwl-issues) project itself. + +Comments on issues and reviews of pull requests are just as welcome: +we are smarter together than we are on our own. +Reviews from novices and newcomers are particularly valuable: +it's easy for people who have been using these lessons for a while +to forget how impenetrable some of this material can be, +so fresh eyes are always welcome. + + +## Using GitHub + +If you choose to contribute via GitHub, +you may want to look at +[How to Contribute to an Open Source Project on GitHub][how-contribute]. +In brief: + +1. The published copy of the lesson is in the `gh-pages` branch of the repository + (so that GitHub will regenerate it automatically). + Please create all branches from that, + and merge the [master repository][repo]'s `gh-pages` branch into your `gh-pages` branch + before starting work. + Please do *not* work directly in your `gh-pages` branch, + since that will make it difficult for you to work on other contributions. + +2. We use [GitHub flow][github-flow] to manage changes: + 1. Create a new branch in your desktop copy of this repository for each significant change. + 2. Commit the change in that branch. + 3. Push that branch to your fork of this repository on GitHub. + 4. Submit a pull request from that branch to the [master repository][repo]. + 5. If you receive feedback, + make changes on your desktop and push to your branch on GitHub: + the pull request will update automatically. + +Each lesson has two maintainers who review issues and pull requests +or encourage others to do so. +The maintainers are community volunteers, +and have final say over what gets merged into the lesson. + +## Other Resources + +General discussion of [Common Workflow Language](cwl-site) project +happens on the [discussion mailing list][discuss-list], +which everyone is welcome to join. + +[dc-issues]: https://github.com/issues?q=user%3Adatacarpentry +[dc-lessons]: http://datacarpentry.org/lessons/ +[dc-site]: http://datacarpentry.org/ +[discuss-list]: https://groups.google.com/forum/#!forum/common-workflow-language +[github]: http://github.com +[github-flow]: https://guides.github.com/introduction/flow/ +[github-join]: https://github.com/join +[how-contribute]: https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github +[issues]: https://github.com/common-workflow-language/user_guide/issues +[repo]: https://github.com/common-workflow-language/user_guide +[swc-issues]: https://github.com/issues?q=user%3Aswcarpentry +[swc-lessons]: http://software-carpentry.org/lessons/ +[swc-site]: http://software-carpentry.org/ +[cwl-site]: http://www.commonwl.org/ diff --git a/LICENSE.md b/LICENSE.md index 179758a7..68a1b139 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -5,8 +5,12 @@ permalink: /license/ --- ## Instructional Material -All Software Carpentry and Data Carpentry instructional material is -made available under the [Creative Commons Attribution +This material is derived from a framework created by the Software Carpentry +and Data Carpentry projects under the [Creative Commons Attribution +license][cc-by-human]. + +All Common Workflow Language project instructional material and changes +to the structure are also made available under the [Creative Commons Attribution license][cc-by-human]. The following is a human-readable summary of (and not a substitute for) the [full legal text of the CC BY 4.0 license][cc-by-legal]. @@ -24,9 +28,9 @@ license terms. Under the following terms: * **Attribution**---You must give appropriate credit (mentioning that - your work is derived from work that is Copyright © Software - Carpentry and, where practical, linking to - http://software-carpentry.org/), provide a [link to the + your work is derived from work that is Copyright © the Common Workflow + Language project, and Copyright © Software Carpentry, and, where practical, linking to + http://www.commonwl.org/ and http://software-carpentry.org/), provide a [link to the license][cc-by-human], and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. @@ -48,28 +52,15 @@ Notices: ## Software Except where otherwise noted, the example programs and other software -provided by Software Carpentry and Data Carpentry are made available under the +provided by Common Workflow Language project are made available under the [OSI][osi]-approved -[MIT license][mit-license]. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +[Apache 2.0 license][apache-2.0-license]. + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. ## Trademark @@ -78,6 +69,6 @@ are registered trademarks of [NumFOCUS][numfocus]. [cc-by-human]: https://creativecommons.org/licenses/by/4.0/ [cc-by-legal]: https://creativecommons.org/licenses/by/4.0/legalcode -[mit-license]: http://opensource.org/licenses/mit-license.html +[apache-2.0-license]: https://opensource.org/licenses/Apache-2.0 [numfocus]: http://numfocus.org/ [osi]: http://opensource.org diff --git a/README.md b/README.md new file mode 100644 index 00000000..a17613b3 --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ + +WIP re-structuring and expansion of the CWL v1.0 user guide + +http://www.commonwl.org/v1.0/UserGuide.html +which is built from +https://github.com/common-workflow-language/common-workflow-language/blob/master/v1.0/UserGuide.yml diff --git a/_config.yml b/_config.yml new file mode 100644 index 00000000..06bd6d1d --- /dev/null +++ b/_config.yml @@ -0,0 +1,73 @@ +#------------------------------------------------------------ +# Values for this lesson. +#------------------------------------------------------------ + +# Which carpentry is this ("swc", "dc", "lc", or "cwl")? +carpentry: "cwl" + +# Overall title for pages. +title: "Lesson Title" + +# Contact. This *must* include the protocol: if it's an email +# address, it must look like "mailto:lessons@software-carpentry.org", +# or if it's a URL, "https://gitter.im/username/ProjectName". +contact: "mailto:lessons@software-carpentry.org" + +#------------------------------------------------------------ +# Generic settings (should not need to change). +#------------------------------------------------------------ + +# What kind of thing is this ("workshop" or "lesson")? +kind: "lesson" + +# Magic to make URLs resolve both locally and on GitHub. +# See https://help.github.com/articles/repository-metadata-on-github-pages/. +repository: / + +# Sites. +amy_site: "https://amy.software-carpentry.org/workshops" +dc_site: "http://datacarpentry.org" +swc_github: "https://github.com/swcarpentry" +swc_site: "https://software-carpentry.org" +swc_pages: "https://swcarpentry.github.io" +lc_site: "http://librarycarpentry.github.io/" +template_repo: "https://github.com/swcarpentry/styles" +example_repo: "https://github.com/swcarpentry/lesson-example" +example_site: "https://swcarpentry.github.com/lesson-example" +workshop_repo: "https://github.com/swcarpentry/workshop-template" +workshop_site: "https://swcarpentry.github.io/workshop-template" +training_site: "https://swcarpentry.github.io/instructor-training" + +# Surveys. +pre_survey: "https://www.surveymonkey.com/r/swc_pre_workshop_v1?workshop_id=" +post_survey: "https://www.surveymonkey.com/r/swc_post_workshop_v1?workshop_id=" +training_post_survey: "https://www.surveymonkey.com/r/post-instructor-training" + +# Start time in minutes (0 to be clock-independent, 540 to show a start at 09:00 am). +start_time: 0 + +# Specify that things in the episodes collection should be output. +collections: + episodes: + output: true + permalink: /:path/ + extras: + output: true + +# Set the default layout for things in the episodes collection. +defaults: + - values: + root: .. + - scope: + path: "" + type: episodes + values: + layout: episode + +# Files and directories that are not to be copied. +exclude: + - Makefile + - bin + +# Turn off built-in syntax highlighting. +highlighter: false diff --git a/_episodes/01-introduction.md b/_episodes/01-introduction.md new file mode 100644 index 00000000..9bed75fc --- /dev/null +++ b/_episodes/01-introduction.md @@ -0,0 +1,15 @@ +--- +title: "Introduction" +teaching: 0 +exercises: 0 +questions: +- "Key question" +objectives: +- "First objective." +keypoints: +- "First key point." +--- +Content here + +{% include links.md %} + diff --git a/_extras/about.md b/_extras/about.md new file mode 100644 index 00000000..aa7beea3 --- /dev/null +++ b/_extras/about.md @@ -0,0 +1,6 @@ +--- +layout: page +title: About +permalink: /about/ +--- +{% include carpentries.html %} diff --git a/_extras/discuss.md b/_extras/discuss.md new file mode 100644 index 00000000..1d467a48 --- /dev/null +++ b/_extras/discuss.md @@ -0,0 +1,6 @@ +--- +layout: page +title: Discussion +permalink: /discuss/ +--- +FIXME diff --git a/_extras/figures.md b/_extras/figures.md new file mode 100644 index 00000000..de99a578 --- /dev/null +++ b/_extras/figures.md @@ -0,0 +1,6 @@ +--- +layout: page +title: Figures +permalink: /figures/ +--- +{% include all_figures.html %} diff --git a/_extras/guide.md b/_extras/guide.md new file mode 100644 index 00000000..0bad9951 --- /dev/null +++ b/_extras/guide.md @@ -0,0 +1,6 @@ +--- +layout: page +title: "Instructor Notes" +permalink: /guide/ +--- +FIXME diff --git a/_includes/all_figures.html b/_includes/all_figures.html new file mode 100644 index 00000000..c341a403 --- /dev/null +++ b/_includes/all_figures.html @@ -0,0 +1 @@ + diff --git a/_includes/carpentries.html b/_includes/carpentries.html index a0e0181f..4d5c9060 100644 --- a/_includes/carpentries.html +++ b/_includes/carpentries.html @@ -29,10 +29,10 @@
- Library Carpentry logo + Library Carpentry logo
- Library Carpentry is made by librarians to help librarians + Library Carpentry is made by librarians to help librarians automate repetitive, boring, error-prone tasks; create, maintain and analyse sustainable and reusable data; work effectively with IT and systems colleagues; diff --git a/_includes/dc/intro.html b/_includes/dc/intro.html new file mode 100644 index 00000000..741aeebb --- /dev/null +++ b/_includes/dc/intro.html @@ -0,0 +1,18 @@ +

+ Data Carpentry + aims to help researchers get their work done + in less time and with less pain + by teaching them basic research computing skills. + This hands-on workshop will cover basic concepts and tools, + including program design, version control, data management, + and task automation. + Participants will be encouraged to help one another + and to apply what they have learned to their own research problems. +

+

+ + For more information on what we teach and why, + please see our paper + "Best Practices for Scientific Computing". + +

diff --git a/_includes/dc/schedule.html b/_includes/dc/schedule.html new file mode 100644 index 00000000..6894a19e --- /dev/null +++ b/_includes/dc/schedule.html @@ -0,0 +1,24 @@ +
+
+

Day 1

+ + + + + + + +
09:00 Automating tasks with the Unix shell
10:30 Coffee
12:00 Lunch break
13:00 Building programs with Python
14:30 Coffee
16:00 Wrap-up
+
+
+

Day 2

+ + + + + + + +
09:00 Version control with Git
10:30 Coffee
12:00 Lunch break
13:00 Managing data with SQL
14:30 Coffee
16:00 Wrap-up
+
+
diff --git a/_includes/dc/syllabus.html b/_includes/dc/syllabus.html new file mode 100644 index 00000000..a325ceec --- /dev/null +++ b/_includes/dc/syllabus.html @@ -0,0 +1,96 @@ +
+
+

The Unix Shell

+
    +
  • Files and directories
  • +
  • History and tab completion
  • +
  • Pipes and redirection
  • +
  • Looping over files
  • +
  • Creating and running shell scripts
  • +
  • Finding things
  • +
  • Reference...
  • +
+
+
+

Programming in Python

+
    +
  • Using libraries
  • +
  • Working with arrays
  • +
  • Reading and plotting data
  • +
  • Creating and using functions
  • +
  • Loops and conditionals
  • +
  • Defensive programming
  • +
  • Using Python from the command line
  • +
  • Reference...
  • +
+
+ + +
+ +
+
+

Version Control with Git

+
    +
  • Creating a repository
  • +
  • Recording changes to files: add, commit, ...
  • +
  • Viewing changes: status, diff, ...
  • +
  • Ignoring files
  • +
  • Working on the web: clone, pull, push, ...
  • +
  • Resolving conflicts
  • +
  • Open licenses
  • +
  • Where to host work, and why
  • +
  • Reference...
  • +
+
+ +
+

Open Refine

+
    +
  • Introduction to OpenRefine
  • +
  • Importing data
  • +
  • Basic functions
  • +
  • Advanced Functions
  • +
  • Reference...
  • +
+
+
diff --git a/_includes/dc/who.html b/_includes/dc/who.html new file mode 100644 index 00000000..2d8e94ae --- /dev/null +++ b/_includes/dc/who.html @@ -0,0 +1,8 @@ +

+ Who: + The course is aimed at graduate students and other researchers. + + You don't need to have any previous knowledge of the tools + that will be presented at the workshop. + +

diff --git a/_includes/episode_navbar.html b/_includes/episode_navbar.html index 1f6e033d..b9f85f6b 100644 --- a/_includes/episode_navbar.html +++ b/_includes/episode_navbar.html @@ -14,7 +14,6 @@

{% if include.episode_navbar_title %}

{{ site.title }}

-

{{ page.title }}

{% endif %}
diff --git a/_includes/episode_title.html b/_includes/episode_title.html index 5b9c821c..d0abc654 100644 --- a/_includes/episode_title.html +++ b/_includes/episode_title.html @@ -1,42 +1,9 @@ -{% comment %} - Find previous and next episodes (if any). -{% endcomment %} -{% for episode in site.episodes %} - {% if episode.url == page.url %} - {% unless forloop.first %} - {% assign prev_episode = prev %} - {% endunless %} - {% unless forloop.last %} - {% assign next_episode = site.episodes[forloop.index] %} - {% endunless %} - {% endif %} - {% assign prev = episode %} -{% endfor %} - -{% comment %} - Display title and prev/next links. -{% endcomment %}
-

- {% if prev_episode %} - - {% else %} - - {% endif %} -

-

{{ site.title }}

{{ page.title }}

-

- {% if next_episode %} - - {% else %} - - {% endif %} -

diff --git a/_includes/lc/intro.html b/_includes/lc/intro.html new file mode 100644 index 00000000..6794b542 --- /dev/null +++ b/_includes/lc/intro.html @@ -0,0 +1,19 @@ +

+ Library Carpentry + is made by librarians, for librarians to help you: +

+
    +
  • automate repetitive, boring, error-prone tasks
  • +
  • create, maintain and analyse sustainable and reusable data
  • +
  • work effectively with IT and systems colleagues
  • +
  • better understand the use of software in research
  • +
  • and much more...
  • +
+

+ + Library Carpentry introduces you to the fundamentals of computing + and provides you with a platform for further self-directed learning. + For more information on what we teach and why, please see our paper + "Library Carpentry: software skills training for library professionals". + +

diff --git a/_includes/lc/schedule.html b/_includes/lc/schedule.html new file mode 100644 index 00000000..cc2b5920 --- /dev/null +++ b/_includes/lc/schedule.html @@ -0,0 +1,24 @@ +
+
+

Day 1

+ + + + + + + +
09:00 Data Intro for Librarians
10:30 Coffee
12:00 Lunch break
13:00 Shell Lessons for Libraries
14:30 Coffee
16:00 Wrap-up
+
+
+

Day 2

+ + + + + + + +
09:00 Git Intro for Librarians
10:30 Coffee
12:00 Lunch break
13:00 OpenRefine for Librarians
14:30 Coffee
16:00 Wrap-up
+
+
diff --git a/_includes/lc/syllabys.html b/_includes/lc/syllabys.html new file mode 100644 index 00000000..4dc20776 --- /dev/null +++ b/_includes/lc/syllabys.html @@ -0,0 +1,69 @@ +
+
+

Data Intro

+
    +
  • Intro to data
  • +
  • Jargon busting
  • +
  • Keyboard shortcuts
  • +
  • Plain text formats
  • +
  • Naming files
  • +
  • Regular expressions
  • +
  • Reference...
  • +
+
+
+

The Unix Shell

+
    +
  • Files and directories
  • +
  • History and tab completion
  • +
  • Counting and sorting contents in files
  • +
  • Pipes and redirection
  • +
  • Mining or searching in files
  • +
  • Reference...
  • +
+
+ +
+ +
+
+

Version Control with Git

+
    +
  • Creating a repository
  • +
  • Configuring git
  • +
  • Recording changes to files: add, commit, ...
  • +
  • Viewing state changes with status
  • +
  • Working on the web: clone, pull, push, ...
  • +
  • Where to host work, and why
  • +
  • Reference...
  • +
+
+
+
+

Open Refine

+
    +
  • Introduction to OpenRefine
  • +
  • Importing data
  • +
  • Basic functions
  • +
  • Advanced Functions
  • +
  • Reference...
  • +
+
+
+
+ diff --git a/_includes/lc/who.html b/_includes/lc/who.html new file mode 100644 index 00000000..fd9b38c4 --- /dev/null +++ b/_includes/lc/who.html @@ -0,0 +1,8 @@ +

+ Who: + The course is for librarians, archivists, and other information workers. + + You don't need to have any previous knowledge of the tools that + will be presented at the workshop. + +

diff --git a/_includes/links.md b/_includes/links.md new file mode 100644 index 00000000..a163786d --- /dev/null +++ b/_includes/links.md @@ -0,0 +1,35 @@ +[cc-by-human]: https://creativecommons.org/licenses/by/4.0/ +[cc-by-legal]: https://creativecommons.org/licenses/by/4.0/legalcode +[concept-maps]: http://swcarpentry.github.io/instructor-training/08-memory/ +[contact]: mailto:lessons@software-carpentry.org +[contrib-covenant]: http://contributor-covenant.org/ +[contributing]: {{ site.github.repository_url }}/blob/gh-pages/CONTRIBUTING.md +[cran-checkpoint]: https://cran.r-project.org/web/packages/checkpoint/index.html +[cran-knitr]: https://cran.r-project.org/web/packages/knitr/index.html +[cran-stringr]: https://cran.r-project.org/web/packages/stringr/index.html +[github-importer]: https://import.github.com/ +[importer]: http://import.github.com/new +[jekyll-collection]: https://jekyllrb.com/docs/collections/ +[jekyll-install]: https://jekyllrb.com/docs/installation/ +[jekyll-windows]: http://jekyll-windows.juthilo.com/ +[jekyll]: https://jekyllrb.com/ +[jupyter]: https://jupyter.org/ +[mit-license]: http://opensource.org/licenses/mit-license.html +[morea]: https://morea-framework.github.io/ +[numfocus]: http://numfocus.org/ +[osi]: http://opensource.org +[pandoc]: https://pandoc.org/ +[paper-now]: https://github.com/PeerJ/paper-now +[python-gapminder]: https://swcarpentry.github.io/python-novice-gapminder/ +[pyyaml]: https://pypi.python.org/pypi/PyYAML +[r-markdown]: http://rmarkdown.rstudio.com/ +[rstudio]: https://www.rstudio.com/ +[ruby-install-guide]: https://www.ruby-lang.org/en/downloads/ +[ruby-installer]: http://rubyinstaller.org/ +[rubygems]: https://rubygems.org/pages/download/ +[styles]: https://github.com/swcarpentry/styles/ +[training]: http://swcarpentry.github.io/instructor-training/ +[workshop-repo]: {{ site.workshop_repo }} +[yaml]: http://yaml.org/ +[coc]: https://software-carpentry.org/conduct/ +[coc-reporting]: https://software-carpentry.org/CoC-reporting/ \ No newline at end of file diff --git a/_includes/navbar.html b/_includes/navbar.html index 6b21afc7..7e2560d1 100644 --- a/_includes/navbar.html +++ b/_includes/navbar.html @@ -12,19 +12,7 @@ {% comment %} Select what logo to display. {% endcomment %} - {% if page.carpentry == "swc" %} - - - - {% elsif page.carpentry == "dc" %} - - - - {% elsif page.carpentry == "lc" %} - - - - {% elsif site.carpentry == "swc" %} + {% if site.carpentry == "swc" %} @@ -34,7 +22,7 @@ {% elsif site.carpentry == "lc" %} - + {% endif %} @@ -57,6 +45,8 @@ {% for episode in site.episodes %}
  • {{ episode.title }}
  • {% endfor %} + +
  • All in one page (Beta)
  • {% endif %} diff --git a/_includes/sc/intro.html b/_includes/sc/intro.html new file mode 100644 index 00000000..7b9fbf57 --- /dev/null +++ b/_includes/sc/intro.html @@ -0,0 +1,18 @@ +

    + Software Carpentry + aims to help researchers get their work done + in less time and with less pain + by teaching them basic research computing skills. + This hands-on workshop will cover basic concepts and tools, + including program design, version control, data management, + and task automation. + Participants will be encouraged to help one another + and to apply what they have learned to their own research problems. +

    +

    + + For more information on what we teach and why, + please see our paper + "Best Practices for Scientific Computing". + +

    diff --git a/_includes/sc/schedule.html b/_includes/sc/schedule.html new file mode 100644 index 00000000..6894a19e --- /dev/null +++ b/_includes/sc/schedule.html @@ -0,0 +1,24 @@ +
    +
    +

    Day 1

    + + + + + + + +
    09:00 Automating tasks with the Unix shell
    10:30 Coffee
    12:00 Lunch break
    13:00 Building programs with Python
    14:30 Coffee
    16:00 Wrap-up
    +
    +
    +

    Day 2

    + + + + + + + +
    09:00 Version control with Git
    10:30 Coffee
    12:00 Lunch break
    13:00 Managing data with SQL
    14:30 Coffee
    16:00 Wrap-up
    +
    +
    diff --git a/_includes/sc/syllabus.html b/_includes/sc/syllabus.html new file mode 100644 index 00000000..a325ceec --- /dev/null +++ b/_includes/sc/syllabus.html @@ -0,0 +1,96 @@ +
    +
    +

    The Unix Shell

    +
      +
    • Files and directories
    • +
    • History and tab completion
    • +
    • Pipes and redirection
    • +
    • Looping over files
    • +
    • Creating and running shell scripts
    • +
    • Finding things
    • +
    • Reference...
    • +
    +
    +
    +

    Programming in Python

    +
      +
    • Using libraries
    • +
    • Working with arrays
    • +
    • Reading and plotting data
    • +
    • Creating and using functions
    • +
    • Loops and conditionals
    • +
    • Defensive programming
    • +
    • Using Python from the command line
    • +
    • Reference...
    • +
    +
    + + +
    + +
    +
    +

    Version Control with Git

    +
      +
    • Creating a repository
    • +
    • Recording changes to files: add, commit, ...
    • +
    • Viewing changes: status, diff, ...
    • +
    • Ignoring files
    • +
    • Working on the web: clone, pull, push, ...
    • +
    • Resolving conflicts
    • +
    • Open licenses
    • +
    • Where to host work, and why
    • +
    • Reference...
    • +
    +
    + +
    +

    Open Refine

    +
      +
    • Introduction to OpenRefine
    • +
    • Importing data
    • +
    • Basic functions
    • +
    • Advanced Functions
    • +
    • Reference...
    • +
    +
    +
    diff --git a/_includes/sc/who.html b/_includes/sc/who.html new file mode 100644 index 00000000..2d8e94ae --- /dev/null +++ b/_includes/sc/who.html @@ -0,0 +1,8 @@ +

    + Who: + The course is aimed at graduate students and other researchers. + + You don't need to have any previous knowledge of the tools + that will be presented at the workshop. + +

    diff --git a/_includes/workshop_footer.html b/_includes/workshop_footer.html index 3ae63e6d..897e421d 100644 --- a/_includes/workshop_footer.html +++ b/_includes/workshop_footer.html @@ -3,14 +3,22 @@ {% endcomment %} diff --git a/_layouts/base.html b/_layouts/base.html index 365d2e50..deec7eda 100644 --- a/_layouts/base.html +++ b/_layouts/base.html @@ -18,6 +18,24 @@ {% elsif site.carpentry == "lc" %} + {% elsif site.carpentry == "cwl" %} + + + + + + + + + + + + + + + + + {% endif %} diff --git a/_layouts/break.html b/_layouts/break.html index 6e2a6a09..ac582324 100644 --- a/_layouts/break.html +++ b/_layouts/break.html @@ -2,6 +2,9 @@ layout: base --- {% include episode_navbar.html episode_navbar_title=true %} +
    +{% include episode_title.html %} {% include episode_break.html %} {{content}} +
    {% include episode_navbar.html episode_navbar_title=false %} diff --git a/_layouts/episode.html b/_layouts/episode.html index d774a681..0b276e77 100644 --- a/_layouts/episode.html +++ b/_layouts/episode.html @@ -2,7 +2,10 @@ layout: base --- {% include episode_navbar.html episode_navbar_title=true %} +
    +{% include episode_title.html %} {% include episode_overview.html %} {{content}} {% include episode_keypoints.html %} +
    {% include episode_navbar.html episode_navbar_title=false %} diff --git a/_layouts/workshop.html b/_layouts/workshop.html index 2f4cd304..66eaff81 100644 --- a/_layouts/workshop.html +++ b/_layouts/workshop.html @@ -34,6 +34,24 @@ {% elsif site.carpentry == "lc" %} + {% elsif site.carpentry == "cwl" %} + + + + + + + + + + + + + + + + + {% endif %} diff --git a/aio.md b/aio.md new file mode 100644 index 00000000..6d938523 --- /dev/null +++ b/aio.md @@ -0,0 +1,36 @@ +--- +layout: page +permalink: /aio/ +--- + +{% comment %} +Create anchor for each one of the episodes. +{% endcomment %} +{% for episode in site.episodes %} +
    +{% endfor %} diff --git a/assets/img/lc-icon-black.png b/assets/img/lc-icon-black.png new file mode 100644 index 00000000..e49c6d51 Binary files /dev/null and b/assets/img/lc-icon-black.png differ diff --git a/assets/img/lc-icon-black.svg b/assets/img/lc-icon-black.svg deleted file mode 100644 index df711892..00000000 --- a/assets/img/lc-icon-black.svg +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/js/lesson.js b/assets/js/lesson.js index c51dca64..185da920 100644 --- a/assets/js/lesson.js +++ b/assets/js/lesson.js @@ -3,7 +3,7 @@ $("table").addClass("table table-striped"); // Handle foldable challenges and solutions (on click and at start). -$(".challenge,.discussion,.solution").click(function(event) { +$(".solution").click(function(event) { var trigger = $(event.target).has(".fold-unfold").size() > 0 || $(event.target).filter(".fold-unfold").size() > 0; if (trigger) { @@ -12,7 +12,7 @@ $(".challenge,.discussion,.solution").click(function(event) { event.stopPropagation(); } }); -$(".challenge,.discussion,.solution").each(function() { +$(".solution").each(function() { $(">*:not(h2)", this).toggle(); var h2 = $("h2:first", this); h2.append(""); diff --git a/bin/generate_md_episodes.R b/bin/generate_md_episodes.R index 6d8a2d78..f2a40ba4 100644 --- a/bin/generate_md_episodes.R +++ b/bin/generate_md_episodes.R @@ -6,12 +6,12 @@ generate_md_episodes <- function() { if (!require("stringr")) stop("The package stringr is required for generating the lessons.") - if (require("checkpoint")) { + if (require("checkpoint") && packageVersion("checkpoint") >= '0.4.0') { required_pkgs <- - checkpoint:::projectScanPackages(project = "_episodes_rmd", - verbose=FALSE, use.knitr = TRUE)$pkgs + checkpoint:::scanForPackages(project = "_episodes_rmd", + verbose=FALSE, use.knitr = TRUE)$pkgs } else { - stop("The checkpoint package is required to build the lessons.") + stop("The checkpoint package (>= 0.4.0) is required to build the lessons.") } missing_pkgs <- required_pkgs[!(required_pkgs %in% rownames(installed.packages()))] @@ -22,7 +22,7 @@ generate_md_episodes <- function() { install.packages(missing_pkgs) } - ## find all the Rmd files, and generates the paths for their respective outputs + ## find all the Rmd files, and generate the paths for their respective outputs src_rmd <- list.files(pattern = "??-*.Rmd$", path = "_episodes_rmd", full.names = TRUE) dest_md <- file.path("_episodes", gsub("Rmd$", "md", basename(src_rmd))) diff --git a/bin/lesson_initialize.py b/bin/lesson_initialize.py index 540bb08c..fc7baf7d 100755 --- a/bin/lesson_initialize.py +++ b/bin/lesson_initialize.py @@ -278,6 +278,45 @@ FIXME ''' +ROOT_AIO_MD = '''\ +--- +layout: page +permalink: /aio/ +--- + +{% comment %} +Create anchor for each one of the episodes. +{% endcomment %} +{% for episode in site.episodes %} +
    +{% endfor %} +''' + EPISODES_INTRODUCTION_MD = '''\ --- title: "Introduction" @@ -340,6 +379,7 @@ ('index.md', ROOT_INDEX_MD), ('reference.md', ROOT_REFERENCE_MD), ('setup.md', ROOT_SETUP_MD), + ('aio.md', ROOT_AIO_MD), ('_episodes/01-introduction.md', EPISODES_INTRODUCTION_MD), ('_extras/about.md', EXTRAS_ABOUT_MD), ('_extras/discuss.md', EXTRAS_DISCUSS_MD), diff --git a/bin/workshop_check.py b/bin/workshop_check.py index d3051bf1..39ee0bfe 100755 --- a/bin/workshop_check.py +++ b/bin/workshop_check.py @@ -227,12 +227,12 @@ def check_eventbrite(eventbrite): @look_for_fixme -def check_etherpad(etherpad): +def check_collaborative_notes(collaborative_notes): """ - 'etherpad' must be a valid URL. + 'collaborative_notes' must be a valid URL. """ - return bool(re.match(URL_PATTERN, etherpad)) + return bool(re.match(URL_PATTERN, collaborative_notes)) @look_for_fixme @@ -292,7 +292,7 @@ def check_pass(value): 'eventbrite': (False, check_eventbrite, 'Eventbrite key appears invalid'), - 'etherpad': (False, check_etherpad, 'Etherpad URL appears invalid'), + 'collaborative_notes': (False, check_collaborative_notes, 'Collaborative Notes URL appears invalid'), 'venue': (False, check_pass, 'venue name not specified'), diff --git a/browserconfig.xml b/browserconfig.xml new file mode 100644 index 00000000..ebf220aa --- /dev/null +++ b/browserconfig.xml @@ -0,0 +1,2 @@ + +#ffffff diff --git a/cwl-android-icon-144x144.png b/cwl-android-icon-144x144.png new file mode 100644 index 00000000..04435561 Binary files /dev/null and b/cwl-android-icon-144x144.png differ diff --git a/cwl-android-icon-192x192.png b/cwl-android-icon-192x192.png new file mode 100644 index 00000000..b4d102ae Binary files /dev/null and b/cwl-android-icon-192x192.png differ diff --git a/cwl-android-icon-36x36.png b/cwl-android-icon-36x36.png new file mode 100644 index 00000000..40db3616 Binary files /dev/null and b/cwl-android-icon-36x36.png differ diff --git a/cwl-android-icon-48x48.png b/cwl-android-icon-48x48.png new file mode 100644 index 00000000..4f1fd560 Binary files /dev/null and b/cwl-android-icon-48x48.png differ diff --git a/cwl-android-icon-72x72.png b/cwl-android-icon-72x72.png new file mode 100644 index 00000000..6804d30f Binary files /dev/null and b/cwl-android-icon-72x72.png differ diff --git a/cwl-android-icon-96x96.png b/cwl-android-icon-96x96.png new file mode 100644 index 00000000..3f5c92f3 Binary files /dev/null and b/cwl-android-icon-96x96.png differ diff --git a/cwl-apple-icon-114x114.png b/cwl-apple-icon-114x114.png new file mode 100644 index 00000000..f9469fb3 Binary files /dev/null and b/cwl-apple-icon-114x114.png differ diff --git a/cwl-apple-icon-120x120.png b/cwl-apple-icon-120x120.png new file mode 100644 index 00000000..0546180a Binary files /dev/null and b/cwl-apple-icon-120x120.png differ diff --git a/cwl-apple-icon-144x144.png b/cwl-apple-icon-144x144.png new file mode 100644 index 00000000..04435561 Binary files /dev/null and b/cwl-apple-icon-144x144.png differ diff --git a/cwl-apple-icon-152x152.png b/cwl-apple-icon-152x152.png new file mode 100644 index 00000000..1dbc1824 Binary files /dev/null and b/cwl-apple-icon-152x152.png differ diff --git a/cwl-apple-icon-180x180.png b/cwl-apple-icon-180x180.png new file mode 100644 index 00000000..54bcd0ae Binary files /dev/null and b/cwl-apple-icon-180x180.png differ diff --git a/cwl-apple-icon-57x57.png b/cwl-apple-icon-57x57.png new file mode 100644 index 00000000..7302c2cd Binary files /dev/null and b/cwl-apple-icon-57x57.png differ diff --git a/cwl-apple-icon-60x60.png b/cwl-apple-icon-60x60.png new file mode 100644 index 00000000..dd95ac11 Binary files /dev/null and b/cwl-apple-icon-60x60.png differ diff --git a/cwl-apple-icon-72x72.png b/cwl-apple-icon-72x72.png new file mode 100644 index 00000000..6804d30f Binary files /dev/null and b/cwl-apple-icon-72x72.png differ diff --git a/cwl-apple-icon-76x76.png b/cwl-apple-icon-76x76.png new file mode 100644 index 00000000..9f1606e1 Binary files /dev/null and b/cwl-apple-icon-76x76.png differ diff --git a/cwl-apple-icon-precomposed.png b/cwl-apple-icon-precomposed.png new file mode 100644 index 00000000..fef1163a Binary files /dev/null and b/cwl-apple-icon-precomposed.png differ diff --git a/cwl-apple-icon.png b/cwl-apple-icon.png new file mode 100644 index 00000000..fef1163a Binary files /dev/null and b/cwl-apple-icon.png differ diff --git a/cwl-favicon-16x16.png b/cwl-favicon-16x16.png new file mode 100644 index 00000000..9e84474e Binary files /dev/null and b/cwl-favicon-16x16.png differ diff --git a/cwl-favicon-32x32.png b/cwl-favicon-32x32.png new file mode 100644 index 00000000..f8e32fc2 Binary files /dev/null and b/cwl-favicon-32x32.png differ diff --git a/cwl-favicon-96x96.png b/cwl-favicon-96x96.png new file mode 100644 index 00000000..3f5c92f3 Binary files /dev/null and b/cwl-favicon-96x96.png differ diff --git a/cwl-favicon.ico b/cwl-favicon.ico new file mode 100644 index 00000000..1c09d4fd Binary files /dev/null and b/cwl-favicon.ico differ diff --git a/cwl-ms-icon-144x144.png b/cwl-ms-icon-144x144.png new file mode 100644 index 00000000..04435561 Binary files /dev/null and b/cwl-ms-icon-144x144.png differ diff --git a/cwl-ms-icon-150x150.png b/cwl-ms-icon-150x150.png new file mode 100644 index 00000000..4c5e4ee4 Binary files /dev/null and b/cwl-ms-icon-150x150.png differ diff --git a/cwl-ms-icon-310x310.png b/cwl-ms-icon-310x310.png new file mode 100644 index 00000000..a6af6abd Binary files /dev/null and b/cwl-ms-icon-310x310.png differ diff --git a/cwl-ms-icon-70x70.png b/cwl-ms-icon-70x70.png new file mode 100644 index 00000000..2fda97ab Binary files /dev/null and b/cwl-ms-icon-70x70.png differ diff --git a/index.md b/index.md new file mode 100644 index 00000000..e2fcde36 --- /dev/null +++ b/index.md @@ -0,0 +1,10 @@ +--- +layout: lesson +root: . +--- +FIXME: home page introduction + +> ## Prerequisites +> +> FIXME +{: .prereq} diff --git a/manifest.json b/manifest.json new file mode 100644 index 00000000..dff895b5 --- /dev/null +++ b/manifest.json @@ -0,0 +1,41 @@ +{ + "name": "App", + "icons": [ + { + "src": "\/cwl-android-icon-36x36.png", + "sizes": "36x36", + "type": "image\/png", + "density": "0.75" + }, + { + "src": "\/cwl-android-icon-48x48.png", + "sizes": "48x48", + "type": "image\/png", + "density": "1.0" + }, + { + "src": "\/cwl-android-icon-72x72.png", + "sizes": "72x72", + "type": "image\/png", + "density": "1.5" + }, + { + "src": "\/cwl-android-icon-96x96.png", + "sizes": "96x96", + "type": "image\/png", + "density": "2.0" + }, + { + "src": "\/cwl-android-icon-144x144.png", + "sizes": "144x144", + "type": "image\/png", + "density": "3.0" + }, + { + "src": "\/cwl-android-icon-192x192.png", + "sizes": "192x192", + "type": "image\/png", + "density": "4.0" + } + ] +} diff --git a/reference.md b/reference.md new file mode 100644 index 00000000..87a20cca --- /dev/null +++ b/reference.md @@ -0,0 +1,8 @@ +--- +layout: reference +permalink: /reference/ +--- + +## Glossary + +FIXME diff --git a/setup.md b/setup.md new file mode 100644 index 00000000..2dc2e460 --- /dev/null +++ b/setup.md @@ -0,0 +1,6 @@ +--- +layout: page +title: Setup +permalink: /setup/ +--- +FIXME