Open wbkboyer opened 1 month ago
One thing we will have to resolve here for the dev env files (the .json files for VSCode and the .cproject file for Eclipse) is that the dev env may be used to clone the project (rather than git command line), so we need to make sure we know and explain (in the wiki) the process step(s) between dev env. clone and successful dev env build of the code.
It may be better to revise Issue #14 to say it will use this method, but solve it as a separate story for Eclipse because of the different wiki page instructions for that dev platform. The planarity leaks ini can be a story (issue in this epic), and the VSCode files can be a third story (issue).
While writing the Running Memory Checks wiki page, the issue of how to handle the inclusion of default files in source control arose: in #59 , I added the
TestSupport/planaritytesting/leaksorchestrator/planarity_leaks_config.ini
file (generated by theplanarity_leaks_config_manager.py
) to source control, and then added a corresponding line to.gitignore
, erroneously) assuming that even if a file was tracked in source control, the.gitignore
would ensure that no changes could be made to the file without first changing the.gitignore
.After observing that the behaviour didn't match my expectation, I did some more investigation and arrived at an intermediate solution: instructing users to locally run
git update-index --assume-unchanged
on the defaults tracked in the repository so that local changes wouldn't appear as candidates to stage unless they actually intended to update the default in the repository (see alsogit update-index
- Using "Assume Unchanged" Bit for justification vs. using--skip-worktree
)However, this is not scalable when dealing with multiple default configuration files, and an entirely process-driven approach is prone to user error. This StackOverflow response helps to inform a solution:
.vscode/
-tasks.json
,launch.json
, andsettings.json
TestSupport/planaritytesting/
-.pylintrc
andleaksorchestrator/planarity_leaks_config.ini
c/
-.cproject
and.project
files created by Eclipse (see this Eclipse forum post and the Eclipse documentation on Building and the Project Description File)git -rm --cached
for the configuration files currently tracked in version control.gitignore
README.md
to run the environment setup script