continuedev / continue

⏩ Continue is the leading open-source AI code assistant. You can connect any models and any context to build custom autocomplete and chat experiences inside VS Code and JetBrains
https://docs.continue.dev/
Apache License 2.0
13.23k stars 916 forks source link

Improve environment setup for new contributors #346

Closed bra1nDump closed 11 months ago

bra1nDump commented 11 months ago

Ideally a new contributor would clone the project, open root in vscode, hit F5 and it will start both server / extension and they can immediately set breakpoints in both server / extension and start exploring how to code works.

Current issues

Suggestions

I am experimenting locally with the suggestions below locally and will create a PR once I make progress. The order is my suggested order of implementation.

1. Improve debugging setup for VSCode extension

2. Improve overall experience for workspace (aka Server + Extension development)

The goal is to allow seamless debugging of all components

Option 1 - multi root workspace

[My vote] Option 2 - move all launch configurations to root

3. Improve dependencies setup

The goal is to have a single vscode task / bash script we can run to install all components needed for development. Motivation for lower priority is this is a one time setup fee where as the above improvements will be useful every time the project is worked on.

References

sestinj commented 11 months ago

@bra1nDump Love this! I'll give a deeper look tomorrow, including improving the documentation in CONTRIBUTING.md, but I agree that option 2 is the better choice. Also take a look at npm run package in extension/package.json, which does a lot of the steps required for setup, and extension/scripts/install_from_source.py, which is a more complete option, but also builds and installs a .vsix file. Something between these two is what you describe in step 3, but you could borrow heavily from them.

sestinj commented 11 months ago

@bra1nDump just a small update, but there was definitely some duplication between extension/DEV_README.md and extension/src/README.md, so I moved all into DEV_README. After some of the changes you describe are made, I think it will make sense to do another round of documenting. Let me know how I can help with all of this!