-
Notifications
You must be signed in to change notification settings - Fork 16
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
Proposal for Workflow #26
Comments
The other issue that I think this workflow can fix is that the committee carefully discusses each proposal in a small group and then in the whole committee in person. But many of the objections and questions and back and forth are more efficient to discuss in a GitHub issues and PRs, so that we can calmly think about each question and response and then collaborate to make the proposal better. So that when the committee meets in person, the simple stuff is already done, all the pros / cons are written up, and we can spend our time weighting the alternatives, as opposed to wasting time discussing things that could have been done beforehand at GitHub (such as that the proposal needs more examples). I've seen how the committee works and the most common objections, and I can now ask a lot of them myself and ensure each proposal meets a minimal level of quality here at GitHub. A related problem is that the committee only has a few members who are true experts on almost everything in the Fortran language. Most, including myself, only know some parts of Fortran really well, and not so some other parts. So by getting feedback from lots of people about a proposal at GitHub, asking lots of questions and discussing it here, we can iteratively improve the proposal to the level that an expert committee member would write right away. I have seen that happen just last week --- we spent an hour discussing pros and cons of various approaches, eventually agreeing on an approach that neither of us liked at first, but after doing the work, it seemed like the best solution --- and in the meantime an expert committee member sent us an email with exactly the same solution, that he intuitively figured out on his own. |
I think it best that this GitHub project serve as a mechanism for refining concepts into papers submitted to the committee. Any suggestion (as above) for a process that requires active participation by committee members to manage PR's is problematic for reasons I will not discuss. I think it is also very important to emphasize that the new feature list for F202x is closed. Issues opened here should either identify a specific item from the F202x in their subject line or clearly specify that the request is for a new feature in F202y. |
The above proposal does not require active participation by committee members beyond those already participating. And that's why I really like it.
…On Sun, Oct 20, 2019, at 2:45 PM, Tom Clune wrote:
I think it best that this GitHub project serve as a mechanism for refining concepts into papers submitted to the committee. Any suggestion (as above) for a process that requires active participation by committee members to manage PR's is problematic for reasons I will not discuss.
I think it is also very important to emphasize that the new feature list for F202x is *closed*. Issues opened here should either identify a specific item from the F202x in their subject line or clearly specify that the request is for a new feature in F202y.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub <#26?email_source=notifications&email_token=AAAFAWGTQFTQGKSL4XO4R7TQPTGQFA5CNFSM4JCR34LKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBYUYTQ#issuecomment-544296014>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAAFAWGA32HNV4WJNWKJWZDQPTGQFANCNFSM4JCR34LA>.
|
The other comment is that it's not enough to just write a proposal. One has to write a proposal for every meeting, keep track of it, react and discuss comments to it, etc. So creating proposals is a big part of it, but I want this repository to be a lot more than that. I would like it to become the outward facing interface to the committee.
Let me reiterate that this doesn't require current committee members to change how they work. All it takes is for a few members to participate here and to keep the issues in sync with what the committee is doing -- and we already have that. We have 3-4 members already participating here.
…On Sun, Oct 20, 2019, at 8:34 PM, Ondřej Čertík wrote:
The above proposal does not require active participation by committee members beyond those already participating. And that's why I really like it.
On Sun, Oct 20, 2019, at 2:45 PM, Tom Clune wrote:
> I think it best that this GitHub project serve as a mechanism for refining concepts into papers submitted to the committee. Any suggestion (as above) for a process that requires active participation by committee members to manage PR's is problematic for reasons I will not discuss.
>
> I think it is also very important to emphasize that the new feature list for F202x is *closed*. Issues opened here should either identify a specific item from the F202x in their subject line or clearly specify that the request is for a new feature in F202y.
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub <#26?email_source=notifications&email_token=AAAFAWGTQFTQGKSL4XO4R7TQPTGQFA5CNFSM4JCR34LKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBYUYTQ#issuecomment-544296014>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAAFAWGA32HNV4WJNWKJWZDQPTGQFANCNFSM4JCR34LA>.
>
|
I overall like this proposal for workflow a lot. My impression of this repository at its conception (even before reading this issue) was that it would allow the community to propose and discuss changes to the language in an organized, centralized, and streamlined way. GitHub provides tools to do exactly that. Maintainers of the repository being committee members allows them to communicate these proposals to the rest of the committee and have them considered for adoption. As Ondrej put it, it's an outward facing interface to the committee, and that's how I understood it from the get go. Nothing about the workflow seems to suggest about how the committee should operate -- that's already in place. Other committee members may or may not choose to participate. However I'd be surprised if most chose not to participate despite this repo churning out a few high-quality proposals or more. Community needs not fight the committee. It just needs to create enough great stuff that it'd be hard to ignore it. I suggest to carefully put together a separate document in this repo (perhaps GUIDELINES.md) that would describe in detail how can Joe Fortran Programmer who stumbles upon this repo contribute a high quality proposal that could land onto the committee table at a meeting. Some is already in README.md (great work), and a nice proposal layed out by Ondrej in this issue. |
@milancurcic thanks a lot for posting your opinion. I agree with you. I was thinking of putting this into the README itself, but we can certainly have a separate file such as GUIDELINES.md for this also and just reference it from the README. I'll try to create a PR for this and we can refine the wording at the PR. |
@certik I've been thinking about what you asked in the comments section of #61 and it's unclear to me as to the content and value of the two documents you seek. Before committing to any further work myself to develop documents toward the workflow, what I would find useful first is a honest discussion with WG5 to help answer the following basic questions:
Bottom-line: I am strongly inclined to pose the above basic but important questions and user needs with WG5 and give WG5 some space and time to respond, rather than develop any proposals or documents toward any plans or workflows at this stage. |
From a practical perspective, I see only two separate issues:
The second point is very important, I agree that if compiler vendors can't keep up, then that's a problem. |
Consider the first issue, "How to make WG5 and J3 more efficient". To be blunt and frank, gaining of a genuine acceptance among the top influencers on WG5 and J3 of such a need i.e., to be "more efficient" is in and of itself a HUUUGE challenge. And it will only be by a broad consideration of Diversity (of thought in terms of needs of many coders) and concern toward Inclusivity of a wider group of Fortranners to ensure their voices are consistently and sufficiently represented that WG5 and J3 can come to support and embrace the approach to do more faster. It is with this in mind the 10 or more questions like the ones upthread become important. Without a discussion along such lines and contemplation toward the underlying, a focus on efficiency will entirely lack any passion nor gain any urgency - things will just remain the way they are and circular arguments will defeat any change. Note there is a certain mass of Fortranners in the "national" agencies and in other institutional areas and also certain sectors elsewhere for whom status quo is either "just fine" or who even question or oppose revisions beyond FORTRAN 77 (but use extensions) or Fortran 90 (but want some HPC features , or especially Fortran 95 (but want improvements to ALLOCATABLEs). The needs of those in this "camp" are adequately met by the current situation. So then one can argue why bother changing anything, things are good as they are. Consider ISO/IEC JTC1/SC22/WG23 - Programming Language Vulnerabilities and what they write about Fortran in their document: in their last section 8 Implications for standardization, their last sentence is, "Identifying, deprecating, and replacing features whose use is problematic where there is a safer and clearer alternative in the modern revisions of the language or in current practice in other languages." It is only when one is willing to look at Fortran language more broadly and by paying close attention to "other" coders (besides the institutional ones) and "other" languages more intently one can have the motivation and impetus to be "more efficient". This is sorely missing at present with Fortran even if there is some superficial recognition of it. |
I think it's ok to have a very high bar for new features, especially big features like OO programming, templates or exceptions. I have a very high bar myself. But what is not ok is not to consider popular proposals, and alternatively consider proposals that do not have wide support. I think we need the committee to seriously consider any high quality proposal that we will submit. With just that we should be able to get what we want, and the committee does not need to change much. Then we'll go from there. |
Ideal Plan
Here is a proposal that I would like to get feedback on and discuss. This is my idea how this GitHub repository can work.
How Opensource Works
Successful open source projects, such as SymPy that I started 13 years ago, have:
Requests (PRs)
How the Fortran Committee Could Work
The Fortran Standards document is compiled from LaTeX source code, and
proposals that eventually get approved must be of very high quality and must
succeed multiple rounds of approvals. Fundamentally this is no different to
opensource development.
Here is how it could work:
The J3 committee chair and the WG5 committee chair are the two owners/leaders
The J3 and WG5 comittee voting members are the core developers, who approve
proposals in the same way they currently do (the proposal must be submited at
the J3 website, then advocated at the committee, and eventually approved).
Hundreds of people use this GitHub repository to submit PRs, where each PR is
a particular proposal. We all collaborate on the PRs, and if it gets merged,
it means that the proposal is of very high quality and is worth for the
committee to spend their time to consider it. We use issues to track how the
proposal gets processed by the committee and either approved or rejected. We
send further PRs to improve upon it based on the committee feedback.
Thousands of people open issues to propose new features and discuss them.
Anybody can create a PR to try to create a proposal. Only members of the
committee have push access (are allowed to merge PRs) and if they merge a PR,
they are responsible to advocate for it at the committee and collect the
commitee's feedback.
The committee itself does not need to change at all how it works, members of
the committee who do not have time or interest to be involved at GitHub do
not need to. For this plan to work, just several members of the committee
need to be actively involved (we already have 3 or 4 members who are
involved, and that is enough to get us started). As this GitHub repository
becomes more popular, I can imagine eventually all members of the committee
to at least read some of the responses and activity and what issues are
popular.
The whole community works on PRs and essentially works nonstop (with hundreds
of people in all time zones one gets a new PR every couple days, as in
SymPy). That way, when the committee meets, it has high quality proposals to
consider, and it does not need to spend precious committee time to develop
high quality proposals, because that work is outsourced to the wide
community.
The core developers (committee members) are the ones who ultimately decide
what goes in, and what does not. Just like now. The only thing that changes
is that the workflow becomes more efficient.
Some lessons from open source development that will apply here:
If we are successful, we will get thousands of issues from people all over
the world. Some good, some not as high quality. People will discuss issues.
Initially, many will be frustrated at how slow the committee works. The best
reaction that we can do is to encourage people to create PRs and try to
create high quality proposals for the issue(s) that they care about. And
invite them to collaborate on the PRs.
Experience shows that this scales really well. We build a team. People start
feeling positive about the future, because their voice is heard, and their
work (in PRs) is used and their (small or large) contributions help shape the
future of Fortran.
The text was updated successfully, but these errors were encountered: