Subject: PSARC FastTrack: sac changes to support open psarc cases As promised/threatened, here is the proposal for opening up ARC discussions to include the OpenSolaris community. While this proposal presumes some knowledge of "how things are currently being done", I've tried to make it make sense without having to deep dive into the details of the sac infrastructure. -John Template Version: @(#)sac_nextcase %I% %G% SMI This information is Copyright 2006 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: sac changes to support open psarc cases 1.2. Name of Document Author/Supplier: Author: John Plocher 1.3 Date of This Document: 06 October, 2006 4. Technical Description Contents: Requirements Scope Constraints Proposal Details Use cases Failure modes Requirements: R1) The OpenSolaris bound projects going thru the existing ARC process need to be observable by the external members of the OpenSolaris community. This implies that they: R1a) will receive all email relating to the case R1b) will see the same case archives/materials as internal ARC participants R2) External members of the OpenSolaris community must be able to participate as equals in the review of open ARC cases. This implies that they: R2a) can send mail about the case that goes to the entire ARC community Out of scope: R2b) Direct submission of fasttracks and onepagers by members of the external community. R3) Cross-ARC discussions still need to be supported (i.e., joint PSARC/LSARC reviews...) Scope: In: Participating as peers in the review of all OpenSolaris ARC Reviews. This means being able to comment, not just watch. Out: External ARC membership, internship or licensees Out: Direct external submission of cases or materials (These will be the focus of followup efforts) In: PSARC focus Out: Other ARCs (but R3 (above) may require more) In: Mechanisms focused on email communication Out: Logistics of ARC meetings, conference calls, etc Out: Moving all of PSARC and its SAC archives/tools off of sac.sfbay and onto opensolaris.org. Constraints: C1) Don't surprise people by delivering mail to external people when it is sent to a Sun-internal alias. C2) Don't expose mail archives that contain "internal" email messages (via C1) (This impacts the mirroring of case materials on opensolaris.org and the diligance needed to publish historical cases) C3) Don't subdivide the community when reviewing open cases. Internal PSARC and external Community participants should experience the same behaviors (and face the same obstacles) C4) Internal and External participants should use the same tools where possible. C4) Don't break the existing tools used by PSARC members. Proposal: Ditch the current psarc-ext cruft as a failed (but useful) experiment. Move all 3 of the psarc-ext cases (550, 555, 561) back into the psarc case hierarchy. Fix up the projects.db file on sac to reassign them to psarc. New cases will be assigned to PSARC independently of whether or not they were open or closed. Modify the onepager template to ask whether a proposal is open or closed. Ditto for sac_nextcase. Use the info to initialize the IAM:Exposure field. Set up the sac aliases to have the sac mail filter do "bounce mail checks" before sending mail on to real people (psarc members, opensolaris.org subscribers, ...) or bouncing back to the sender. Have the sac mail filter automatically forward open mail to external observers for open cases. Detect "intent mismatches": Open case mail sent to a closed alias should bounce, closed case mail to an open alias can be allowed. Use the IAM:Exposure field to identify whether a case is open or not; use the sac mail filter and /etc/aliases to tag aliases as open or closed. Details: Modify sac_mail_filter.pl: M1) Add command line option: --policy={open,closed} The default is closed. sac_mail_filter and all the sac.sfbay mail aliases are "SAC tools consolidation" private implementation details For each case found on the Subject: line: M1a) if any "Exposure: open" and --policy=closed Do not deliver the mail to anyone. If there is only ONE To: or Cc: address, bounce it back to the sender with a message like the following: "Error: Private conversations are not allowed about open cases. Your email was not delivered to anyone. You addressed your mail to a 'closed' alias, but referred to an 'open' case () on the Subject: line. To Fix: ..." If there are multiple To:/Cc: aliases, bounce with a message like: "Error: Private conversations are not allowed about open cases. Your email was not delivered to , but it was delivered to . You addressed your mail to a 'closed' alias, but referred to an 'open' case () on the Subject: line. To Fix: ..." M1b) "Exposure: open" and --policy=open Forward to psarc-subscribers Forward to IAM:Interest list Forward to psarc-interest-ext@sun. M1c) "Exposure: closed/manual and --policy=closed Forward to psarc-subscribers Forward to any "*@sun.com" on IAM:Interest list. DO NOT forward to non-@sun.com IAM:Interest DO NOT forward to psarc-interest-ext@sun. M1d) "Exposure: closed/manual and --policy=open ALTERNATIVE 1: (same as M1b: open/open) Forward to psarc-subscribers Forward to all IAM:Interest lists Forward to psarc-interest-ext@sun ALTERNATIVE 2: (similar to M1a: mismatch) Do not deliver the mail to anyone, but instead bounce the mail with an "intent error" like the above. M2) log messageIDs and check for duplicates. This needs to be multi-thread/multi-process safe to avoid race conditions. M3) Allow IAM:Interest to contain the name of an ARC to be included in discussions (instead of requiring a hardcoded alias). That is, allow Interest: WSARC, John.Plocher@Sun.Com, Joerg@OpenSolaris.org Use this to generate the proper forwarding aliases depending on the case's open/closed state: open => *arc-subscribers, *arc-interest-ext@sun closed => *arc-subscribers ONLY M4) Modify the existing Committed Private PSARC sac mail alias implementation from the existing psarc@sac: sac-mail-filter psarc-subscribers [for reference, psarc-subscribers is a project private implementation detail, made up of psarc-member-list psarc-intern-list psarc-interest private-psarc-log private-psarc-hypermail arc-interest ] to simply: psarc@sac: sac_mail_filter --policy=closed M5) Create (as "SAC tools consolidation private") psarc-ext@sac: sac_mail_filter --policy=open M6) Create (as "SAC tools consolidation private") psarc-interest-ext@sun.com (via netadmin) Populate with "opensolaris-arc@OpenSolaris.org" M7) Create (as Public/Committed) psarc@OpenSolaris.org" as an alias that only redirects incoming email to psarc-ext@sac (repeat for psarc-members, psarc-record, psarc-agenda and psarc-business as required) M8) Repeat for lsarc, wsarc, fwarc, but don't populate their *-interest-ext@sun.com aliases with anything for now. Use cases: Send all closed case email to PSARC@sun.com Send all open case email to PSARC@opensolaris.org Generate bounce messages when an open/closed mismatch is detected. Normal closed behavior: To: PSARC@Sun.Com (a closed alias) Subject: 2006/400 (a closed case) PSARC@Sun.Com -> psarc@sac -> sac-mail-filter-filter --policy=closed PSARC/2006/400/IAM::Exposure: closed matches the --policy=closed filter attribute, so send out mail to the usual internal suspects... Normal open behavior: To: PSARC@OpenSolaris.org (an open alias) Subject: 2006/555 (an open case) PSARC@OpenSolaris.org -> psarc-ext@sac -> sac-mail-filter-filter --policy=open Exposure: open matches the --policy=open filter attribute, so send out mail to the usual internal and external suspects... Mismatch (private discussions on open cases): To: PSARC@Sun.Com (a closed alias) Subject: 2006/555 (an open case) Exposure: open DOES NOT match the --policy=closed filter attribute, so bounce the message back to sender with an error. Mismatch (open discussions on closed cases): To: PSARC@OpenSolaris.org (an open alias) Subject: 2006/400 (a closed case) Exposure: closed DOES NOT match the --policy=open filter attribute, but the message itself is non- proprietary. Send a warning message to the sender informing them that, since the case is closed, public discussion is not desirable, but that their message *was* delivered. Send out mail to the usual internal and external suspects. [Option: tag the message with a note saying "public discussion about a private case" to alert recipients to consider what they say?] Crossposting to multiple internal ARCs: To: WSARC@Sun.Com Cc: PSARC@Sun.Com Subject: 2006/400 (a closed case) Message will get processed by the mail filter twice. The first invocation will log the messageID, process the message, archive the mail and forward it on to any sun-internal IAM:Interest lists; all other filter invocations will see that the messageID has been processed and will only send the message on to the per-ARC specific subscribers (but not re-archive or resend to any IAM:interest aliases). Crossposting to multiple external ARCs: To: WSARC@OpenSolaris.org Cc: PSARC@OpenSolaris.org Subject: 2006/550 (an open case) Message will get processed by the mail filter twice. The first invocation will log the messageID, process the message, archive the mail and forward it on to any IAM:Interest lists; all other filter invocations will see that the messageID has been processed and will only send the message on to their per-ARC specific subscribers (but not re-archive or resend to any IAM:interest aliases). Failure modes: Crossposting between open and closed aliases starts conversations that can not be continued, gives incorrect user feedback and segregates the community: To: WSARC@Sun.Com Cc: PSARC@OpenSolaris.org Subject: 2006/555 (an open case) The message will generate a bounce back to the sender via the WSARC alias due to the mismatch between a closed alias and an open case. This means that WSARC members will not see this email. The message *will* go to PSARC members (et.al) and psarc-interest-ext@sun as expected because of the Cc to PSARC@OpenSolaris.org. The bounce message will alert the sender to the fact that their email only went to part of the intended audience. Followups from external people to the "closed ARC alias" will be dropped by netadmin (because of the "no mail from the Internet" alias property). Followups from external people cc'd to the "open ARC alias" will succeed, but only to part of the intended audience. Followups from within Sun will again trigger this failure. There is not much that tools on sac.sfbay can do about this type of "pilot error"; even lifting the "no internet mail" block on the *ARC@sun aliases won't help. Take away: Don't mix open and closed policy aliases. Instead, use either M3 (vastly preferred): Add "WSARC" to PSARC/2006/550's IAM:Interest Send mail to To: PSARC@OpenSolaris.org Subject: 2006/555 (an open case) or M6: Send mail to To: WSARC@OpenSolaris.org Cc: PSARC@OpenSolaris.org Subject: 2006/555 (an open case) To: WSARC@Sun.Com Bcc: psarc-ext@sac.sfbay Subject: 2006/555 (an open case) This is similar to the above failure, except that nobody at all will be able to reply. The message will generate a bounce via the WSARC alias, but will go to PSARC members(et.al) and psarc-interest-ext@sun because of the Bcc. Follow ups (to WSARC@sun.com) from outside of Sun will be dropped by netadmin because of its "no mail from the Internet property; follow ups from within Sun to the WSARC alias will generate bounces (M1a, above). Take away: The *@sac aliases (like psarc-ext) are ARC consolidation private interfaces; don't use them. 6. Resources and Schedule 6.4. Steering Committee requested information 6.4.1. Consolidation C-team Name: sac 6.5. ARC review type: FastTrack