Frameworks should be allowed to have more than just letters and numbers. As it currently stands those are the only characters allowed although some frameworks have - in the name. This can be fixed by changing the regex to /[^a-zA-Z\-\d]/ and writing a test or two.
This issue also exists for libraries from here libraries should also be able to have - and + (stdc++?)
These should both also allow underscores which could simplify the regex to /[^\w\-\+]/
There may be a larger issue with this. I've seen a few specs including specific versions I assume with something like z.1 or std++.6.0.9 which wouldn't work with this current plan.
curl.OSX although this example could probably switch to vendored_libraries
Another weird one: Geoloqi-$(CONFIGURATION)
At this point all the libraries that showed up because of this stricter check and were actually broken have been fixed. All the rest are currently correct with one of the above issues.
To recap tests should accept:
👍 sorry kept running into new ones.
I think the best way to validate this would just be to check for lib in the beginning and the dylib at the end. I was hoping we could verify with dot's but that obviously wouldn't work either.
Just to summarize, frameworks just need the regex modified but libraries need to be reverted?
I believe so. Frameworks shouldn't be able to specify versions like that (I don't think). I didn't see any frameworks trying to do that in the list I was going over yesterday.
The main purpose of the regex was to prevent the accidental specification of:
spec.frameworks = 'z, x'
So it shouldn't be completely reverted. I also think that we should add the examples above to the specs. Finally, I am of the opinion that we should not be over restrictive, and although not framework uses versions like that it is still a valid name and should be allowed.
[Spec::Linter] Improve frameworks validation logic