-
-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
settle on conventions for versioning #7
Comments
I'm not sure I'm right about this, but it seems like 2. would work better when different developers adapt new versions at different times - e.g. Mendeley could point to styles/1.1/ as soon as they implement 1.1 and Papers2 could stay with 1.0 as long as needed. |
I guess the potential downside is figuring out what happens to users across those changes? If I have styles I'm using, do they automatically get updated? If yes, how? |
shouldn't that be the ref managers' job? - wouldn't seem so hard to include in an upgrade routine. |
But the ref manager still needs a mechanism to understand a version change. |
My vote is for 2. |
If we go this way, perhaps we ought to couple it with changes contemplated in issue #2. |
Rereading this I'm confused. The issue description talks about ids, but these don't have to be resolvable URLs. Shouldn't we be talking about links? |
Yes, that's a reasonable conclusion. We've just in the past tended to have them be the same. There's no reason we need do that now, and it actually may help us solve some issues if we don't. |
One final question though: how would dependent styles fit in this scenario? Presumably they wouldn't change across schema changes? |
Well, dependent styles did change significantly between CSL 0.8.1 and 1.0, and there very well could be future changes to their format. I think the safest choice is just to treat them the same as independent styles. |
So, the more I think about it, at least the way we implement dependent styles currently, we basically have to implement this as:
We need dependent styles to reference the appropriate version of the style. We also need style IDs to be dereferenceable, for the reasons I described here in this thread on xbiblio-devel. From an implementation perspective, I don't think changing the style IDs should be bothersome. There should never be multiple styles with the same title installed anyway, since this would be confusing, so we can use title, rather than ID, to determine what is an update to an existing style and what is a new style. We could also have separate style base IDs and versioned style IDs, but this would require schema modifications. |
@simonster: could you explain requirement (1)? Starting with CSL 1.0, independent and dependent styles carry a version attribute on cs:style. Wouldn't it suffice to combine the value of this attribute with a style ID that is stable between CSL versions? |
I think we still do. Suppose that we have a CSL 1.0 dependent style that references (e.g.) http://citationstyles.org/styles/apa.csl. As we currently implement it, when the dependent style is installed, the implementation fetches http://citationstyles.org/styles/apa.csl to get the parent. Now suppose that http://citationstyles.org/styles/apa.csl is updated to CSL 1.1, but the implementation still supports only CSL 1.0. Now, if a user installs the CSL 1.0 dependent style, it still fetches http://citationstyles.org/styles/apa.csl, but this is a CSL 1.1 style, so it doesn't work. If we want to make dependent styles work properly without a schema change, I can think of three options:
If we are willing to admit a schema change, we also have a fourth option:
Personally, I lean toward options 1 or 2. From an implementer's perspective, I don't think it makes much of a difference which we adopt. 1 would work with our current implementation and 2 would require only a couple additional lines of code. |
I think we should clearly distinguish between style IDs (URIs) and links (URLs) in this discussion (and the CSL specification could definitely be improved on this point). If we go for proposal 1, would the following do? Independent styles:
Dependent styles:
(the main limitation of this is that the dependent styles don't include the style IDs of the independent parent styles. Also, in this particular example the dependent styles don't carry a link to themselves, although the schema doesn't forbid this) |
Rintze, as far as I can tell, that should work. |
… (per example citation-style-language#7, Citing Medicine, 2nd ed., p. 130).
@adam3smith I think this is resolved now with the versioned repo branches? |
I'm fine with what we have, but I'm not sure it actually fixes the issues raised above? E.g still not clear how the 1.0.2 version of APA (e.g.) is uniquely identified |
Wouldn't that be identified by the repo branch it's retrieved from rather than in the style itself? |
My understanding from Simon's point above is that ideally this would be in the style so that self link (or URI) resolve uniquely e.g. for a dependent style, but I think having implementations commit to a branch is acceptable as a solution, so I'm fine with keeping this closed. |
We need to figure out our plan going forward for version-management vis-a-vis schema changes. Possible options:
http://citationstyles.org/styles/1.1/apa.csl
.The text was updated successfully, but these errors were encountered: