Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux Support #1188

Merged
merged 147 commits into from
Sep 7, 2023
Merged
Show file tree
Hide file tree
Changes from 145 commits
Commits
Show all changes
147 commits
Select commit Hold shift + click to select a range
b626444
work in progress
art-divin Jul 30, 2023
4ab1b68
More conditional checks, less errors
art-divin Jul 31, 2023
b1bad00
Further steps onto successful compilation
art-divin Aug 5, 2023
01ace5b
Enabled try-catch back for macOS
art-divin Aug 5, 2023
b1aed0b
reverted redundant change
art-divin Aug 5, 2023
cc22cd2
Replaced getVaList with recommended withVaList
art-divin Aug 6, 2023
b8ceb95
Update FileParser + AttributesModifierSpec.swift
art-divin Aug 6, 2023
6424fc7
added missing import of CDispatch
art-divin Aug 6, 2023
9ccf240
enabled fatalError instead of NSException
art-divin Aug 6, 2023
69d8117
enabled value(forKey:) for TypesCollection type
art-divin Aug 6, 2023
299506a
removed commented import
art-divin Aug 6, 2023
5e280ad
enabled sha256 for macOS
art-divin Aug 6, 2023
d2d6835
Enabled sha256 hashing for Linux
art-divin Aug 6, 2023
525488e
disabled JavaScriptTemplate tests under Linux
art-divin Aug 6, 2023
4c22672
added check for vendor for tests
art-divin Aug 6, 2023
c3e4ef7
disabled value(forKeyPath:) calls under Linux
art-divin Aug 6, 2023
b2390c4
reverted redundant gem
art-divin Aug 6, 2023
8a12dc5
Fixed issue with `swift test` not finding .ejs bundle
art-divin Aug 10, 2023
6e507ff
removed commented code
art-divin Aug 10, 2023
ba56bc8
switched to `swift test`
art-divin Aug 10, 2023
64dfd62
Merge branch 'master' into linux-support
art-divin Aug 12, 2023
6be884f
enabled GH actions
art-divin Aug 12, 2023
499c61b
Temporary check for installed Xcodes - Update swift.yml
art-divin Aug 12, 2023
0b3b1cb
Temporary checking Xcode versions - Update swift.yml
art-divin Aug 12, 2023
7777e94
Temporary setting Xcode version - Update swift.yml
art-divin Aug 12, 2023
0e06a69
Temporary remove custom Ruby installation - Update swift.yml
art-divin Aug 12, 2023
1438d09
Removed spaces from filenames
art-divin Aug 12, 2023
b3e931a
removed + from filenames
art-divin Aug 13, 2023
398024d
Added -enable-testing for all test targets
art-divin Aug 13, 2023
5bd4727
Try Xcode 15 beta
art-divin Aug 13, 2023
5e18716
trying to generate LinuxMain
art-divin Aug 14, 2023
ef84ad8
refactoring
art-divin Aug 14, 2023
f3503ff
Merge branch 'linux-support' of github.com:art-divin/Sourcery into li…
art-divin Aug 14, 2023
c85b978
running a test for test of a test
art-divin Aug 15, 2023
8896805
set SPM version to 5.8
art-divin Aug 15, 2023
dd7ef82
added tests to LinuxMain.swift
art-divin Aug 15, 2023
5883013
removed redundantly disabled code
art-divin Aug 15, 2023
6243020
fixed wrong ifdef
art-divin Aug 15, 2023
65229f3
Moved diffable implementation to definitions
art-divin Aug 15, 2023
435e2a4
fixed failing UTs
art-divin Aug 15, 2023
a413cfd
replaced os(macOS) with canImport(ObjectiveC)
art-divin Aug 15, 2023
23a1c2f
replaced more os(macOS) with canImport(ObjectiveC)
art-divin Aug 15, 2023
743e525
enabled filtering for sorted arrays on linux
art-divin Aug 19, 2023
e89d28e
eliminating API unsupported by swift-corelibs-foundation
art-divin Aug 19, 2023
a1782f6
enabled SourceryRuntime to compile under Linux
art-divin Aug 21, 2023
ffe5423
isEqual overrides only for Darwin platforms
art-divin Aug 21, 2023
c8b9bec
Fixed all SourceryRuntime compilation errors; more green tests
art-divin Aug 30, 2023
c5d6d58
Disabled enum test case
art-divin Aug 30, 2023
169cccf
moved isEqual to definitions
art-divin Aug 31, 2023
d755f77
fatalError when DynamicMemberLookup fails
art-divin Sep 1, 2023
d39bcbb
disabled failing test
art-divin Sep 1, 2023
aa15831
disabled crashing test in DryOutputSpec
art-divin Sep 1, 2023
445183d
Fixed more unit tests
art-divin Sep 1, 2023
8c9680a
Fixed typo
art-divin Sep 1, 2023
a67cafc
Added best effort sorting filter
art-divin Sep 2, 2023
7e14c1f
added missing dynamic member lookups
art-divin Sep 2, 2023
7e63125
Added missing dynamic member lookup
art-divin Sep 2, 2023
86ba014
fixed compilation error
art-divin Sep 2, 2023
7372fdb
Take into account 1-off linebreak issue between Linux and macOS
art-divin Sep 2, 2023
7ad3ccb
Removed diffable from content generation due to new structure
art-divin Sep 2, 2023
bd655ec
Merge branch 'linux-support' of github.com:art-divin/Sourcery into li…
art-divin Sep 2, 2023
b5722a4
added missing dynamic member lookups
art-divin Sep 2, 2023
68102ff
Merge branch 'linux-support' of github.com:art-divin/Sourcery into li…
art-divin Sep 2, 2023
8c0cd4a
Added missing dynamic member lookup
art-divin Sep 2, 2023
ba8413d
moving hashing into class definitions
art-divin Sep 2, 2023
3b7ff1d
Moved description and hash into class definitions
art-divin Sep 2, 2023
5e66ca1
Added DynamicMemberLookup definition for SourceryRuntime
art-divin Sep 2, 2023
d0b48e5
Added comment why import Stencil is needed
art-divin Sep 2, 2023
5def294
Added missing dynamic member lookup
art-divin Sep 2, 2023
ea38672
Removed redundant imports
art-divin Sep 2, 2023
8f874a7
Fixed failing tests
art-divin Sep 2, 2023
1c815a0
Adjusted test expectation for Linux
art-divin Sep 2, 2023
70036de
Merge branch 'linux-support' of https://github.com/art-divin/Sourcery…
art-divin Sep 2, 2023
1f1044e
Merge branch 'master' into linux-support
art-divin Sep 2, 2023
6e7fe8c
Fixed SourcerySpec template combining test
art-divin Sep 2, 2023
4265d60
Merge branch 'linux-support' of https://github.com/art-divin/Sourcery…
art-divin Sep 2, 2023
37763d1
Temporary commit for CI verification
art-divin Sep 2, 2023
1fa76b6
Adjusted SwiftTemplateSpecs tests for Linux
art-divin Sep 2, 2023
3e0c6b5
reverted redundant change
art-divin Sep 2, 2023
57fe491
enable more linux tests for CI verification
art-divin Sep 2, 2023
2b6e396
Adjusted CodableContextTests for Linux
art-divin Sep 2, 2023
d73a72b
Added more tests that are green
art-divin Sep 2, 2023
7f62d23
enabled all tests except 3
art-divin Sep 2, 2023
e9950cb
Remove verbosity from CI build
art-divin Sep 2, 2023
dac8915
Removed redundant steps from CI
art-divin Sep 2, 2023
4e60f07
Reverted redundant change
art-divin Sep 3, 2023
c424a61
Merge branch 'linux-support' of github.com:art-divin/Sourcery into li…
art-divin Sep 3, 2023
8b5282c
Testing job cancellation
art-divin Sep 3, 2023
3c88549
Added new dynamic member lookup to generated sources [no ci]
art-divin Sep 3, 2023
0353f28
Added different TypesCollection definition for Linux
art-divin Sep 3, 2023
fbd9e48
Make TypesCollection conform to DynamicMemberLookup only on Linux
art-divin Sep 3, 2023
c3f4e3b
Moved TypesCollection to separate generated source file
art-divin Sep 3, 2023
dd15103
Moved Type to separate file for Linux
art-divin Sep 3, 2023
c3485ae
Split GitHub actions
art-divin Sep 3, 2023
81d1fe2
removed common GH action
art-divin Sep 3, 2023
5f6afd8
added separate file for Variable on linux
art-divin Sep 3, 2023
addfa94
removed DynamicMemberLookup conformance on macOS
art-divin Sep 3, 2023
9fa2dab
removed @objc conditions on Linux
art-divin Sep 3, 2023
7ac2cd6
Temporary commit to fix build error
art-divin Sep 3, 2023
e039d86
moved NSException workaround to separate file
art-divin Sep 3, 2023
d9af021
Fixed compiler warning
art-divin Sep 3, 2023
5e655ac
moved Types to a separate file
art-divin Sep 3, 2023
baf042e
moved generated Types to a separate file
art-divin Sep 3, 2023
7ab7ad7
split Enum.swift into separate files
art-divin Sep 3, 2023
2af3eee
removed redundant imports
art-divin Sep 3, 2023
bebb5c5
added missing import
art-divin Sep 3, 2023
016e949
Removed redundant import
art-divin Sep 3, 2023
462a600
Split Method into separate files
art-divin Sep 3, 2023
e876040
Added DynamicMemberLookup to Method on Linux [no ci]
art-divin Sep 3, 2023
75b41c4
removed redundant override
art-divin Sep 3, 2023
10f4630
added badges for GH Actions
art-divin Sep 3, 2023
c3247c1
Fixed failing test on macOS
art-divin Sep 3, 2023
4d4ff0e
Split Tuple into separate files for Linux
art-divin Sep 3, 2023
8077811
Split EnumCase into separate file for DynamicMemberLookup on Linux
art-divin Sep 3, 2023
ee4d453
Merge branch 'linux-support' of https://github.com/art-divin/Sourcery…
art-divin Sep 3, 2023
06b3954
Enabled GeneratorSpec tests
art-divin Sep 3, 2023
b2b81a1
Added missing lookup member
art-divin Sep 3, 2023
af2165b
Fixed SourcerySpecTests
art-divin Sep 3, 2023
9fab38f
enabled SourcerySpec tests
art-divin Sep 3, 2023
580c232
Added missing lookup member
art-divin Sep 3, 2023
8b55402
call runCLI on Linux
art-divin Sep 3, 2023
6c47e05
Disabled codegen for Sourcery
art-divin Sep 3, 2023
78a5354
Added missing member lookup
art-divin Sep 3, 2023
c5480cc
Added missing members lookup
art-divin Sep 3, 2023
229162c
renamed Linux to include experimental
art-divin Sep 3, 2023
d676d29
Added missing member lookups
art-divin Sep 3, 2023
fcbc5fd
Merge branch 'linux-support' of https://github.com/art-divin/Sourcery…
art-divin Sep 3, 2023
8d372ff
Added missing import
art-divin Sep 3, 2023
aa7b9f5
Adjusted padding [no ci]
art-divin Sep 3, 2023
4fc45ef
Added missing member lookups
art-divin Sep 3, 2023
9cc9437
Merge branch 'linux-support' of https://github.com/art-divin/Sourcery…
art-divin Sep 3, 2023
fcd8bd9
Adjusted padding [no ci]
art-divin Sep 3, 2023
7775c1c
Disabled Codable tests on Linux
art-divin Sep 4, 2023
0f697b8
enabled all tests classes under Linux
art-divin Sep 4, 2023
3ae712f
Merge branch 'linux-support' of https://github.com/art-divin/Sourcery…
art-divin Sep 4, 2023
2aebaf5
Added AssociatedValue for Linux
art-divin Sep 4, 2023
ccd4adc
Added missing member lookups
art-divin Sep 4, 2023
4a709e7
Changed resource copy path in TemplatesTests for Linux
art-divin Sep 4, 2023
b589dd9
Updated CHANGELOG
art-divin Sep 4, 2023
14ccb2f
Merge branch 'linux-support' of github.com:art-divin/Sourcery into li…
art-divin Sep 4, 2023
21e181c
Added LINUX.md
art-divin Sep 4, 2023
89d065d
Added references to README and LINUX
art-divin Sep 4, 2023
4737bfe
Updated content.generated files
art-divin Sep 4, 2023
1afa3df
Fixed a typo [no ci]
art-divin Sep 4, 2023
6c07f15
Changed wording related to @objc attribute
art-divin Sep 4, 2023
adf54fa
Use currentTimestamp() instead of Date().timeIntervalSince1970
art-divin Sep 7, 2023
b286948
Returned guard statements; removed default values from EJSTemplate
art-divin Sep 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 7 additions & 21 deletions .github/workflows/swift.yml → .github/workflows/Ubuntu.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
# This workflow will build a Swift project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-swift

name: Swift
name: Ubuntu (Experimental)

on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}

jobs:
linux_build:
if: ${{ false }}
runs-on: ubuntu-latest
steps:
- name: Setup Swift
Expand All @@ -36,23 +39,6 @@ jobs:
- name: Bundle Install
run: bundle install
- name: Swift Build
run: swift build -v
run: swift build
- name: Run tests
run: swift test -v
macos_build:
if: ${{ false }}
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Setup Ruby
uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1
with:
ruby-version: '3.1'
- name: Bundle Install
run: bundle install
- name: Swift Build
run: swift build -v
- name: Run tests
run: swift test -v


run: swift test
34 changes: 34 additions & 0 deletions .github/workflows/macOS.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# This workflow will build a Swift project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-swift

name: macOS

on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}

jobs:
macos_build:
runs-on: macos-13
steps:
- name: Set Xcode 14.3.1
run: sudo xcode-select -s /Applications/Xcode_14.3.1.app/Contents/Developer
#- name: Set Xcode 15.0 Beta
# run: sudo xcode-select -s /Applications/Xcode_15.0.app/Contents/Developer
- name: Print Current Xcode
run: xcode-select -p
- uses: actions/checkout@v3
- name: Bundle Install
run: bundle install
- name: Swift Build
run: swift build
- name: Run tests
run: swift test


12 changes: 6 additions & 6 deletions .sourcery.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
sources:
- SourceryRuntime/Sources
templates:
- Sourcery/Templates
output:
SourceryRuntime/Sources/Generated
#sources:
# - SourceryRuntime/Sources
#templates:
# - Sourcery/Templates
#output:
# SourceryRuntime/Sources/Generated
28 changes: 28 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"configurations": [
{
"type": "lldb",
"request": "launch",
"sourceLanguages": [
"swift"
],
"name": "Debug sourcery",
"program": "${workspaceFolder:Sourcery}/.build/debug/sourcery",
"args": [],
"cwd": "${workspaceFolder:Sourcery}",
"preLaunchTask": "swift: Build Debug sourcery"
},
{
"type": "lldb",
"request": "launch",
"sourceLanguages": [
"swift"
],
"name": "Release sourcery",
"program": "${workspaceFolder:Sourcery}/.build/release/sourcery",
"args": [],
"cwd": "${workspaceFolder:Sourcery}",
"preLaunchTask": "swift: Build Release sourcery"
}
]
}
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
- Add support to any keyword for function parameter type to AutoMockable.stencil ([#1169](https://github.com/krzysztofzablocki/Sourcery/pull/1169))
- Add support to any keyword for function return type to AutoMockable.stencil([#1186](https://github.com/krzysztofzablocki/Sourcery/pull/1186))
- Add support for protocol compositions in EJS templates. ([#1192](https://github.com/krzysztofzablocki/Sourcery/pull/1192))
- Linux Support (experimental) ([#1188](https://github.com/krzysztofzablocki/Sourcery/pull/1188))

## 2.0.3
## Internal Changes
Expand Down
3 changes: 3 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,8 @@ GEM
nap (1.1.0)
netrc (0.11.0)
no_proxy_fix (0.1.2)
nokogiri (1.13.3-aarch64-linux)
racc (~> 1.4)
nokogiri (1.13.3-arm64-darwin)
racc (~> 1.4)
octokit (4.22.0)
Expand Down Expand Up @@ -183,6 +185,7 @@ GEM
rouge (~> 2.0.7)

PLATFORMS
aarch64-linux
arm64-darwin-21
arm64-darwin-23

Expand Down
56 changes: 56 additions & 0 deletions LINUX.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
## Linux Support

Currently (as per 2.1.0 release), Linux Support is **experimental**. This means the following:

1. Running `sourcery` in the root folder of Sourcery project was generating `Equatable.generated.swift` and other autogenerated files with extensions of classes used by `SourceryRuntime`, but they were moved to class definitions due to the abscense of `@objc` attribute on non-Darwin platforms. Thus, `.sourcery.yaml` file was disabled for the moment, until #1198 is resolved.
2. Some unit tests were disabled with `#if canImport(ObjectiveC)`, that is some due to Swift compiler crashes, some due to abscence of `JavaScriptCore`.
3. `FileWatcher` needs to be re-implemented (see [this comment](https://github.com/krzysztofzablocki/Sourcery/pull/1188#issue-1828038476) for a possible fix)


All issues related to Linux will be mentioned in #1198

## Using Sourcery under Linux

Simply add package dependency of Sourcery as described in the [README](README.md).

## Contributing
### Installation of Linux Environment

I have installed ubuntu VM through [tart](https://github.com/cirruslabs/tart/issues/62#issuecomment-1225956540) and updated to 22.04 according to [this guide](https://www.linuxtechi.com/upgrade-ubuntu-20-04-to-ubuntu-22-04/).

I had to run the following commands prior to being able to run `bundle install` in Sourcery:

1. `sudo apt install libffi-dev`
2. `sudo apt install build-essential`
3. `sudo apt install libsqlite3-dev`
4. `sudo apt-get install libncurses5-dev`

Then, `swiftly` needs to be installed to easily manage Swift installation under Linux. How to install Swiftly is described [in this README](https://github.com/swift-server/swiftly).

### Running Tests Under Linux

To run tests, you can use either Visual Studio Code distribution, or simply `swift test` in Sourcery root directory.

#### Visual Studio Code

To install VS Code, you can follow [the official guide](https://code.visualstudio.com/docs/setup/linux), which mentions the following commands:

```bash
sudo apt-get install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
rm -f packages.microsoft.gpg

# Then update the package cache and install the package using:

sudo apt install apt-transport-https
sudo apt update
sudo apt install code # or code-insiders
```

### Test Discovery Under Linux

Due to a missing feature in Swift Package Manager, tests under Linux are not discovered if the root class, from which tests are inherited, is located "in another Package/Module". Details regarding this [can be found here](https://github.com/apple/swift-package-manager/issues/5573).

And so, if a new `Spec` needs to be added, that Spec file needs to be put into `LinuxMain.swift` similarly to what is there already, mentioning the new class name accordingly.
82 changes: 82 additions & 0 deletions LinuxMain.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
import XCTest
import Quick

@testable import SourceryLibTests
@testable import TemplatesTests
@testable import CodableContextTests

@main struct Main {
static func main() {
Quick.QCKMain([
ActorSpec.self,
AnnotationsParserSpec.self,
ClassSpec.self,
ConfigurationSpec.self,
DiffableSpec.self,
DryOutputSpec.self,
EnumSpec.self,
FileParserAssociatedTypeSpec.self,
FileParserAttributesSpec.self,
FileParserMethodsSpec.self,
FileParserProtocolCompositionSpec.self,
FileParserSpec.self,
FileParserSubscriptsSpec.self,
FileParserVariableSpec.self,
GeneratorSpec.self,
MethodSpec.self,
ParserComposerSpec.self,
ProtocolSpec.self,
SourcerySpecTests.self,
StencilTemplateSpec.self,
StringViewSpec.self,
StructSpec.self,
SwiftTemplateTests.self,
TemplateAnnotationsParserSpec.self,
TemplatesAnnotationParserPassInlineCodeSpec.self,
TypeNameSpec.self,
TypeSpec.self,
TypealiasSpec.self,
TypedSpec.self,
VariableSpec.self,
VerifierSpec.self,
CodableContextTests.self,
TemplatesTests.self
],
configurations: [],
testCases: [
testCase(ActorSpec.allTests),
testCase(AnnotationsParserSpec.allTests),
testCase(ClassSpec.allTests),
testCase(ConfigurationSpec.allTests),
testCase(DiffableSpec.allTests),
testCase(DryOutputSpec.allTests),
testCase(EnumSpec.allTests),
testCase(FileParserAssociatedTypeSpec.allTests),
testCase(FileParserAttributesSpec.allTests),
testCase(FileParserMethodsSpec.allTests),
testCase(FileParserProtocolCompositionSpec.allTests),
testCase(FileParserSpec.allTests),
testCase(FileParserSubscriptsSpec.allTests),
testCase(FileParserVariableSpec.allTests),
testCase(GeneratorSpec.allTests),
testCase(MethodSpec.allTests),
testCase(ParserComposerSpec.allTests),
testCase(ProtocolSpec.allTests),
testCase(SourcerySpecTests.allTests),
testCase(StencilTemplateSpec.allTests),
testCase(StringViewSpec.allTests),
testCase(StructSpec.allTests),
testCase(SwiftTemplateTests.allTests),
testCase(TemplateAnnotationsParserSpec.allTests),
testCase(TemplatesAnnotationParserPassInlineCodeSpec.allTests),
testCase(TypeNameSpec.allTests),
testCase(TypeSpec.allTests),
testCase(TypealiasSpec.allTests),
testCase(TypedSpec.allTests),
testCase(VariableSpec.allTests),
testCase(VerifierSpec.allTests),
testCase(CodableContextTests.allTests),
testCase(TemplatesTests.allTests)
])
}
}
18 changes: 0 additions & 18 deletions Package.resolved
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,6 @@
"version" : "0.9.1"
}
},
{
"identity" : "cwlcatchexception",
"kind" : "remoteSourceControl",
"location" : "https://github.com/mattgallagher/CwlCatchException.git",
"state" : {
"revision" : "f809deb30dc5c9d9b78c872e553261a61177721a",
"version" : "2.0.0"
}
},
{
"identity" : "cwlpreconditiontesting",
"kind" : "remoteSourceControl",
"location" : "https://github.com/mattgallagher/CwlPreconditionTesting.git",
"state" : {
"revision" : "02b7a39a99c4da27abe03cab2053a9034379639f",
"version" : "2.0.0"
}
},
{
"identity" : "komondor",
"kind" : "remoteSourceControl",
Expand Down
Loading