Source control and dependency management in a JUCE project

What dirs/files should be kept in a JUCE-based project's repo? How does a typical .gitignore file for such a project look like?

What are the best practices for making the repo path-independent (in my test projects, I noticed the modules' paths are relative) - env vars or keep the entire JuceLibraryCode in the repository?

The best-case scenario I'd like to target, is a project structure, similar to a node.js project, or CocoaPods, or Maven project - there is a description of the dependencies with release versions, but no dependencies are actually kept in the repo. Is this achievable?

Thanks in advance for any responses.

Have a look at JUCE's own .gitignore, that's working very well across all platforms for us over here.

About making the repo path-independent: you probably want to wait until Jules releases his new JUCE module system, this should make things easier!

That being said, we have no immediate plans to drastically alter the project format.