braid 1.1.5 → 1.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/exe/braid +11 -0
  3. data/lib/braid/check_gem.rb +65 -0
  4. data/lib/braid/command.rb +18 -0
  5. data/lib/braid/commands/add.rb +41 -1
  6. data/lib/braid/commands/diff.rb +2 -1
  7. data/lib/braid/commands/push.rb +1 -0
  8. data/lib/braid/commands/remove.rb +1 -0
  9. data/lib/braid/commands/setup.rb +1 -0
  10. data/lib/braid/commands/status.rb +1 -0
  11. data/lib/braid/commands/update.rb +1 -0
  12. data/lib/braid/commands/upgrade_config.rb +1 -0
  13. data/lib/braid/config.rb +28 -4
  14. data/{bin/braid → lib/braid/main.rb} +16 -17
  15. data/lib/braid/mirror.rb +111 -24
  16. data/lib/braid/operations.rb +20 -18
  17. data/lib/braid/operations_lite.rb +19 -1
  18. data/lib/braid/sorbet/fake_runtime.rb +75 -0
  19. data/lib/braid/sorbet/setup.rb +18 -0
  20. data/lib/braid/version.rb +4 -1
  21. data/lib/braid.rb +23 -3
  22. metadata +26 -75
  23. data/.gitignore +0 -16
  24. data/.travis.yml +0 -15
  25. data/CONTRIBUTING.md +0 -24
  26. data/Gemfile +0 -3
  27. data/README.md +0 -234
  28. data/Rakefile +0 -12
  29. data/_config.yml +0 -1
  30. data/braid.gemspec +0 -35
  31. data/braids-json.schema.json +0 -91
  32. data/config_versions.md +0 -58
  33. data/spec/config_spec.rb +0 -59
  34. data/spec/fixtures/shiny/README +0 -3
  35. data/spec/fixtures/shiny/other-skit/layout.liquid +0 -219
  36. data/spec/fixtures/shiny/skit-layout.liquid.test +0 -2
  37. data/spec/fixtures/shiny/skit1.test +0 -2
  38. data/spec/fixtures/shiny-conf-1.0.9-lock/.braids.json +0 -10
  39. data/spec/fixtures/shiny-conf-1.0.9-lock/expected.braids.json +0 -9
  40. data/spec/fixtures/shiny-conf-1.0.9-lock/skit1/layouts/layout.liquid +0 -219
  41. data/spec/fixtures/shiny-conf-1.0.9-lock/skit1/preview.png +0 -0
  42. data/spec/fixtures/shiny-conf-breaking-changes/.braids +0 -14
  43. data/spec/fixtures/shiny-conf-breaking-changes/Spoon-Knife/README.md +0 -9
  44. data/spec/fixtures/shiny-conf-breaking-changes/Spoon-Knife/index.html +0 -20
  45. data/spec/fixtures/shiny-conf-breaking-changes/Spoon-Knife/styles.css +0 -17
  46. data/spec/fixtures/shiny-conf-breaking-changes/expected.braids.json +0 -10
  47. data/spec/fixtures/shiny-conf-breaking-changes/skit1/layouts/layout.liquid +0 -219
  48. data/spec/fixtures/shiny-conf-breaking-changes/skit1/preview.png +0 -0
  49. data/spec/fixtures/shiny-conf-future/.braids.json +0 -10
  50. data/spec/fixtures/shiny-conf-future/skit1/layouts/layout.liquid +0 -219
  51. data/spec/fixtures/shiny-conf-future/skit1/preview.png +0 -0
  52. data/spec/fixtures/shiny-conf-json-old-name/.braids +0 -9
  53. data/spec/fixtures/shiny-conf-json-old-name/expected.braids.json +0 -10
  54. data/spec/fixtures/shiny-conf-json-old-name/skit1/layouts/layout.liquid +0 -219
  55. data/spec/fixtures/shiny-conf-json-old-name/skit1/preview.png +0 -0
  56. data/spec/fixtures/shiny-conf-yaml/.braids +0 -8
  57. data/spec/fixtures/shiny-conf-yaml/expected.braids.json +0 -10
  58. data/spec/fixtures/shiny-conf-yaml/skit1/layouts/layout.liquid +0 -219
  59. data/spec/fixtures/shiny-conf-yaml/skit1/preview.png +0 -0
  60. data/spec/fixtures/shiny_skit1.2_merged/layouts/layout.liquid +0 -223
  61. data/spec/fixtures/shiny_skit1.2_merged/preview.png +0 -0
  62. data/spec/fixtures/shiny_skit1_conflicting/layouts/layout.liquid +0 -221
  63. data/spec/fixtures/shiny_skit1_conflicting/preview.png +0 -0
  64. data/spec/fixtures/shiny_skit1_mergeable/layouts/layout.liquid +0 -221
  65. data/spec/fixtures/shiny_skit1_mergeable/preview.png +0 -0
  66. data/spec/fixtures/skit1/layouts/layout.liquid +0 -219
  67. data/spec/fixtures/skit1/preview.png +0 -0
  68. data/spec/fixtures/skit1.1/layouts/layout.liquid +0 -219
  69. data/spec/fixtures/skit1.1_with_filter/.gitattributes +0 -1
  70. data/spec/fixtures/skit1.1_with_filter/layouts/layout.liquid +0 -219
  71. data/spec/fixtures/skit1.1_with_filter/preview.png +0 -0
  72. data/spec/fixtures/skit1.1x/layouts/layout.liquid +0 -219
  73. data/spec/fixtures/skit1.2/layouts/layout.liquid +0 -221
  74. data/spec/fixtures/skit1.3/layouts/README.md +0 -1
  75. data/spec/fixtures/skit1.3/layouts/layout.liquid +0 -221
  76. data/spec/fixtures/skit1_with_filter/.gitattributes +0 -1
  77. data/spec/fixtures/skit1_with_filter/layouts/layout.liquid +0 -219
  78. data/spec/fixtures/skit1_with_filter/preview.png +0 -0
  79. data/spec/integration/adding_spec.rb +0 -230
  80. data/spec/integration/config_versioning_spec.rb +0 -222
  81. data/spec/integration/diff_spec.rb +0 -597
  82. data/spec/integration/integration_helper.rb +0 -129
  83. data/spec/integration/push_spec.rb +0 -399
  84. data/spec/integration/remove_spec.rb +0 -81
  85. data/spec/integration/status_spec.rb +0 -165
  86. data/spec/integration/updating_spec.rb +0 -487
  87. data/spec/mirror_spec.rb +0 -119
  88. data/spec/operations_spec.rb +0 -66
  89. data/spec/test_helper.rb +0 -19
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braid
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cristi Balan
8
8
  - Norbert Crombach
9
9
  - Peter Donald
10
10
  - Matt McCutchen
11
- autorequire:
12
- bindir: bin
11
+ autorequire:
12
+ bindir: exe
13
13
  cert_chain: []
14
- date: 2022-03-02 00:00:00.000000000 Z
14
+ date: 2022-06-23 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: main
@@ -97,6 +97,20 @@ dependencies:
97
97
  - - ">="
98
98
  - !ruby/object:Gem::Version
99
99
  version: '0'
100
+ - !ruby/object:Gem::Dependency
101
+ name: irb
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
100
114
  description: A simple tool for tracking vendor branches in git.
101
115
  email: evil@che.lu norbert.crombach@primetheory.org peter@realityforge.org matt@mattmccutchen.net
102
116
  executables:
@@ -104,19 +118,10 @@ executables:
104
118
  extensions: []
105
119
  extra_rdoc_files: []
106
120
  files:
107
- - ".gitignore"
108
- - ".travis.yml"
109
- - CONTRIBUTING.md
110
- - Gemfile
111
121
  - LICENSE
112
- - README.md
113
- - Rakefile
114
- - _config.yml
115
- - bin/braid
116
- - braid.gemspec
117
- - braids-json.schema.json
118
- - config_versions.md
122
+ - exe/braid
119
123
  - lib/braid.rb
124
+ - lib/braid/check_gem.rb
120
125
  - lib/braid/command.rb
121
126
  - lib/braid/commands/add.rb
122
127
  - lib/braid/commands/diff.rb
@@ -127,71 +132,17 @@ files:
127
132
  - lib/braid/commands/update.rb
128
133
  - lib/braid/commands/upgrade_config.rb
129
134
  - lib/braid/config.rb
135
+ - lib/braid/main.rb
130
136
  - lib/braid/mirror.rb
131
137
  - lib/braid/operations.rb
132
138
  - lib/braid/operations_lite.rb
139
+ - lib/braid/sorbet/fake_runtime.rb
140
+ - lib/braid/sorbet/setup.rb
133
141
  - lib/braid/version.rb
134
- - spec/config_spec.rb
135
- - spec/fixtures/shiny-conf-1.0.9-lock/.braids.json
136
- - spec/fixtures/shiny-conf-1.0.9-lock/expected.braids.json
137
- - spec/fixtures/shiny-conf-1.0.9-lock/skit1/layouts/layout.liquid
138
- - spec/fixtures/shiny-conf-1.0.9-lock/skit1/preview.png
139
- - spec/fixtures/shiny-conf-breaking-changes/.braids
140
- - spec/fixtures/shiny-conf-breaking-changes/Spoon-Knife/README.md
141
- - spec/fixtures/shiny-conf-breaking-changes/Spoon-Knife/index.html
142
- - spec/fixtures/shiny-conf-breaking-changes/Spoon-Knife/styles.css
143
- - spec/fixtures/shiny-conf-breaking-changes/expected.braids.json
144
- - spec/fixtures/shiny-conf-breaking-changes/skit1/layouts/layout.liquid
145
- - spec/fixtures/shiny-conf-breaking-changes/skit1/preview.png
146
- - spec/fixtures/shiny-conf-future/.braids.json
147
- - spec/fixtures/shiny-conf-future/skit1/layouts/layout.liquid
148
- - spec/fixtures/shiny-conf-future/skit1/preview.png
149
- - spec/fixtures/shiny-conf-json-old-name/.braids
150
- - spec/fixtures/shiny-conf-json-old-name/expected.braids.json
151
- - spec/fixtures/shiny-conf-json-old-name/skit1/layouts/layout.liquid
152
- - spec/fixtures/shiny-conf-json-old-name/skit1/preview.png
153
- - spec/fixtures/shiny-conf-yaml/.braids
154
- - spec/fixtures/shiny-conf-yaml/expected.braids.json
155
- - spec/fixtures/shiny-conf-yaml/skit1/layouts/layout.liquid
156
- - spec/fixtures/shiny-conf-yaml/skit1/preview.png
157
- - spec/fixtures/shiny/README
158
- - spec/fixtures/shiny/other-skit/layout.liquid
159
- - spec/fixtures/shiny/skit-layout.liquid.test
160
- - spec/fixtures/shiny/skit1.test
161
- - spec/fixtures/shiny_skit1.2_merged/layouts/layout.liquid
162
- - spec/fixtures/shiny_skit1.2_merged/preview.png
163
- - spec/fixtures/shiny_skit1_conflicting/layouts/layout.liquid
164
- - spec/fixtures/shiny_skit1_conflicting/preview.png
165
- - spec/fixtures/shiny_skit1_mergeable/layouts/layout.liquid
166
- - spec/fixtures/shiny_skit1_mergeable/preview.png
167
- - spec/fixtures/skit1.1/layouts/layout.liquid
168
- - spec/fixtures/skit1.1_with_filter/.gitattributes
169
- - spec/fixtures/skit1.1_with_filter/layouts/layout.liquid
170
- - spec/fixtures/skit1.1_with_filter/preview.png
171
- - spec/fixtures/skit1.1x/layouts/layout.liquid
172
- - spec/fixtures/skit1.2/layouts/layout.liquid
173
- - spec/fixtures/skit1.3/layouts/README.md
174
- - spec/fixtures/skit1.3/layouts/layout.liquid
175
- - spec/fixtures/skit1/layouts/layout.liquid
176
- - spec/fixtures/skit1/preview.png
177
- - spec/fixtures/skit1_with_filter/.gitattributes
178
- - spec/fixtures/skit1_with_filter/layouts/layout.liquid
179
- - spec/fixtures/skit1_with_filter/preview.png
180
- - spec/integration/adding_spec.rb
181
- - spec/integration/config_versioning_spec.rb
182
- - spec/integration/diff_spec.rb
183
- - spec/integration/integration_helper.rb
184
- - spec/integration/push_spec.rb
185
- - spec/integration/remove_spec.rb
186
- - spec/integration/status_spec.rb
187
- - spec/integration/updating_spec.rb
188
- - spec/mirror_spec.rb
189
- - spec/operations_spec.rb
190
- - spec/test_helper.rb
191
142
  homepage: https://github.com/cristibalan/braid
192
143
  licenses: []
193
144
  metadata: {}
194
- post_install_message:
145
+ post_install_message:
195
146
  rdoc_options:
196
147
  - "--line-numbers"
197
148
  - "--inline-source"
@@ -211,8 +162,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
211
162
  - !ruby/object:Gem::Version
212
163
  version: '0'
213
164
  requirements: []
214
- rubygems_version: 3.1.4
215
- signing_key:
165
+ rubygems_version: 3.2.33
166
+ signing_key:
216
167
  specification_version: 4
217
168
  summary: A simple tool for tracking vendor branches in git.
218
169
  test_files: []
data/.gitignore DELETED
@@ -1,16 +0,0 @@
1
- *.gem
2
- *.rbc
3
- *.sw?
4
- .DS_Store
5
- .bundle
6
- .idea
7
- coverage
8
- nbproject
9
- pkg
10
- pkg/*
11
- rdoc
12
- /*.iml
13
- /*.ipr
14
- /*.iws
15
- /.rakeTasks
16
- /Gemfile.lock
data/.travis.yml DELETED
@@ -1,15 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.3.8
4
- - 2.4.6
5
- - 2.5.5
6
- - 2.6.2
7
- - jruby-9.2.6.0
8
- addons:
9
- apt:
10
- sources:
11
- - git-core
12
- packages:
13
- - git
14
- git:
15
- depth: 10
data/CONTRIBUTING.md DELETED
@@ -1,24 +0,0 @@
1
- # How to Contribute
2
-
3
- Pull requests are greatly appreciated and are what makes opensource great. Here's a quick guide:
4
-
5
- * Fork it
6
- * Create your feature branch (`git checkout -b my-new-feature`)
7
- * Commit your changes (`git commit -am 'Add some feature'`)
8
- * Push to the branch (`git push origin my-new-feature`)
9
- * Create new Pull Request
10
-
11
- Pester us if we don't get your Pull Requests merged in a timely fashion. :)
12
-
13
- ## How to speed the merging of pull requests
14
-
15
- * Make commits of logical units.
16
- * Ensure your commit messages help others understand what you are doing and why.
17
- * Check for unnecessary whitespace with `git diff --check` before committing.
18
- * Maintain the same code style.
19
- * Maintain the same level of test coverage or improve it.
20
-
21
- ## Additional Resources
22
-
23
- * [General GitHub documentation](http://help.github.com/)
24
- * [GitHub pull request documentation](http://help.github.com/send-pull-requests/)
data/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec
data/README.md DELETED
@@ -1,234 +0,0 @@
1
- # Braid
2
-
3
- [![Build Status](https://secure.travis-ci.org/cristibalan/braid.svg?branch=master)](http://travis-ci.org/cristibalan/braid)
4
- [![Gem](https://img.shields.io/gem/v/braid.svg?maxAge=2592000)](https://rubygems.org/gems/braid)
5
-
6
- Braid is a simple tool to help track vendor branches in a
7
- [Git](http://git-scm.com/) repository.
8
-
9
- ## Motivation
10
-
11
- Vendoring allows you take the source code of an external library and ensure it's
12
- version controlled along with the main project. This is in contrast to including
13
- a reference to a packaged version of an external library that is available in a
14
- binary artifact repository such as Maven Central, RubyGems or NPM.
15
-
16
- Vendoring is useful when you need to patch or customize the external libraries
17
- or the external library is expected to co-evolve with the main project. The
18
- developer can make changes to the main project and patch the library in a single
19
- commit.
20
-
21
- The problem arises when the external library makes changes that you want to
22
- integrate into your local vendored version or the developer makes changes to the
23
- local version that they want integrated into the external library.
24
-
25
- A typical "implementation" of vendoring is to simply download or checkout the
26
- source for the external library, remove the `.git` or `.svn` directories and
27
- commit it to the main source tree. However this approach makes it very difficult
28
- to update the library. When you want to update the library do you re-apply your
29
- local changes onto a new copy of the vendored library or do you re-apply the
30
- changes from the external library to local version? Both cases involve manual
31
- generation and application of patch files to source trees.
32
-
33
- This is where Braid comes into play. Braid makes it easy to vendor in remote git
34
- repositories and use an automated mechanism for updating the external library
35
- and generating patches to upgrade the external library.
36
-
37
- Braid creates a file `.braids.json` in the root of your repository that contains
38
- references to external libraries or mirrors. The configuration allows you to control
39
- aspects of the mirroring process such as;
40
-
41
- * whether the mirror is locked to a particular version of the external library.
42
- * whether the mirror is tracking a tag or a branch.
43
- * whether the mirror includes the entire external library or just a subdirectory.
44
-
45
- ## Installation
46
-
47
- gem install braid
48
-
49
- ## Quick usage - ruby project
50
-
51
- Let's assume we're writing the project `myproject` that needs grit in lib/grit. Initialize the repo (nothing braid related here):
52
-
53
- git init myproject
54
- cd myproject
55
- touch README
56
- git add README
57
- git commit -m "initial commit"
58
-
59
- Now let's vendor grit:
60
-
61
- braid add git://github.com/mojombo/grit.git lib/grit
62
-
63
- And you're done! Braid vendored grit into lib/grit. Feel free to inspect the changes with git log or git show.
64
-
65
- If further down the line, you want to bring new changes from grit into your repository, just update the mirror:
66
-
67
- braid update lib/grit
68
-
69
- If you make changes to the grit library and want to generate a patch file so that you can submit the patch file
70
- to the grit project:
71
-
72
- braid diff lib/grit > grit.patch
73
-
74
- Alternatively you can push changes back to the source directory directly using the following command. The command
75
- will push the changes to the branch `myproject_customizations` that has been branched off the source branch (`master`
76
- in this example). Omit the `--branch` argument to push directly to the source branch.
77
-
78
- braid push lib/grit --branch myproject_customizations
79
-
80
- Once those changes have been applied to grit you probably want to update your local version of grit again.
81
-
82
- braid update lib/grit
83
-
84
- ## More usage
85
-
86
- Use the built in help system to find out about all commands and options:
87
-
88
- braid help
89
- braid help add # or braid add --help
90
-
91
- ### Examples
92
-
93
- #### Adding a mirror
94
-
95
- braid add git://github.com/rails/rails.git vendor/rails
96
-
97
- #### Adding a subdirectory from a mirror
98
-
99
- This is useful if you want to add a subdirectory from a mirror into your own project.
100
-
101
- braid add --path dist https://github.com/twbs/bootstrap.git vendor/assets/bootstrap
102
-
103
- #### Adding a mirror based on a branch
104
-
105
- braid add --branch 5-0-stable https://github.com/rails/rails.git vendor/rails
106
-
107
- #### Adding a mirror based on a tag
108
-
109
- braid add --tag v1.0 https://github.com/realityforge/backpack.git vendor/tools/backpack
110
-
111
- #### Adding mirror locked to a revision
112
-
113
- braid add --revision bf1b1e0 git://github.com/rails/rails.git vendor/rails
114
-
115
- #### Updating mirrors
116
-
117
- # Update a specific mirror
118
- braid update vendor/plugins/cache_fu
119
- # Update all mirrors
120
- braid update
121
-
122
- #### Updating mirrors with conflicts
123
-
124
- If a braid update creates a conflict, braid will stop execution and leave the partially committed
125
- files in your working copy, just like a normal git merge conflict would.
126
-
127
- You will then have to resolve all conflicts and manually run `git commit`. The commit message is
128
- already prepared.
129
-
130
- If you want to cancel the braid update and the merge, you'll have to reset your working copy and
131
- index with `git reset --hard`.
132
-
133
- #### Locking and unlocking mirrors
134
-
135
- Lock to a particular version in the mirror.
136
-
137
- braid update --revision 6c1c16b vendor/rails
138
-
139
- Go back to tracking a particular branch.
140
-
141
- braid update --branch master vendor/rails
142
-
143
- #### Showing local changes made to mirrors
144
-
145
- braid diff vendor/rails
146
-
147
- ## Supported environments
148
-
149
- As of this writing (2022-01-20), we try to keep Braid working at least on Linux,
150
- OSX and Windows with recent versions of its dependencies (Git, Ruby, gems, etc.).
151
- Your mileage on other operating systems or with other versions of dependencies
152
- may vary. We don't have a procedure in place to systematically test Braid in
153
- multiple environments; typically, Braid developers just run the test suite on
154
- their own systems with whatever is installed. So breakages may sometimes occur.
155
- If you run into an environment-related problem, please report it and we'll fix
156
- it if feasible. Contributions to improve testing of Braid would be welcome.
157
-
158
- ## Braid version compatibility
159
-
160
- Since Braid has been regularly changing the configuration format and adding new
161
- features that some projects may choose to rely on, and somewhat less often
162
- making breaking changes in how the configuration is handled, problems can arise
163
- if different developers work on the same project using different versions of
164
- Braid. Since version 1.1.0, Braid refuses to operate if it detects potentially
165
- problematic version skew. If this happens, Braid will tell you what you can do.
166
- If you'd like an overview of what to expect, read on.
167
-
168
- Roughly speaking, the `.braids.json` configuration file contains a configuration
169
- version number that corresponds to a range of compatible Braid minor versions
170
- (`x.y`). "Patch" upgrades to Braid (i.e., `x.y.z` -> `x.y.(z+1)`) will never
171
- (intentionally!) have configuration compatibility implications and are always
172
- recommended as they may fix critical bugs.
173
-
174
- If you use a Braid version too old for your configuration file, Braid will
175
- direct you to the [configuration version history page](config_versions.md) with
176
- instructions to upgrade Braid. If you use a Braid version too new, Braid will
177
- tell you how you can upgrade your configuration file or find a compatible older
178
- Braid version to use. (As an exception, a newer version of Braid can run
179
- read-only commands on an older configuration file without upgrading it if there
180
- are no breaking changes.) If you upgrade your configuration file, then other
181
- developers on the project may need to upgrade Braid. Braid does not support
182
- downgrading a configuration file, though you can revert the commit that upgraded
183
- it if you haven't made any subsequent changes to the configuration.
184
-
185
- If you work on multiple projects, you may need to install multiple versions of
186
- Braid and manually run the correct version for each project. Fortunately, the
187
- RubyGems system makes this reasonably straightforward.
188
-
189
- Another approach is to standardize the Braid version for a project by listing
190
- Braid in a `Gemfile` (either checking in `Gemfile.lock` or using a version
191
- constraint in the `Gemfile`) and run the project's version of Braid via
192
- [Bundler](http://bundler.io/) with `bundle exec braid`. Even non-Ruby projects
193
- can do this if it's acceptable to have a `Gemfile` and `Gemfile.lock`. Ruby
194
- projects that don't want Braid to interact with their other gems can potentially
195
- put the `Gemfile` in a subdirectory and provide a wrapper script for `bundle`
196
- that sets the `BUNDLE_GEMFILE` environment variable. We do not yet have enough
197
- experience with this approach to make a firm recommendation for or against it.
198
-
199
- This is the best design we could find to prevent surprises and adequately
200
- support normal development processes while minimizing the additional maintenance
201
- cost of the version compatibility mechanism. We want to have a scheme in place
202
- that is robust enough to make it reasonable to encourage serious adoption of
203
- Braid, yet we don't want to spend extra work adding conveniences until there's
204
- evidence of sufficient demand for them.
205
-
206
- ## Contributing
207
-
208
- We appreciate any patches, error reports and usage ideas you may have. Please
209
- submit an issue or pull request on GitHub.
210
-
211
- ### Subversion
212
-
213
- While preparing to release Braid v1.0 the support for subversion repositories was removed as
214
- there was no active maintainers and inadequate test coverage. If there is anyone motivated to
215
- re-add and maintain the Subversion support, please contact the authors.
216
-
217
- # Authors
218
-
219
- * Cristi Balan
220
- * Norbert Crombach
221
- * Peter Donald
222
- * Matt McCutchen
223
-
224
- ## Contributors (alphabetically)
225
-
226
- * Alan Harper
227
- * Brad Durrow
228
- * Christoph Sturm
229
- * Dennis Muhlestein
230
- * Ferdinand Svehla
231
- * Michael Klishin
232
- * Roman Heinrich
233
- * Travis Tilley
234
- * Tyler Rick
data/Rakefile DELETED
@@ -1,12 +0,0 @@
1
- require 'bundler'
2
- Bundler::GemHelper.install_tasks
3
-
4
- require 'rake'
5
- require 'rspec/core/rake_task'
6
- desc 'Run all specs'
7
- RSpec::Core::RakeTask.new :spec do |task|
8
- task.rspec_opts = %w{--backtrace}
9
- end
10
-
11
- desc 'Test and package the gem'
12
- task :default => [:spec, :build]
data/_config.yml DELETED
@@ -1 +0,0 @@
1
- theme: jekyll-theme-tactile
data/braid.gemspec DELETED
@@ -1,35 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path('../lib', __FILE__)
3
- require 'braid/version'
4
-
5
- Gem::Specification.new do |s|
6
- s.name = %q{braid}
7
- s.version = Braid::VERSION
8
- s.platform = Gem::Platform::RUBY
9
-
10
- s.authors = ['Cristi Balan', 'Norbert Crombach', 'Peter Donald', 'Matt McCutchen']
11
- s.email = %q{evil@che.lu norbert.crombach@primetheory.org peter@realityforge.org matt@mattmccutchen.net}
12
-
13
- s.homepage = %q{https://github.com/cristibalan/braid}
14
- s.summary = %q{A simple tool for tracking vendor branches in git.}
15
- s.description = %q{A simple tool for tracking vendor branches in git.}
16
-
17
- s.rubyforge_project = %q{braid}
18
-
19
- s.files = `git ls-files`.split("\n")
20
- s.test_files = `git ls-files -- {spec}/*`.split("\n")
21
- s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
22
- s.require_paths = %w(lib)
23
-
24
- s.rdoc_options = %w(--line-numbers --inline-source --title braid --main)
25
-
26
- s.required_ruby_version = '>= 2.2.0'
27
- s.add_dependency(%q<main>, ['>= 4.7.3'])
28
- # XXX: Minimum version?
29
- s.add_dependency(%q<json>)
30
-
31
- s.add_development_dependency(%q<rspec>, ['>= 3.4.4'])
32
- s.add_development_dependency(%q<mocha>, ['>= 0.9.11'])
33
- s.add_development_dependency(%q<rake>)
34
- s.add_development_dependency(%q<bundler>)
35
- end
@@ -1,91 +0,0 @@
1
- {
2
- "title": "schema for .braids.json configuration file",
3
- "type": "object",
4
- "properties": {
5
- "config_version": {
6
- "type": "number",
7
- "enum": [
8
- 1
9
- ],
10
- "description": "configuration format version (see https://cristibalan.github.io/braid/#braid-version-compatibility)",
11
- "$comment": "So far, only version 1 is defined. (Version \"0\" is a mess and not worth writing a schema for.) When we have more than one defined version, we can look into the best way to make the rest of the schema dependent on the version."
12
- },
13
- "mirrors": {
14
- "type": "object",
15
- "description": "container for all added vendor repository mirrors",
16
- "patternProperties": {
17
- ".*": {
18
- "allOf": [
19
- {
20
- "type": "object",
21
- "description": "local path where the vendor content is placed, relative to the .braids.json file",
22
- "properties": {
23
- "url": {
24
- "type": "string",
25
- "description": "remote URL of the vendor repository"
26
- },
27
- "path": {
28
- "type": "string",
29
- "description": "path to a subdirectory or single file in the vendor tree (instead of the whole tree) to place at the specified local path"
30
- },
31
- "branch": {
32
- "type": "string",
33
- "description": "branch name of the vendor repository to track"
34
- },
35
- "tag": {
36
- "type": "string",
37
- "description": "tag name of the vendor repository to track"
38
- },
39
- "revision": {
40
- "type": "string",
41
- "description": "commit ID of the vendor repository currently used by the mirror"
42
- }
43
- },
44
- "required": [
45
- "url",
46
- "revision"
47
- ],
48
- "additionalProperties": false
49
- },
50
- {
51
- "$comment": "At most one of \"branch\" and \"tag\". Technique from https://stackoverflow.com/a/33358676 .",
52
- "oneOf": [
53
- {
54
- "not": {
55
- "anyOf": [
56
- {
57
- "required": [
58
- "branch"
59
- ]
60
- },
61
- {
62
- "required": [
63
- "tag"
64
- ]
65
- }
66
- ]
67
- }
68
- },
69
- {
70
- "required": [
71
- "branch"
72
- ]
73
- },
74
- {
75
- "required": [
76
- "tag"
77
- ]
78
- }
79
- ]
80
- }
81
- ]
82
- }
83
- }
84
- }
85
- },
86
- "required": [
87
- "config_version",
88
- "mirrors"
89
- ],
90
- "additionalProperties": false
91
- }
data/config_versions.md DELETED
@@ -1,58 +0,0 @@
1
- # Braid configuration version history
2
-
3
- The Braid configuration file (`.braids.json`) contains a configuration version
4
- number that indicates the format of the configuration file and the Braid
5
- features required by the project. You'll be directed to this page if you use a
6
- version of Braid that does not support the project's configuration version; see
7
- [the readme](README.md#braid-version-compatibility) for more information about
8
- the versioning scheme.
9
-
10
- To get a compatible version of Braid:
11
-
12
- 1. First check if the project has its own instructions to install and run Braid,
13
- and if so, follow them instead.
14
- 2. Look up the Braid versions corresponding to your current configuration
15
- version in the table below.
16
- 3. Run `gem query --remote --all --exact braid` to get a list of all existing
17
- versions of Braid, and choose one that is compatible with your configuration
18
- version (you probably want the newest such version); call it `x.y.z`.
19
- 4. Run `gem install braid --version x.y.z` to install the chosen version of
20
- Braid.
21
- 5. Run Braid as `braid _x.y.z_` (that's the chosen version surrounded by literal
22
- underscores) followed by your desired arguments.
23
-
24
- <table border="border">
25
- <tr>
26
- <th>Config. version</th>
27
- <th>Braid versions</th>
28
- <th>Changes since previous</th>
29
- </tr>
30
- <tr>
31
- <td>1</td>
32
- <td>1.1.x</td>
33
- <td>(Various)</td>
34
- </tr>
35
- <tr>
36
- <td>"0"</td>
37
- <td colspan="2">
38
- (Braid versions earlier than 1.1.0 have varying configuration formats and
39
- features and do not have a well-defined compatibility scheme. Braid 1.1.0 and
40
- newer refer to all of these formats as version "0" and are capable of correctly
41
- upgrading most of them. We recommend upgrading to Braid 1.1.0 or newer if you
42
- can.)
43
- </td>
44
- </tr>
45
- </table>
46
-
47
- <style>
48
- header, section#downloads, .inner > hr {
49
- display: none;
50
- }
51
- .inner {
52
- padding-top: 35px; /* same as header when it is visible */
53
- }
54
- th, td {
55
- border: 1px solid #6d6d6d;
56
- padding: 2px;
57
- }
58
- </style>