Skip to content

Conversation

@Cruikshanks
Copy link
Member

This stems from an agreed refactoring of PR #8 (Plsql coding standards). It was highlighted in that PR some of the content is applicable generally, not just to PL/SQL.

So it was suggested to move the more general content into the standards README.

So the content of this PR comes from @nigejohnson and questions and comments should be directed to him 😁

Anything regards structure and how the changes were made, feel free to fire at me @Cruikshanks 😰

@Cruikshanks Cruikshanks added the enhancement New feature or request label Jan 3, 2020
@Cruikshanks Cruikshanks marked this pull request as ready for review January 3, 2020 17:12
Cruikshanks added a commit that referenced this pull request Jan 3, 2020
As discussed in the PR, this section felt applicable to standards generally, not just this one.

Rather than muddy this PR, it has been deleted here, but added as part of a new PR (see #25)
Cruikshanks added a commit that referenced this pull request Jan 3, 2020
Same as the previous change.

As discussed in the PR, this suggestion would be applicable to all standards generally, not just this one.

Rather than muddy this PR, it has been deleted here, but added as part of a new PR (see #25)
@Cruikshanks Cruikshanks self-assigned this Jan 5, 2020
Cruikshanks added a commit that referenced this pull request Jan 5, 2020
This is the content from the original PR for PL/SQL standards. I've had to do a certain amount of editing to the format and content of the pre-amble as part of this.

The original PR also brought in the idea of all standards needing to be versioned, and these versions having to be referred to, which is something we've also extracted out as a new PR (see #25).

As that has yet to be decided I've omitted that content. Also the original contribution marked the content up as headings. That's where I have re-formatted things so we have actual headings, and the extracted text then forms the section content.
@Cruikshanks Cruikshanks mentioned this pull request Jan 5, 2020
@Cruikshanks
Copy link
Member Author

This forms part of the refactoring of PR #8 @bensagar-ea . As this includes the idea of versioning all our standards I'm guessing there may be lots of discussion on this point alone, so shout if this needs splitting again!


## Versioning

Our standards are updated on an ongoing basis. Anything using these standards should therefore refer to these standards not only be name, for example **C# coding standards**, but also by version, for example **1.0**.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As we are using a version control system for these standards, I don't know that we need to explicitly number them as well. I'm happy to refer to version numbers of external standards where they exist, but it doesn't seem worth the overhead internally.
I think this standard should say to refer to the date that the applicable standards were adopted, so it would be straightforward to see what versions were in effect at that point.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💯

Cruikshanks added a commit that referenced this pull request Jan 8, 2020
This stems from an agreed refactoring of PR #8 (PL/SQL coding standards). It was highlighted in that PR some of the content would be more appropriate as guidance, rather than being a standard we must all follow.

So it was suggested to extract and move it into the `/guidance` section of the project.

SO the content of this PR comes from @nigejohnson, structure and how the changes were made, was me @Cruikshanks

I had to do a certain amount of editing to the format and content of the pre-amble as part of this.

The original PR also brought in the idea of all standards needing to be versioned, and these versions having to be referred to, which is something we've also extracted out as a new PR (see #25).

As that has yet to be decided I've omitted that content. Also the original contribution marked the content up as headings. That's where I have re-formatted things so we have actual headings, and the extracted text then forms the section content.
@Cruikshanks Cruikshanks force-pushed the expand-standards-readme branch from fef7f49 to c7e7570 Compare January 8, 2020 10:02
@Cruikshanks
Copy link
Member Author

@bensagar-ea have updated the content based on your feedback.

@nigejohnson
Copy link
Contributor

Couple of things:
On the "do we refer to standards we have created by an explicit version number or date" we ought to go for an explicit version number. "Date" will get too wordy and confusing when trying to refer to a particular version of the standards, e.g. in project documentation, especially as git strongly encourages lots of branching and frequent commits. Also this is the normal practice for any formal product, for example software products usually have a version number in their own right, clearly "stamped" somehow on the distributed product. As a product can exist independently of its source control system the version of a product should be part and parcel of a product and not dependent on that source control system.
Secondly, should we be entirely losing the sections on the "derivation" of standards? Knowing how a standard came to be and to what extent it is proven by practice will be useful for understanding when and how a standard should be revised. For example, if a standard has been used a lot in circumstances that are still largely unchanged then the standard is likely to still be "sound", but if the circumstances that "evolved" a standard are now known to have changed dramatically, then the relevance of standard in its current form is more open to question. (We are creatures in time and knowing the history of any complex human product is normally essential to understanding why and how it can be changed!).

@nigejohnson
Copy link
Contributor

Another random thought triggered by the previous thought: a version control system is the most appropriate place to store content (especially while it is still living content that is subject to change), but is it the best place or mechanism to publish/distribute content?
(NB This is also likely to be relevant to the "versioning" discussion, as if we intend to allow for (or possibly even can't prevent!) our content being used anywhere anywhere other than directly in github then we'll need an easy way for people to be able to reconcile what they are using/reading to what's stored in github, if that makes any sense., e.g. how do they know they using the latest version?).

@ben-sagar
Copy link
Contributor

So after a bit more pondering on this, I think we should go with what we put in the principles:

...all standards must define the period of time that they are effective and how they have changed over time

This still seems valid to me. What's missing at the moment is a statement in the standards of when they have become effective. Can we just agree how to make that explicit?


Our standards are updated on an ongoing basis. Anything using these standards should therefore refer to these standards not only by name, for example **C# coding standards**, but also by date, for example **as at 2020-01-08**.

Whilst we always endeavour to keep code consistent with the latest standards, not all projects are active. This means as standards change some projects will no longer meet them. Having a reference to when the standard was last applied, will help when determining the effort to update a project
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Whilst we always endeavour to keep code consistent with the latest standards, not all projects are active. This means as standards change some projects will no longer meet them. Having a reference to when the standard was last applied, will help when determining the effort to update a project
Whilst we always endeavour to keep code consistent with the latest standards, not all projects are active. This means as standards change some projects will no longer meet them. Having a reference to when the standard was last applied, will help when determining the effort to update a project.

I also wonder if it would be useful to say where this reference should be? Project README?

Cruikshanks added a commit that referenced this pull request Jan 13, 2020
This is the content from the original PR for Java standards. I've had to do a certain amount of editing to the format and content of the pre-amble as part of this.

The original PR also brought in the idea of all standards needing to be versioned, and these versions having to be referred to, which is something we've also extracted out as a new PR (see #25).

As that has yet to be decided I've omitted that content.
Cruikshanks added a commit that referenced this pull request Jan 14, 2020
As discussed in the PR, this suggestion would be applicable to all standards generally, not just this one.

Rather than muddy this PR, it has been deleted here, but added as part of a new PR (see #25).
Cruikshanks added a commit that referenced this pull request Jan 14, 2020
As discussed in the PR, this section felt applicable to standards generally, not just this one.

Rather than muddy this PR, it has been deleted here, but added as part of a new PR (see #25)
This is taken from a 'Rationale' section in the PL/SQL PR #8. We have moved it here because of the suggestion it applies to all standards.
Include in PR #8 was the recommendation that all standards should be versioned, and where they are used the version should be referred to.

Again this would be some that applicable to all standards, not just PL/SQL so it has been migrated here to allow PR #8 to progress, and this suggestion be discussed in isolation.

For reference, as part of the copy across I have made the following changes

- slight grammatical tweaks to fit the new context
- markdown formatting tweaks, namely using bold to highlight the examples
- removing the line breaks within sentances. There is no need to break lines in markdown at 80 chars, particularly when it is solely for display in GitHub
As per PR feedback and discussion in the community, because the standards are version controlled we shouldn't have to manually version them as well. But if we know the date, it should be simple enough to determine the "version" of a standard being referenced.
This updates the reasoning why not all projects will meet our standards, and gives a reason why we would want a reference recorded somewhere to when a standard was last applied/checked.
@Cruikshanks Cruikshanks force-pushed the expand-standards-readme branch from a1e013d to e63944a Compare February 10, 2020 12:54
@Cruikshanks
Copy link
Member Author

So after a bit more pondering on this, I think we should go with what we put in the principles:

...all standards must define the period of time that they are effective and how they have changed over time

This still seems valid to me. What's missing at the moment is a statement in the standards of when they have become effective. Can we just agree how to make that explicit?

I've put together PR #53 . Is that the kind of thing you were thinking of @bensagar-ea ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants