Skip to content

Commit 2f6b3cb

Browse files
jorgeorpineldberenbaummattseddonrestyled-commits
authored
README rewrite (+ CONTRIB updates) (#1816)
* readme: make intro = value prop + + fancy note * readme: spave between VS and Code per #1816 (review) * readme: reorg existing content per per iterative/dvc.org#2443 (comment) * readme: add features list * readme: extend/fix/link other parts of the structure * readme: fix DVC icon * readme: value prop edited from https://docs.google.com/document/d/10THN0WwvPaDOAnmWd37xMOSWftJrUSIPlA2m0iHGDNI/edit# per #1816 (comment) * Update README.md Co-authored-by: Dave Berenbaum <[email protected]> * Update README.md * readme: rewrap * readme: add list of high-level features from https://docs.google.com/document/d/10THN0WwvPaDOAnmWd37xMOSWftJrUSIPlA2m0iHGDNI/edit# * readme: update features and add competitive advantages based on https://docs.google.com/document/d/10THN0WwvPaDOAnmWd37xMOSWftJrUSIPlA2m0iHGDNI/edit# * readme: mention that it's beta per #1816 (comment) * readme: small improvements to lists * readme: better Quick start * readme: populate Config section * readme: move Useful commands before Config * config: update settings descriptions (readme and package) * contrib: copy edits * readme: fix vs-code commands lnk * contrib: kill link to wiki (outdated) * readme: lint (BROKEN) * Update README.md Co-authored-by: mattseddon <[email protected]> * Update README.md Co-authored-by: mattseddon <[email protected]> * fix linter-broken line * contrib: simpler dev env steps * readme: better intro wording per #1816 (review) * readme: plots view -> dashboard :/ per #1816 (comment) * readme: support should go to Discord first per #1816 (review) and #1816 (review) * readme: exp bookkeeping -> tracking per #1816 (review) * readme: clarify reproducibility feature per #1816 (review) * readme: more specific data mgmt use per #1816 (review) * readme: improve UI components list per #1816 (review) * readme: fix img hack may not work until repo goes public * add badges to README * drop some badges * preview banner * update link to point to main * preview gif * readme: impro feats * contrib: move note about DVC projects * revert to changelog from main and add prettier rule * Update README.md Co-authored-by: mattseddon <[email protected]> * readme: move animation after value prop paragraph * Apply suggestions from code review Co-authored-by: mattseddon <[email protected]> * Update README.md * Restyled by whitespace * Restyled by prettier-markdown * Update README.md * contrib: valid md new line >:( * readme: move images to extension/images and and add screenshot of Get Started page * readme: move images back to extension/docs/ foler per #1816 (review) * swap banner to png * replace outdated walkthrough screenshot * update style of inline dvc png so it does not look bonkers * (fixup) use absolute links for the marketplace and in product Co-authored-by: Dave Berenbaum <[email protected]> Co-authored-by: mattseddon <[email protected]> Co-authored-by: Matt Seddon <[email protected]> Co-authored-by: Restyled.io <[email protected]>
1 parent ab92427 commit 2f6b3cb

File tree

8 files changed

+207
-91
lines changed

8 files changed

+207
-91
lines changed

.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CHANGELOG.md

.vscode/settings.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"appdirs",
1212
"camelcase",
1313
"chokidar",
14+
"Codespaces",
1415
"conda",
1516
"datapoint",
1617
"datapoints",

CONTRIBUTING.md

Lines changed: 41 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,49 @@
1-
# Feedback
1+
## Feedback
22

3-
See something that should be changed? Want to request a new feature? Open
4-
[a GitHub Issue!](https://github.com/iterative/vscode-dvc/issues)
3+
See something that should be changed? Want to request a new feature? Open an
4+
[issue on GitHub](https://github.com/iterative/vscode-dvc/issues)!
55

6-
# Development Setup
6+
## Pull requests
77

8-
Ensure [Yarn](https://yarnpkg.com/) and
9-
[Visual Studio Code](https://code.visualstudio.com) are installed.
10-
11-
It is recommended that you have a DVC project available to test the extension
12-
against. We have provided [the demo project](#the-demo-project) as part of this
13-
repo but feel free to use any DVC project that you have available.
14-
15-
To enable formatting on save in VS Code, install the `esbenp.prettier-vscode`
16-
extension. This is optional, but highly recommended as PRs with improper format
17-
will be blocked from merge until the issue is fixed.
8+
You may also submit a change request to this repository directly
9+
[from here](https://github.com/iterative/vscode-dvc/pulls). Contributions are
10+
highly appreciated!
1811

19-
<a id='note'></a>
12+
> 💡 **Tip**: To enable formatting on save in VS Code, install the
13+
> `esbenp.prettier-vscode` extension. This is highly recommended as PRs with
14+
> improper format will be blocked from merge until fixed.
2015
21-
Note: When using any project that relies on an isolated python environment
22-
(conda, venv, etc) the
23-
[ms-python.python](https://github.com/Microsoft/vscode-python) extension needs
24-
to be installed into VS Code. It is used by this extension to locate and utilize
25-
the required environment.
16+
## Development environment
2617

27-
## Development Environment
18+
The development environment allows contributors to test their changes to the
19+
extension. The local repository source is built and loaded into the Extension
20+
Development Host.
2821

29-
The development environment allows contributors to test out the extension. The
30-
current repository source is built and loaded into the Extension Development
31-
Host as an Extension.
32-
33-
Please be aware that having a separate (`.vsix`) version of the extension
34-
installed will cause all kinds of chaos in your development environment.
22+
First, ensure that [Yarn](https://yarnpkg.com/) and
23+
[Visual Studio Code](https://code.visualstudio.com) are installed.
3524

36-
- Open the monorepo root as a project in VS Code
25+
- Open this repository's root directory as a project in VS Code.
3726

3827
- Run `Tasks: Run Build Task` (Ctrl+Shift+b) to start the extension and webview
3928
development servers (alternatively run `yarn dev-server` from the terminal).
4029

30+
> **Warning**: Having a separate (`.vsix`) version of the extension installed
31+
> may cause all kinds of chaos in your development environment.
32+
4133
- Open the Extension Development Host, a child instance of VS Code with the
4234
results of the dev servers installed as an extension, with `Start Debugging`
43-
(f5).
44-
Note: selecting the `Run Extension` option when running the debugger will
45-
prevent all other extensions from being loaded into the VS code instance. This
46-
will improve the performance of VS code but can cause certain DVC commands to
47-
fail if the project uses an isolated python environment (see
48-
[this note](#note)).
35+
(f5).
4936

50-
- Open the demo or another DVC project in the Extension Development Host; VS
51-
Code will remember the last project opened, so this step only has to be done
52-
once.
37+
> **Note**: using the `Run Extension` command when running the debugger will
38+
> prevent all other extensions from loading into VS Code. This will improve
39+
> the performance of VS Code but can cause certain DVC commands to fail if the
40+
> project uses an isolated python environment (see [this warning](#warning)).
41+
42+
- Open a DVC project in the Extension Development Host. VS Code will remember
43+
the last project opened, so this step only has to be done once.
44+
45+
> **Note**: We have provided a demo project as part of this repo, but feel
46+
> free to use any DVC project that you have available.
5347
5448
## The demo project
5549

@@ -75,9 +69,17 @@ encouraged to try other DVC repositories- especially real-world cases!
7569
environment to be loaded.
7670

7771
- This will happen automatically IF the `ms-python.python` extension is
78-
installed within the VS code instance that you are developing against.
72+
installed within the VS Code instance that you are developing against.
73+
74+
<a id='warning'></a>
7975

80-
## React Component Development with Storybook
76+
> **Warning**
77+
> When using any project that relies on an isolated Python environment (`conda`,
78+
> `venv`, etc.), Microsoft's
79+
> [Python extension](https://github.com/Microsoft/vscode-python) is required.
80+
> It's used by this extension to locate and utilize the required environment.
81+
82+
## React component development with Storybook
8183

8284
Start Storybook with `yarn storybook` in either the monorepo root or the
8385
`webview` project, and you can develop the React components this plugin uses
@@ -87,9 +89,3 @@ There are some discrepancies between the Storybook environment and the
8789
environment of a real VS Code extension, custom themes being one big one. Always
8890
make sure to try out changed components in the full dev environment before
8991
merging!
90-
91-
# Resources
92-
93-
Check out the
94-
[Resources page](https://github.com/iterative/vscode-dvc/wiki/Resources) of our
95-
GitHub wiki for a list of relevant docs and related projects.

README.md

Lines changed: 153 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,121 @@
1+
![banner](https://raw.githubusercontent.com/iterative/vscode-dvc/main/extension/resources/banner.png)
2+
13
# DVC Extension for Visual Studio Code
24

3-
<!--- These will be broken until the repo is public --->
4-
<!--- [![Continuous Integration](https://github.com/iterative/vscode-dvc/actions/workflows/continuous-integration.yml/badge.svg)](https://github.com/iterative/vscode-dvc/actions/workflows/continuous-integration.yml) --->
5-
<!--- [![Cross-Platform Test](https://github.com/iterative/vscode-dvc/actions/workflows/cross-platform-test.yml/badge.svg)](https://github.com/iterative/vscode-dvc/actions/workflows/cross-platform-test.yml) --->
6-
<!-- [![DVC CLI Output Test](https://github.com/iterative/vscode-dvc/actions/workflows/dvc-cli-output-test.yml/badge.svg)](https://github.com/iterative/vscode-dvc/actions/workflows/dvc-cli-output-test.yml) -->
5+
[![Version](https://vsmarketplacebadge.apphb.com/version-short/iterative.dvc.svg)](https://https://marketplace.visualstudio.com/items?itemName=Iterative.dvc)
6+
[![Installs](https://vsmarketplacebadge.apphb.com/installs/iterative.dvc.svg)](https://https://marketplace.visualstudio.com/items?itemName=Iterative.dvc)
7+
[![Downloads](https://vsmarketplacebadge.apphb.com/downloads/iterative.dvc.svg)](https://https://marketplace.visualstudio.com/items?itemName=Iterative.dvc)
8+
[![Ratings](https://vsmarketplacebadge.apphb.com/rating-short/iterative.dvc.svg)](https://https://marketplace.visualstudio.com/items?itemName=Iterative.dvc)
79

10+
[![Continuous Integration](https://github.com/iterative/vscode-dvc/actions/workflows/continuous-integration.yml/badge.svg)](https://github.com/iterative/vscode-dvc/actions/workflows/continuous-integration.yml)
811
[![Maintainability](https://api.codeclimate.com/v1/badges/fb243c31ea059c0038b2/maintainability)](https://codeclimate.com/repos/608b5886f52398018b00264c/maintainability)
912
[![Test Coverage](https://api.codeclimate.com/v1/badges/fb243c31ea059c0038b2/test_coverage)](https://codeclimate.com/repos/608b5886f52398018b00264c/test_coverage)
1013

11-
A [Visual Studio Code](https://code.visualstudio.com/)
12-
[extension](https://marketplace.visualstudio.com/VSCode) that aims to allow
13-
users of all technical backgrounds to effectively use [DVC](https://dvc.org/).
14-
15-
## Current State
16-
17-
We want early adopter feedback! Please let us know what you like and don't like
18-
about the extension. Feel free to reach out in this repository's
19-
[issues](https://github.com/iterative/vscode-dvc/issues) or via any of the other
20-
existing [support channels](https://dvc.org/support).
21-
22-
## Quick Start
23-
24-
- **Step 1.**
25-
[Install a supported version of DVC on your system](https://dvc.org/doc/install)
26-
- **Step 2.**
27-
[Install the DVC extension for Visual Studio Code](https://code.visualstudio.com/docs/editor/extension-gallery).
28-
- **Step 3.** See Walkthrough.
14+
Run, compare, visualize, and track machine learning experiments right in VS
15+
Code. This extension uses [DVC](https://dvc.org/), an open-source data
16+
versioning and ML experiment management tool. No additional services or
17+
databases are required.
18+
19+
![Extension Overview](https://raw.githubusercontent.com/iterative/vscode-dvc/main/extension/docs/overview.gif)
20+
21+
- **Experiment tracking**: Record training data, parameters, and metrics on top
22+
of [Git](https://git-scm.com/). Navigate your experiments, compare their
23+
results, and find the best ML models.
24+
- **Visualization**: Plot performance data in a customizable dashboard including
25+
one or more overlaid experiments.
26+
- **Live tracking**: Capture and see metrics changing in real time.
27+
- **Reproducibility**: Make sure that anyone can recover or confirm previous
28+
experiments, and run new experiments based on their results.
29+
- **Data Management**: Handle and version large datasets, files, and models
30+
effectively right from VS Code.
31+
32+
> **Note**: We are in public beta and welcome early adopter feedback!
33+
> Feel free to reach out [via Discord] or open [issues in GitHub].
34+
>
35+
> [issues in github]: https://github.com/iterative/vscode-dvc/issues
36+
> [via discord]: https://discord.gg/BGCjJHvDHt
37+
38+
### Why prefer this extension?
39+
40+
- Enjoy the best developer experience with the first experiment tracking
41+
interface for an IDE.
42+
- No external servers, databases, subscriptions, etc. Data stays fully under
43+
your control and your existing Git hosting is used to share and collaborate.
44+
- Go beyond a simple metrics dashboard with complete ML experiments that include
45+
metrics, code, and data. Powered by [DVC experiment
46+
versioning][dvc experiments].
47+
- Implement [data versioning] on top of your favorite cloud storage, such as
48+
Amazon S3, Azure Blob Storage, Google Cloud Storage, NFS, etc.
49+
50+
[dvc experiments]:
51+
https://dvc.org/doc/user-guide/experiment-management/experiments-overview
52+
[data versioning]: https://dvc.org/doc/use-cases/versioning-data-and-model-files
53+
54+
## Quick start
55+
56+
1. [Install DVC](https://dvc.org/doc/install) on your system.
57+
2. Install [this extension] in VS Code.
58+
3. Follow the **Get Started** page that pops up!
59+
60+
<!-- prettier-ignore -->
61+
> 💡 Feel free to try our [example DVC project] first! Opening it [with Github
62+
> Codespaces] will include this extension automatically.
63+
64+
![Initial Get Started page](https://raw.githubusercontent.com/iterative/vscode-dvc/main/extension/docs/walkthroughs.png)
65+
66+
[this extension]:
67+
https://marketplace.visualstudio.com/items?itemName=Iterative.dvc
68+
[example dvc project]: https://github.com/iterative/example-get-started
69+
[with github codespaces]:
70+
https://docs.github.com/en/codespaces/getting-started/quickstart#creating-your-codespace
71+
72+
### Learn more about DVC (Data Version Control)
73+
74+
See the DVC documentation to Get Started with [Experiment Versioning] or [Data
75+
Management]. For deeper learning, try our [free course]!
76+
77+
[experiment versioning]: https://dvc.org/doc/start/experiments
78+
[data management]: https://dvc.org/doc/start/data-management
79+
[free course]: https://learn.iterative.ai/
80+
81+
<!-- [learn more]: extension/resources/walkthrough/dvc-learn-more.md -->
82+
83+
## What you get
84+
85+
This extension augments VS Code in the following ways:
86+
87+
- Adds a brand-new new **[DVC View]** (<img
88+
src="https://raw.githubusercontent.com/iterative/vscode-dvc/main/extension/docs/dvc.png"
89+
alt="DVC logo" height="16"/> icon in the Activity Bar) with panels to
90+
visualize and manage [DVC Experiments].
91+
- Provides special _Editors_ to manage **[Experiments]** and display **[Plots]**
92+
in IDE _Tabs_.
93+
- Adds a **[DVC Tracked]** panel to the _Explorer_ view. This shows a tree of
94+
the data files and directories tracked by DVC, including their state, and
95+
options to [synchronize] them (from/to remote storage).
96+
- Adds a **[DVC panel]** to the _Source Control_ view to display the [workspace
97+
status]. You can [restore] or reset project versions (based on the current Git
98+
`HEAD` commit) as well as manage new and existing data from here.
99+
- Registers several **Commands** in the _[Command Palette]_ (see next section).
100+
- Includes a DVC channel for the _Output_ panel (useful for
101+
[debugging](#debugging)).
102+
103+
[dvc view]:
104+
https://github.com/iterative/vscode-dvc/blob/main/extension/resources/walkthrough/view-container.md
105+
[experiments]:
106+
https://github.com/iterative/vscode-dvc/blob/main/extension/resources/walkthrough/experiments-table.md
107+
[plots]:
108+
https://github.com/iterative/vscode-dvc/blob/main/extension/resources/walkthrough/plots.md
109+
[command palette]:
110+
https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette
111+
[dvc tracked]:
112+
https://github.com/iterative/vscode-dvc/blob/main/extension/resources/walkthrough/dvc-tracked-files.md
113+
[synchronize]: https://dvc.org/doc/start/data-management#storing-and-sharing
114+
[dvc panel]:
115+
https://github.com/iterative/vscode-dvc/blob/main/extension/resources/walkthrough/dvc-tracked-files.md
116+
[workspace status]:
117+
https://dvc.org/doc/command-reference/status#local-workspace-status
118+
[restore]: https://dvc.org/doc/start/data-management#switching-between-versions
29119

30120
## Useful commands
31121

@@ -40,16 +130,46 @@ in one of the following commands:
40130
| `DVC: Show Experiments` | Show an interactive version of DVC's `exp show` [command](https://dvc.org/doc/command-reference/exp/show). |
41131
| `DVC: Show Plots` | Show an interactive version of DVC's `plots diff` [command](https://dvc.org/doc/command-reference/plots/diff). |
42132

43-
## Features
133+
Learn more about the extension's [commands].
134+
135+
[commands]:
136+
https://github.com/iterative/vscode-dvc/blob/main/extension/resources/walkthrough/command-palette.md
137+
138+
## Configuration
139+
140+
These are the VS Code [settings] available for the Extension:
44141

45-
- [Command Palette](extension/resources/walkthrough/command-palette.md)
46-
- [Source Control Management](extension/resources/walkthrough/source-control-management.md)
47-
- [Tracked Resources](extension/resources/walkthrough/tracked-explorer.md)
48-
- [DVC View Container](extension/resources/walkthrough/view-container.md)
49-
- [Experiments Table](extension/resources/walkthrough/experiments-table.md)
50-
- [Plots](extension/resources/walkthrough/plots.md)
142+
[settings]: https://code.visualstudio.com/docs/getstarted/settings
51143

52-
### Debugging
144+
| **Option** | **Description** |
145+
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
146+
| `dvc.dvcPath` | Path or shell command to the DVC binary. Required unless Microsoft's [Python extension] is installed and the `dvc` package found in its environment. |
147+
| `dvc.pythonPath` | Path to the desired Python interpreter to use with DVC. Required when using a virtual environment. |
148+
| `dvc.doNotShowWalkthroughAfterInstall` | Do not prompt to show the Get Started page after installing. Useful for pre-configured development environments |
149+
| `dvc.doNotRecommendRedHatExtension` | Do not prompt to install the Red Hat YAML extension, which helps with DVC YAML schema validation (`dvc.yaml` and `.dvc` files). |
150+
| `dvc.doNotShowCliUnavailable` | Do not warn when the workspace contains a DVC project but the DVC binary is unavailable. |
151+
| `dvc.doNotShowUnableToFilter` | Do not warn before disabling auto-apply filters when these would result in too many experiments being selected. |
152+
153+
> **Note** that the `Setup The Workspace` command helps you set up the basic
154+
> ones at the [Workspace level] (saved to `.vscode/setting.json`).
155+
156+
[python extension]:
157+
https://marketplace.visualstudio.com/items?itemName=ms-python.python
158+
[workspace level]:
159+
https://code.visualstudio.com/docs/getstarted/settings#_workspace-settings
160+
161+
## Debugging
162+
163+
### The DVC Extension
164+
165+
Please see the DVC [channel] in the IDE's _Output_ panel to see the underlying
166+
DVC commands being run, as well as their error output. Feel free to share this
167+
with us [via Discord] or use it to report [issues in GitHub].
168+
169+
[channel]:
170+
https://code.visualstudio.com/api/extension-capabilities/common-capabilities#output-channel
171+
172+
### Your DVC project
53173

54174
Due to the way DVC pipelines run scripts of any language from the command line,
55175
users must debug pipeline scripts (e.g. `train.py`) standalone in whatever way
@@ -58,12 +178,10 @@ pipelines, and most scripts are capable of running outside of DVC.
58178

59179
## Contributing
60180

61-
See development docs and contributing guidelines in
62-
[CONTRIBUTING.md](CONTRIBUTING.md)
63-
64-
## Explore
181+
See the development and contributing guidelines in
182+
[CONTRIBUTING.md](https://github.com/iterative/vscode-dvc/blob/main/CONTRIBUTING.md).
65183

66-
View [more resources](extension/resources/walkthrough/dvc-learn-more.md).
184+
![GitHub Contributors Image](https://contrib.rocks/image?repo=iterative/vscode-dvc)
67185

68186
## Data and telemetry
69187

File renamed without changes.

extension/docs/walkthroughs.png

580 KB
Loading

0 commit comments

Comments
 (0)