diff --git a/content/authors/marcel_rd.md b/content/authors/marcel_rd.md
new file mode 100644
index 0000000000..6a91b237ff
--- /dev/null
+++ b/content/authors/marcel_rd.md
@@ -0,0 +1,14 @@
+---
+name: Marcel Ribeiro-Dantas
+avatar: marcel.jpg
+---
+
+Early Stage Researcher at [Institut Curie](https://intstitut-curie.org) with
+over 10 years of experience in the field of biomedical engineering and health
+informatics. Areas of interest include Causal Inference, Artificial
+Intelligence, and Data Science. Degrees in Computer and Automation Engineering
+(Eng), Big Data (Grad degree), and Bioinformatics (MSc). Currently enrolled in a
+Ph.D. at EDITE (Sorbonne Université).
+
+Twitter: [@mribeirodantas](https://twitter.com/mribeirodantas) Website:
+[mribeirodantas.me](https://mribeirodantas.me)
diff --git a/content/blog/2020-05-08-dvc-ambassador-program-announcement.md b/content/blog/2020-05-08-dvc-ambassador-program-announcement.md
new file mode 100644
index 0000000000..c057c3e696
--- /dev/null
+++ b/content/blog/2020-05-08-dvc-ambassador-program-announcement.md
@@ -0,0 +1,163 @@
+---
+title: 'Join the DVC Ambassador Program!'
+date: 2020-05-08
+description: |
+ We're launching our ambassador program for people all around the world to get involved in
+ the DVC community.
+descriptionLong: |
+ We're launching our ambassador program for people all around the world to get involved in
+ the DVC community. Our first ambassador, Marcel Ribeiro-Dantas, shares a guest blog about
+ how ambassadors support open source projects through blog writing, public outreach, and code.
+picture: 2020-05-08/Ambassador_Header.png
+author: marcel_rd
+commentsUrl: https://discuss.dvc.org/t/join-the-dvc-ambassador-program/383
+tags:
+ - Ambassador
+ - Volunteer
+ - Meetup
+ - Blogging
+---
+
+DVC's software can be everywhere, but its developers can’t - that’s why
+ambassadors, folks who do outreach and community building around projects they
+love, are a key part of the open source community. DVC is starting an ambassador
+program to help people who are passionate about our mission get involved.
+
+As the first DVC ambassador, and a
+[Fedora ambassador](https://fedoraproject.org/wiki/User:Mribeirodantas) before
+that, I can tell you a bit about the role. As a representative of open source
+projects, I've participated in lots of events, made friends, and traveled. Every
+single time I’ve contributed, I got this nice feeling that it was all worth it.
+I believe that if you agree with the core values of the project, a great
+relationship lies ahead :).
+
+So what are the core values of DVC, exactly? DVC is founded on the principle of
+engineering solutions for making data science and machine learning rigorous and
+reproducible. If this matters to you, too, you might be a good fit for our
+ambassador program!
+
+As an ambassador, you’ll act as a bridge between DVC in your community. There
+are lots of ways to do this, big and small. For example:
+
+- Write a blog post talking about how you use DVC in your projects
+- What about creating a network of DVC users and data scientists in your town?
+ Even though we’re self-isolating now, you can still organize online meetups.
+ [We already did one!](https://tulu.la/events/dvc-virtual-meetup-2020-00032c)
+ We help cover costs to organize meetups.
+- Do you want to talk about DVC at your office, or at a conference? We help
+ speakers develop talks, and we have some discretionary funds for travel on a
+ case-by-case basis.
+- Want to develop a feature for DVC? We welcome contributions to the code base,
+ even if it’s your first pull request ever.
+
+Being an ambassador means getting closer to the team in charge of DVC, but at
+the same time, it means going farther to reach people outside the organization-
+including people who don’t know about DVC yet, people who need some help getting
+started, and people who are already excited about our mission and want to find
+meaningful ways to pitch in.
+
+## About Iterative and DVC
+
+DVC got started in 2017 as a personal project by Dmitry Petrov (
+[we just celebrated our 3rd birthday](https://dvc.org/blog/dvc-3-years-and-1-0-release)).
+Previously, Dmitry worked at Microsoft as a data scientist and did a PhD in
+Computer Science. In 2018, Dmitry teamed up with his co-founder Ivan Shcheklein
+(co-founder of [The Tweeted Times](https://tweetedtimes.com/) and
+[Sedna](https://www.sedna.org/) contributor) to incorporate Iterative.ai and
+grow the project. Iterative.ai is building enterprise tools for collaboration on
+ML projects. Currently, Iterative.ai's open source flagship project is Data
+Version Control (DVC), an open source version control system for managing
+complex workflows, datasets, and models.
+
+Development is ongoing in the core DVC project as well as new ventures into
+[MLOps and Continuous Integration & Delivery (CI/CD)](https://dvc.org/blog/reimagining-devops-video)
+for data science. The team is small-and-mighty, with developers, engineers, and
+data scientists on four continents. The open source community is a huge part of
+all Iterative.ai projects; currently, DVC has more than
+[5,000 stars on GitHub](https://github.com/iterative/dvc) and more than 100
+individual contributors!
+
+One of DVC’s main principles is adapting existing software engineering practices
+to machine learning. For example, DVC is built around Git version control: in an
+ML project using DVC, each experiment corresponds to a Git commit. When you
+check out any commit, you’ll see the source code as it was when you made the
+commit- as expected. But, you’ll also see your datasets as they were and the
+exact pipeline of commands you ran in that experiment!
+
+## How to become an ambassador
+
+If you’re interested in becoming an ambassador, send us an email at
+[info@dvc.org](mailto:info@dvc.org) with the subject line “I want to be an
+ambassador!” Please tell us:
+
+- A little about yourself and your professional background
+- Any outreach work you’ve done before
+- What kind of ambassador activities you’d be most interested in participating
+ in
+
+The program is structured to provide a lot of flexibility, so each ambassador
+can do outreach in ways that are personally motivating and enjoyable. There are
+a few guidelines:
+
+- We ask for at least one-year commitment
+- We ask ambassadors to contribute at least four activities per year, about once
+ every three months. There's no upper limit to how much you can do!
+- For your first contribution, we ask for a blog post- this way, we can
+ collaborate with you to help get all the technical details right. After that,
+ it’s up to you!
+
+## Some ideas to get started
+
+Our official ambassador program is just starting, but our community already has
+a lot of folks making noise. Here are just a few contributions we admire- we
+think they’re pretty cool inspirations for future projects.
+
+### Blogs and tutorials
+
+Shareable blogs are one of our most effective outreach strategies. They give
+visibility to the author _and_ new ways to use DVC, so it's a win-win.
+
+- [Remote training with GitLab-CI and DVC](https://blog.codecentric.de/en/2020/01/remote-training-gitlab-ci-dvc/),
+ by Mercel Mikl and Bert Besser (Bert has also organized a DVC meetup in
+ Berlin)
+- [Creating a solid Data Science development environment](https://towardsdatascience.com/creating-a-solid-data-science-development-environment-60df14ce3a34),
+ by Gabriel dos Santos Goncalves
+- [Continuous Delivery for Machine Learning](https://martinfowler.com/articles/cd4ml.html),
+ by Danilo Sato, Arif Wider, and Christoph Windheuser
+- [Manage your Data Science Project in R](https://mribeirodantas.xyz/blog/index.php/2020/03/05/r-dvc-and-rmarkdown/)
+ was my first blog post about using DVC in an R project!
+
+### Talks
+
+Community members have presented at events like PyCon, PyData, and local
+meetups.
+
+- [Version control for data science](https://www.slideshare.net/AlessiaMarcolini/version-control-for-data-science),
+ by Alessia Marcolini @ PyCon DE & PyData Berlin
+- [How to easily set up and version control your machine learning pipelines](https://www.youtube.com/watch?v=rUTlqpcmiQw),
+ by Sarah Diot-Girard & Stephanie Bracaloni @ PyData Amsterdam
+- [ML models and dataset versioning](https://speakerdeck.com/kurianbenoy/ml-models-and-dataset-versioning),
+ by Kurian Benoy @ PyCon India
+
+### Code contributions
+
+Our GitHub repository has lots of open discussions about potential features- its
+a goldmine for ways to pitch in. For example:
+
+- [Helge Munk Jacobsen](https://github.com/elgehelge) took on an open issue in
+ our code base about supporting hyperparameter tracking with DVC and made a
+ pull request to add this feature.
+
+- [Vera Sativa](https://github.com/verasativa/) added directory support to the
+ `dvc import-url` function- and she was our 100th contributor, so she won her
+ own DeeVee the owl.
+
+![](/uploads/images/2020-01-17/odd_with_deevee.png 'Vera and team =500')_Vera
+(center, flashing a peace sign) thanked us with this lovely picture of DeeVee
+and her team, [Odd Industries](https://odd.co/en/)._
+
+If any of this sounds fun to you, please be in touch over
+[email](mailto:info@dvc.org) (and you can also reach us on
+[Twitter](https://twitter.com/dvcorg) and our
+[Discord Channel](https://discordapp.com/invite/dvwXA2N)). We look forward to
+connecting with you!
diff --git a/content/docs/command-reference/diff.md b/content/docs/command-reference/diff.md
index 7151a4231c..e1515c56bd 100644
--- a/content/docs/command-reference/diff.md
+++ b/content/docs/command-reference/diff.md
@@ -8,7 +8,7 @@ workspace.
```usage
usage: dvc diff [-h] [-q | -v]
- [--show-json] [--show-hash]
+ [--show-json] [--show-hash] [--show-md]
[a_rev] [b_rev]
positional arguments:
@@ -49,6 +49,9 @@ for example when `dvc init` was used with the `--no-scm` option.
- `--show-hash` - print file and directory hash values along with their path.
Useful for debug purposes.
+- `--show-md` - print the list of files and directories with their status in the
+ Markdown table format.
+
- `-h`, `--help` - prints the usage/help message, and exit.
- `-q`, `--quiet` - do not write anything to standard output. Exit with 0 if no
diff --git a/content/docs/command-reference/metrics/diff.md b/content/docs/command-reference/metrics/diff.md
index 9772c5e262..a73ec47ce9 100644
--- a/content/docs/command-reference/metrics/diff.md
+++ b/content/docs/command-reference/metrics/diff.md
@@ -9,7 +9,8 @@ commits in the DVC repository, or between a commit and the
```usage
usage: dvc metrics diff [-h] [-q | -v]
[--targets [ [ ...]]]
- [-t ] [-x ] [-R] [--show-json]
+ [-t ] [-x ] [-R]
+ [--show-json] [--show-md]
[a_ref] [b_ref]
positional arguments:
@@ -63,6 +64,8 @@ They're calculated between two commits (hash, branch, tag, or any
- `--show-json` - prints the command's output in easily parsable JSON format,
instead of a human-readable table.
+- `--show-md` - prints the command's output in Markdown table format.
+
- `-h`, `--help` - prints the usage/help message, and exit.
- `-q`, `--quiet` - do not write anything to standard output. Exit with 0 if no
@@ -105,7 +108,7 @@ had in the previous commit:
```
$ dvc metrics diff
- Path Metric Value Change
-metrics.json TP 531 4
-metrics.json AUC 0.967 0.003
+Path Metric Value Change
+metrics.json TP 531 4
+metrics.json AUC 0.967 0.003
```
diff --git a/content/docs/command-reference/params/diff.md b/content/docs/command-reference/params/diff.md
index 41da5477bf..31a2c6764a 100644
--- a/content/docs/command-reference/params/diff.md
+++ b/content/docs/command-reference/params/diff.md
@@ -7,7 +7,7 @@ commits in the DVC repository, or between a commit and the
## Synopsis
```usage
-usage: dvc params diff [-h] [-q | -v] [--all] [--show-json]
+usage: dvc params diff [-h] [-q | -v] [--all] [--show-json] [--show-md]
[a_rev] [b_rev]
positional arguments:
@@ -40,6 +40,8 @@ itself does not ascribe any specific meaning for these values.
- `--show-json` - prints the command's output in easily parsable JSON format,
instead of a human-readable table.
+- `--show-md` - prints the command's output in the Markdown table format.
+
- `-h`, `--help` - prints the usage/help message, and exit.
- `-q`, `--quiet` - do not write anything to standard output. Exit with 0 if no
@@ -78,12 +80,12 @@ Let's now print parameter values that we are tracking in this
```dvc
$ dvc params diff
- Path Param Old New
-params.yaml lr None 0.0041
-params.yaml process.bow None 15000
-params.yaml process.thresh None 0.98
-params.yaml train.epochs None 70
-params.yaml train.layers None 9
+Path Param Old New
+params.yaml lr None 0.0041
+params.yaml process.bow None 15000
+params.yaml process.thresh None 0.98
+params.yaml train.epochs None 70
+params.yaml train.layers None 9
```
The command above shows the difference in parameters between the workspace and
@@ -96,22 +98,22 @@ won't be shown if there are no changes:
```dvc
$ dvc params diff
- Path Param Old New
-params.yaml lr 0.0041 0.0043
-params.yaml train.layers 9 7
-params.yaml train.epochs 70 110
+Path Param Old New
+params.yaml lr 0.0041 0.0043
+params.yaml train.layers 9 7
+params.yaml train.epochs 70 110
```
Specify `--all` option to see all the parameters including not changed ones:
```dvc
$ dvc params diff --all
- Path Param Old New
-params.yaml lr 0.0041 0.0043
-params.yaml process.bow 15000 15000
-params.yaml process.thresh 0.98 0.98
-params.yaml train.layers 9 7
-params.yaml train.epochs 70 110
+Path Param Old New
+params.yaml lr 0.0041 0.0043
+params.yaml process.bow 15000 15000
+params.yaml process.thresh 0.98 0.98
+params.yaml train.layers 9 7
+params.yaml train.epochs 70 110
```
To compare parameters with a specific commit, a tag or any
@@ -120,9 +122,9 @@ additional command line parameter:
```dvc
$ dvc params diff e12b167
- Path Param Old New
-params.yaml lr 0.0038 0.0043
-params.yaml train.epochs 70 110
+Path Param Old New
+params.yaml lr 0.0038 0.0043
+params.yaml train.epochs 70 110
```
Note that the `train.layers` parameter disappeared because its value was not
@@ -133,8 +135,8 @@ To see the difference between two specific commits, both need to be specified:
```dvc
$ dvc params diff e12b167 HEAD^
- Path Param Old New
-params.yaml lr 0.0038 0.0041
-params.yaml train.layers 10 9
-params.yaml train.epochs 50 70
+Path Param Old New
+params.yaml lr 0.0038 0.0041
+params.yaml train.layers 10 9
+params.yaml train.epochs 50 70
```
diff --git a/content/docs/install/linux.md b/content/docs/install/linux.md
index 719c62507c..3d7700c175 100644
--- a/content/docs/install/linux.md
+++ b/content/docs/install/linux.md
@@ -45,7 +45,7 @@ In this case it installs `boto3` library as well, besides DVC.
$ conda install -c conda-forge dvc
```
-> Currently, it supports Python 3.5-3.7
+> Currently, it supports Python 3.6-3.8
## Install with snap
diff --git a/content/docs/install/macos.md b/content/docs/install/macos.md
index 466e04a34b..0092b4a1e5 100644
--- a/content/docs/install/macos.md
+++ b/content/docs/install/macos.md
@@ -61,4 +61,4 @@ In this case it installs `boto3` library as well, besides DVC.
$ conda install -c conda-forge dvc
```
-> Currently, it supports Python 3.5-3.7
+> Currently, it supports Python 3.6-3.8
diff --git a/content/docs/install/windows.md b/content/docs/install/windows.md
index 53306f50b3..228bdb222c 100644
--- a/content/docs/install/windows.md
+++ b/content/docs/install/windows.md
@@ -30,7 +30,7 @@ a POSIX-like command line terminal in Windows.
$ conda install -c conda-forge dvc
```
-> Currently, it supports Python 3.5-3.7
+> Currently, it supports Python 3.6-3.8
## Install with pip
diff --git a/src/components/Community/Contribute/index.tsx b/src/components/Community/Contribute/index.tsx
index 2ac2d0019b..89505abf6f 100644
--- a/src/components/Community/Contribute/index.tsx
+++ b/src/components/Community/Contribute/index.tsx
@@ -94,11 +94,10 @@ const Contribute: React.FC<{ theme: ICommunitySectionTheme }> = ({ theme }) => {
- Let’s talk!
+ Learn more!
}
>
diff --git a/src/components/Community/Hero/index.tsx b/src/components/Community/Hero/index.tsx
index 3f628f8215..012ffba955 100644
--- a/src/components/Community/Hero/index.tsx
+++ b/src/components/Community/Hero/index.tsx
@@ -2,14 +2,40 @@ import React from 'react'
import LayoutWidthContainer from '../../LayoutWidthContainer'
import ShowOnly from '../../ShowOnly'
-import Link from '../../Link'
+import Link, { ILinkProps } from '../../Link'
import { logEvent } from '../../../utils/front/ga'
+import { scrollIntoLayout } from '../../../utils/front/scroll'
import data from '../data.json'
import styles from './styles.module.css'
const logHero = (): void => logEvent('community', 'hero')
+// This special link component will smooth-scroll on local fragment links
+const MaybeSmoothLink: React.FC = props => {
+ const { href, children } = props
+ if (href.startsWith('#')) {
+ // Intercept local fragment links and turn them into a special
+ // smooth-scrolling `a` element
+ return (
+ {
+ logHero()
+ scrollIntoLayout(document.getElementById(href.slice(1)), {
+ smooth: true
+ })
+ }}
+ >
+ {children}
+
+ )
+ } else {
+ // Pass through all props to a normal link otherwise
+ return
+ }
+}
+
const Hero: React.FC = () => {
if (!data.hero) {
return null
@@ -17,12 +43,7 @@ const Hero: React.FC = () => {
return (
-
+
{
alt=""
/>
-
+
)
}
diff --git a/src/components/Community/data.json b/src/components/Community/data.json
index 224067ba9b..aac0a10873 100644
--- a/src/components/Community/data.json
+++ b/src/components/Community/data.json
@@ -1,8 +1,8 @@
{
"hero": {
- "pictureDesktop": "/img/community/banner.png",
- "pictureMobile": "/img/community/banner-mobile.png",
- "url": "https://www.mlprague.com/#schedule-saturday"
+ "pictureDesktop": "/img/community/header_mailing_list_skinny.png",
+ "pictureMobile": "/img/community/mobile_header_mailing_list_skinny.png",
+ "url": "#subscribe"
},
"section": {
"contribute": {
@@ -44,26 +44,26 @@
}
],
"userContent": [
+ {
+ "url": "https://medium.com/acing-ai/ml-ops-data-science-version-control-5935c49d1b76",
+ "title": "ML Ops: Data Science Version Control",
+ "author": "Vimarsh Karbhari",
+ "date": "2020-04-23",
+ "pictureUrl": "/img/community/ugc/medium_logo.png"
+ },
+ {
+ "url": "https://blog.codecentric.de/en/2020/01/remote-training-gitlab-ci-dvc/",
+ "title": "Manage your Data Science Project in R",
+ "author": "Marcel Ribeiro-Dantas",
+ "date": "2020-03-05",
+ "pictureUrl": "/img/community/ugc/marcel.jpg"
+ },
{
"url": "https://blog.codecentric.de/en/2020/01/remote-training-gitlab-ci-dvc/",
"title": "Remote training with GitLab-CI and DVC",
"author": "Marcel Mikl and Bert Besser",
"date": "2020-01-28",
"pictureUrl": "/img/community/ugc/codecentric.png"
- },
- {
- "url": "https://martinfowler.com/articles/cd4ml.html",
- "title": "Continuous Delivery for Machine Learning",
- "author": "Danilo Sato, Arif Wider and Christoph Windheuser",
- "date": "2019-09-20",
- "pictureUrl": "/img/community/ugc/fowler_icon.ico"
- },
- {
- "url": "https://towardsdatascience.com/mlops-reducing-the-technical-debt-of-machine-learning-dac528ef39de",
- "title": "MLOps: Reducing the Technical Debt of Machine Learning",
- "author": "Saurav Chakravorty",
- "date": "2019-12-21",
- "pictureUrl": "/img/community/ugc/tds_logo.png"
}
],
"events": [
@@ -92,7 +92,7 @@
}
],
"stats": {
- "users": "1380+",
+ "users": "1800+",
"messages": "50K+"
}
}
diff --git a/static/img/community/banner-mobile.png b/static/img/community/banner-mobile.png
deleted file mode 100644
index 75c4edd41f..0000000000
Binary files a/static/img/community/banner-mobile.png and /dev/null differ
diff --git a/static/img/community/banner.png b/static/img/community/banner.png
deleted file mode 100644
index 1a1cab5c55..0000000000
Binary files a/static/img/community/banner.png and /dev/null differ
diff --git a/static/img/community/header_mailing_list_skinny.png b/static/img/community/header_mailing_list_skinny.png
new file mode 100644
index 0000000000..3e44fe97da
Binary files /dev/null and b/static/img/community/header_mailing_list_skinny.png differ
diff --git a/static/img/community/mobile_header_mailing_list_skinny.png b/static/img/community/mobile_header_mailing_list_skinny.png
new file mode 100644
index 0000000000..8f229ac861
Binary files /dev/null and b/static/img/community/mobile_header_mailing_list_skinny.png differ
diff --git a/static/img/community/ugc/donuts.png b/static/img/community/ugc/donuts.png
deleted file mode 100644
index 35a2c3dbb8..0000000000
Binary files a/static/img/community/ugc/donuts.png and /dev/null differ
diff --git a/static/img/community/ugc/fowler_icon.ico b/static/img/community/ugc/fowler_icon.ico
deleted file mode 100644
index 782a130df1..0000000000
Binary files a/static/img/community/ugc/fowler_icon.ico and /dev/null differ
diff --git a/static/img/community/ugc/marcel.jpg b/static/img/community/ugc/marcel.jpg
new file mode 100644
index 0000000000..574a10a78e
Binary files /dev/null and b/static/img/community/ugc/marcel.jpg differ
diff --git a/static/img/community/ugc/ml-axis-of-change.png b/static/img/community/ugc/ml-axis-of-change.png
deleted file mode 100644
index ec03c75a4b..0000000000
Binary files a/static/img/community/ugc/ml-axis-of-change.png and /dev/null differ
diff --git a/static/uploads/avatars/marcel.jpg b/static/uploads/avatars/marcel.jpg
new file mode 100644
index 0000000000..574a10a78e
Binary files /dev/null and b/static/uploads/avatars/marcel.jpg differ
diff --git a/static/uploads/images/2020-05-08/Ambassador_Header.png b/static/uploads/images/2020-05-08/Ambassador_Header.png
new file mode 100644
index 0000000000..413dd7f8c8
Binary files /dev/null and b/static/uploads/images/2020-05-08/Ambassador_Header.png differ