arc lint and other workflows using the csharp linter can now be executed from everywhere in the project tree.
Details
Details
- Reviewers
joshuaspence epriestley - Group Reviewers
Blessed Reviewers - Required Signatures
L28 Phacility Individual Contributor License Agreement
Execute arc lint from arbitrary folders in the project tree of a csharp project. It should create all file paths correctly now by using the project root as the base path.
Diff Detail
Diff Detail
- Repository
- rARC Arcanist
- Branch
- master
- Lint
Lint Passed - Unit
Test Failures - Build Status
Buildable 3268 Build 3274: [Placeholder Plan] Wait for 30 Seconds
Time | Test | |
---|---|---|
0 ms | testPHPLint | |
0 ms | testFixLetterCase | |
0 ms | testJSONLinter | |
0 ms | testMergeConflictLint | |
0 ms | testPHPCSLint | |
View Full Test Results (1 Failed · 9 Passed · 17 Skipped) |
Event Timeline
Comment Actions
The proper fix here is to convert ArcanistCSharpLinter to extend from ArcanistExternalLinter. Once this is done, the future will always be resolved relative to the project root directory:
if ($this->supportsReadDataFromStdin()) { $future = new ExecFuture( '%C %C', $bin, $this->getReadDataFromStdinFilename()); $future->write($this->getEngine()->loadData($path)); } else { // TODO: In commit hook mode, we need to do more handling here. $disk_path = $this->getEngine()->getFilePathOnDisk($path); $path_argument = $this->getPathArgumentForLinterFuture($disk_path); $future = new ExecFuture('%C %C', $bin, $path_argument); } $future->setCWD($this->getEngine()->getWorkingCopy()->getProjectRoot()); $futures[$path] = $future;