<section data-background-image="https://raw.githubusercontent.com/MaxUlysse/maxulysse.github.io/master/assets/img/svg/green_white_bg.svg" data-background-opacity=0.9 >
<a href="https://www.nf-co.re"><img src="https://raw.githubusercontent.com/nf-core/logos/master/byte-size-logos/bytesize-darkbg.svg" width="65%"><img></a>
# \#11: Development environments & workflows
Phil Ewels / <img src="https://openmoji.org/data/color/svg/E040.svg" width=50>@tallphil / <img src="https://openmoji.org/data/color/svg/E045.svg" width=50> @ewels
SciLifeLab, Sweden
---
# Overview
- <img src="https://openmoji.org/data/color/svg/E045.svg" width=50> Git + GitHub configuration
- 💻 VSCode configuration
- 💥 Pipeline testing
---
# Git + GitHub configuration
- <img src="https://openmoji.org/data/color/svg/E045.svg" width=50> Set up your fork on GitHub
- 💾 Configure your local clone
- ♻️ Pull in updates
- 🚀 Work on other people's code
---
# Git + GitHub configuration
Local clone setup
```bash
git clone git@github.com:username/repo.git
cd repo
git remote add upstream git@github.com:nf-core/repo.git
```
---
# Git + GitHub configuration
Pull updates
```bash
git status # check if we have any uncommitted changes
git pull # implicitly pulls default remote - origin
git pull upstream dev
git push # implicity pushes to default remote - origin
```
---
# Git + GitHub configuration
Do work
```bash
git checkout -b my_feature
git commit -am "I did a thing"
git push -u origin my_feature
```
```
remote:
remote: Create a pull request for 'my_feature' on GitHub by visiting:
remote: https://github.com/user/repo/pull/new/my_feature
remote:
```
---
# Git + GitHub configuration
#### Shortcuts
- `gupdate` - https://github.com/ewels/dotfiles
- `gh pr checkout 123` - https://cli.github.com
---
# VSCode configuration
- 💪 Autoformat all the things
- 💥 Merge conflicts
- ⚒️ Useful plugins
---
# VSCode configuration
#### Plugins
- VSCode plugins: [_**"nf-core-extensionpack"**_](https://marketplace.visualstudio.com/items?itemName=nf-core.nf-core-extensionpack) 🚀
- Also: [🌈🦄✨ indent-rainbow
](https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow)
---
# Pipeline testing
- 📃 Running tests locally / CI test logs
- 🙈 Ignoring nf-core lint tests
- 🐳 Building Docker locally
- 😣 Troubleshooting conda / inside containers
---
## Ignoring nf-core lint tests
`.nf-core-lint.yml`
```yaml
lint_test_name: False
other_test:
- file_name.nf
- for_example.txt
```
https://nf-co.re/tools-docs/lint_tests/
<aside class="notes">
Maybe soon `.nf-core.yml`? See [tools#1051](https://github.com/nf-core/tools/issues/1051)
</aside>
---
## Building Docker locally
```bash
docker build . -t nfcore/mypipeline:dev
docker tag nfcore/mypipeline:dev nfcore/mypipeline:1.0.1
```
> `nfcore` not `nf-core`! 😫
---
## Troubleshooting conda
- 🐍 Just use `mamba` instead
- 💬 Ask for help on Bioconda Gitter
---
## Troubleshooting inside containers
```bash
docker exec -it nfcore/mypipeline:dev sh
```
---
<section .slide: data-background-image="https://raw.githubusercontent.com/MaxUlysse/maxulysse.github.io/master/assets/img/svg/green_white_bg.svg" data-background-opacity=0.9 >
## Need help?
See also - [Bytesize 4: GitHub contribution basics](https://nf-co.re/events/2021/bytesize-4-github-contribution-basics)
Chat: [`https://nf-co.re/join`](https://nf-co.re/join) <img src="https://cdn.brandfolder.io/5H442O3W/at/pl546j-7le8zk-6gwiyo/Slack_Mark.svg" width=10%></img>
<div style="margin-top:2em"> </div>
## <a href="https://nf-co.re/" style="color: #000000; font-family:Monaco, monospace; font-weight:bold;">https://nf-co.re/</a>
<p align="center">
Follow nf-core on
<a href="https://www.twitter.com/nf_core"><img src="https://openmoji.org/data/color/svg/E040.svg" width=6%></a>
<a href="https://github.com/nf-core"><img src="https://openmoji.org/data/color/svg/E045.svg" width=6%></a>
<a href="https://www.youtube.com/c/nf-core"><img src="https://openmoji.org/data/color/svg/E044.svg" width=6%></a>
</a>
</p>
<style>
.reveal section img { background:none; border:none; box-shadow:none; }
body {
background-image: url(https://raw.githubusercontent.com/nf-core/logos/master/nf-core-logos/nf-core-logo-square.svg);
background-size: 7.5%;
background-repeat: no-repeat;
background-position: 3% 96%;
background-color: #181a1b;
}
.reveal body {
font-family: 'Roboto', sans-serif;
font-weight: 300;
color: white;
}
.reveal p {
font-family: 'Roboto', sans-serif;
font-weight: 300;
color: white;
}
.reveal h1 {
font-family: 'Roboto', sans-serif;
font-style: bold;
font-weight: 400;
color: white;
font-size: 62px;
}
.reveal h2 {
font-family: 'Roboto', sans-serif;
font-weight: 300;
color: white;
}
.reveal h3 {
font-family: 'Roboto', sans-serif;
font-style: italic;
font-weight: 300;
color: white;
}
.reveal p {
font-family: 'Roboto', sans-serif;
font-weight: 300;
color: white;
}
.reveal li {
font-family: 'Roboto', sans-serif;
font-weight: 300;
color: white;
}
.reveal pre {
background-color: #272822 !important;
display: inline-block;
border-radius: 7px;
color: #aaaba9;
}
.reveal pre code {
color: #eeeeee;
background-color: #272822;
font-size: 100%;
}
.reveal code {
background-color: #272822;
font-size: 75%;
}
.reveal .progress {
color: #24B064;
}
.reveal .controls button {
color: #24B064;
}
.reveal blockquote {
display: block;
position: relative;
width: 90%;
margin: 20px auto;
padding: 5px;
background: rgba(255, 255, 255, 0.05);
box-shadow: 0px 0px 2px rgb(0 0 0 / 20%);
}
</style>
{"metaMigratedAt":"2023-06-15T23:54:08.837Z","metaMigratedFrom":"YAML","title":"nf-core/bytesize - Development environments & workflows","breaks":true,"contributors":"[{\"id\":\"41476d21-4b95-4fee-8577-7df5bb3e16ba\",\"add\":3133,\"del\":1255}]"}