Open coffmark opened 1 year ago
Hi there,
You're asking us to support a new package manager. We need to know some basic information about this package manager first. Please copy/paste the new package manager questionnaire, and fill it out in full.
Once the questionnaire is filled out we'll decide if we want to support this new manager.
Good luck,
The Renovate team
Did you read our documentation on adding a package manager?
SPM via XcodeGen
Swift
Used for .xcodeproj
or .xcworkspace
project management when developing large scale iOS apps.
.xcodeproj
or .xcworkspace
file is not human readable, so it is generated mechanically from the yml file.
Developers have several choices
The default file name is project.yml, but any .yml or .json file will do.
I want .json
file is out of the scope for this initial PR.
(Because the default file is YML format)
I would like to add new key to renvate config file (like xcodegenFileName
)
I want .json
file is out of the scope for this initial PR.
(Because the default file is YML format)
Dependencies can be added with a valid Git URL (HTTPS), and can be from any provider (GitHub, GitLab, Bitbucket, etc).
majorVersion
, from
(specify major version)minorVersion
(specify minor version)exactVersion
, version
(fixed version)minVersion
maxVersion
branch
revision
(Git SHA)all, but I want minVersion
, maxVersion
, branch
and revision
are out of scope for this initial PR.
and local packages are ignored.
Here is sample yml file
packages:
Yams: # remote package
url: https://github.com/jpsim/Yams
from: 2.0.0
Ink: # remote package
github: JohnSundell/Ink
from: 0.5.0
RxClient: # local package
path: ../RxClient
AppFeature: # local package
path: ../Packages
group: Domains/AppFeature
Semantic Versioning
^1.0.0
or 1.x
?^1.0.0
or 1.x
)No, the packages file format is linked to Xcode version used to generate it, but given the structure has mostly remained the same for a decade, this isn't a major concern
Yes, The default file for XcodeGen is project.yml, but users can dicide for themselves, so we need to specify the file name.
No
N/A
N/A
N/A
No
Sorry for the delay, Looking forward to hearing back from you !
How popular is this package manager?
Used for
.xcodeproj
or.xcworkspace
project management when developing large scale iOS apps..xcodeproj
or.xcworkspace
file is not human readable, so it is generated mechanically from the yml file.
Do these files need to be updated and kept in sync whenever the yml file changes? i.e. update it in the same PR?
Package File Detection
What type of package files and names does it use?
The default file name is project.yml, but any .yml or .json file will do.
We could match against project.yml by default, any other file names would need to be manually configured by the user.
I want
.json
file is out of the scope for this initial PR. (Because the default file is YML format)
OK
What fileMatch pattern(s) should be used?
I would like to add new key to renvate config file (like
xcodegenFileName
)
That shouldn't be necessary - we can reuse fileMatch
Is the fileMatch pattern likely to get many "false hits" for files that have nothing to do with package management?
- Yes
Names like project.yml
are likely to be in use for othe reasons
majorVersion
,from
(specify major version)minorVersion
(specify minor version)exactVersion
,version
(fixed version)minVersion
maxVersion
branch
revision
(Git SHA)
This probably requires a new Renovate "versioning" to handle these
Versioning
What versioning scheme does the package file(s) use?
Semantic Versioning
See above
Does this versioning scheme support range constraints, e.g.
^1.0.0
or1.x
?
- [ ] Supports range constraints (e.g
^1.0.0
or1.x
)- [x] No
Syntax like from:
does in fact mean constraints
Lookup
Is a new datasource required? Provide details
- [x] Yes, provide details.
- [ ] No.
It's possible we don't need a new datasource and can just reuse git-refs, github-tags, etc.
How popular is this package manager? Used for .xcodeproj or .xcworkspace project management when developing large scale iOS apps. .xcodeproj or .xcworkspace file is not human readable, so it is generated mechanically from the yml file.
Do these files need to be updated and kept in sync whenever the yml file changes? i.e. update it in the same PR?
Yes!
Is the fileMatch pattern likely to get many "false hits" for files that have nothing to do with package management? Yes
Names like project.yml are likely to be in use for othe reasons
I see, that's very possible.
majorVersion, from (specify major version) minorVersion (specify minor version) exactVersion, version (fixed version) minVersion maxVersion branch revision (Git SHA)
This probably requires a new Renovate "versioning" to handle these
I see. Thanks !
Thanks for answering some of my questions!
I have found it a bit difficult to make it happen.
I will reconsider, Thanks! :pray:
This can be left open for people in future to comment or implement
What would you like Renovate to be able to do?
Add Suprt XcodeGen
XcodeGen automatically generates .xcodeproj files from .yml files.
Library dependencies can be set in the .yml file and installed via SPM.
We would like to support new updates of library versions listed in .yml files with renovate.
How about it ?
Thanks!
If you have any ideas on how this should be implemented, please tell us here.
Implement a built in feature for this.
Is this a feature you are interested in implementing yourself?
Maybe