--
You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/php-fig/-/ar8Nnt6lGbMJ.
For more options, visit https://groups.google.com/groups/opt_out.
On Feb 28, 2013, at 12:22 AM, Lukas Kahwe Smith <sm...@pooteeweet.org> wrote:
> [...] then I am in violation of a standard I was previously compliant with and suddenly I feel forced to either remove the reference or change my code.
This is not how the FIG works, and is proving to be a fundamental misunderstanding of this group.
We don't make standards. There are no violations. There is no compliance. We recommend patterns that improve interoperability with like-minded software projects.
--
You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.
That would be a somewhat extremist way to look at it. I do not believe that the voting members would pass a revision that was such a radical departure.
--
I think there are cases where a revision would be useful:
- a typo is found in the text
- the text is too unclear and/or ambiguous
Of course, it's a fine line to walk, and there should be very strict requirements for those revisions to be accepted.
6.3 Revising a Standard A new version of an established Internet Standard must progress through the full Internet standardization process as if it were a completely new specification.
I think there are cases where a revision would be useful:
- a typo is found in the text
- the text is too unclear and/or ambiguous
Of course, it's a fine line to walk, and there should be very strict requirements for those revisions to be accepted.
If I were to take a shot at classifying our current PSRs, I would say that *most* are Recommendation Track. Meaning, most would only be changed for clarification of wording or typos or formatting.
Precisely. We need to be taking the long view on this stuff.Secondly, there is no existing rule on the books that says that PSRs are either revisable or non-revisable. It hasn't been established yet.I don't support "casual" updates (neither does Justin), but I think that allowing for improvement over time is a forward-thinking approach.
Precisely. We need to be taking the long view on this stuff.
I don't know about anyone else, but I'm getting a bit lost in having discussion here and in the PR (and it feels like in ten other places). Where are we discussing the PR - here or on Github?
Regards,
Andrew Eddie
Ok, for those that have just joined, we are talking about this file:
Active recommendations are intentionally not marked obsolete. The prior art for this is the Informational PEPs (see, PEP 1, PEP 8, etc). Looking through their revision history, most seem to have five or fewer revisions over the last 12 years. Revisions still have to go through the same approval process, so backwards incompatibilities will most likely get shot down anyway.
Informational PSRs are analogous to the Non-standards Track RFCs from the IETF, or to the Informational PEPs. They are things like coding standards and style guides and such, which won't break backwards compatibility if they're updated to stay relevant.
As I see it, our options are to follow the lead of Python / PEP and explicitly define and allow a reasonable scope for change, or to follow the lead of the IETF and adopt a long and rigorous proposal and recommendation and implementation cycle and set them in stone once they're completed.
Before we jump too hastily into the second option, we should remember:
It sometimes takes years to get something approved to even enter the IETF Standards Track.
Once a proposal has been proven useful, and approved by the IESG, it becomes a "Proposed Standard". By this point, there are often several real world implementations. It is "considered well-understood" and has recieved "significant community review".
A specification shall remain at the Proposed Standard level for at least six (6) months.
... then it can be considered for promotion to a Draft Standard. A this point it has to have "at least two independent and interoperable implementations from different code bases". Keep in mind that it's still not a standard, but it is considered reasonable for vendors to start deploying implementations "into a disruption sensitive environment." But it's not done yet. The Draft Standard can still be changed to solve problems found in implementation. And it has a waiting period as well:
A specification shall remain at the Draft Standard level for at least four (4) months, or until at least one IETF meeting has occurred, whichever comes later.
... so now we're at 10 months to a year. But it's still not done:
A specification may be (indeed, is likely to be) revised as it advances through the standards track. At each stage, the IESG shall determine the scope and significance of the revision to the specification, and, if necessary and appropriate, modify the recommended action. Minor revisions are expected, but a significant revision may require that the specification accumulate more experience at its current maturity level before progressing. Finally, if the specification has been changed very significantly, the IESG may recommend that the revision be treated as a new document, re-entering the standards track at the beginning.
... so after entering the (minimum) 10-month standards track to go from a proposal to a standard, if the board decides the spec has changed significantly, they may (and often do) recommend that it is treated as a new document and the 10-month clock starts over.
Ok, for those that have just joined, we are talking about this file:> There are two types of PSRs:Agree 100%. However I want to push that we use terminology used by ISO (International Organisation for Standardisation). See http://en.wikipedia.org/wiki/Normative under the heading of "Standards documents". In particular:
- Normative = prescriptive = how to comply
- Informative = descriptive = help with conceptual understanding
At the end of the day, I don't really mind what the two flavours are called, but as outlined below I think it is critical to mention that one type affects interoperability and the other doesn't.
Allow me to explain with an example that is very personal to me, the PHPDoc Standard and the use of DocBlocks.
To me, the PHPDoc Standard (description of the Syntax, which tags exist, which structures there are, ABNF and all) would be a recommendation on the Normative track. Although it isn't code that is being described it does however prescribe syntax that helps interoperability between projects (how can an IDE or documentation generator do its work if the recommendation is not followed?).
I would however consider the recommendation describing which DocBlocks and tags are required, or recommended, in a project to be an informative track. What a project requires in terms of source documentation is something that is to be considered a coding standard and often very personal.
Agreed.You could go a step further than "minimum best practice"
in the second document, and produce recommendations. That's the prerogative of a PSR-2-type document (Informational?).
Because it doesn't represent a strict standard, or an all-or-nothing implementation, it can provide a few more more SHOULDs and MAYs, while the PSR-3-type documents are mostly MUSTs and SHALLs.
Yes. Well, I think it [PSR-2] would be informational - we'll have to wait for the vote to see if that's the majority view.Because it doesn't represent a strict standard, or an all-or-nothing implementation, it can provide a few more more SHOULDs and MAYs, while the PSR-3-type documents are mostly MUSTs and SHALLs.
Although I agree it's neither a strict standard nor an all-or-nothing implementation, it's worth pointing out (as MVOP did in his blog post) that SHOULD and MAY are not easily implemented in a code sniffer.
Overall, a recommandation only made of SHOULDs and MAYs would benefit no one : those in favor would have a hard time enforcing it, and those against would simply not care, just as they would for MUSTs.
Just my 2 cents of course, and not at all opposing your statement, but since we heard a lot about people who don't implement/enforce PSR-2, I'd like to bring some perspective on this ;)Oh, and please forgive my poor english !
Overall, a recommandation only made of SHOULDs and MAYs would benefit no one : those in favor would have a hard time enforcing it, and those against would simply not care, just as they would for MUSTs.I think it's only a problem for Greg to work out what the default settings will be when he ships a new PSR in PHP Code Sniffer (or similar). But after that, any project is probably going to customise the standard anyway. So while two projects may be PSR-N compliant "technically" as a lowest common denominator, each is more likely going to be PSR-N+, where "+" varies from project to project. It's really up to the project to enforce their own take on standards anyway. It's not FIG's job to enforce them.
Oh, and please forgive my poor english !It's pretty good :)
https://github.com/php-fig/fig-standards/pull/93/filesThis is my attempt at drafting a bylaw to address how we handle updates, versions, and replacements of existing PSRs.It was born to address some of the questions around the proposed vote to "adjust" PSR-2, but also think about the future of the group's work.
--Ryan ParmanGeek. Writer. Music Lover."Illiteracy will not be defined by those who cannot read and write, but by those who cannot learn and relearn." — Alvin Toffler
To partially answer you Andrew, all discussions should be on the mailing list, github is just for making PR's
Working out a good governance model only takes weeks if you rush it. Good governance models are hard. They don't get figured out in a weekend of mass emailing by those who are otherwise bored that weekend.
To be clear: I'm not suggesting that "those who can't come to phpTek have no input". But I've been through many in-person sprints, both development focused and process focused, and in-person conversation is about 10x as productive as email. How we then handle communication from that meeting is also critically important. I've seen that go very well and very horribly. I'm willing to help organize/coordinate something Friday evening or Saturday for phpTek if others are interested.