Hey folks,

Could we create a place for holding design docs as a first step? I have a
few pending design docs ready for review and potentially we can use that to
test the new proposal as well. WDYT?

Thanks,
Ken

On Wed, Jan 8, 2025 at 7:56 AM Matt Pavlovich <mattr...@gmail.com> wrote:

> Sounds good
>
> > On Jan 7, 2025, at 7:41 AM, Jean-Baptiste Onofré <j...@nanthrax.net>
> wrote:
> >
> > Hi
> >
> > I think so, the final proposal is:
> >
> > - we describe the design document is using markdown
> > - we create a PR on the main repo containing the markdown, adding
> > design folder (for ActiveMQ Classic, the PR would be based on
> > https://github.com/apache/activemq in a design folder)
> > - the review and comments are discussed directly in the PR where we
> > "enrich" the design
> > - when a consensus is reached, the PR is merged and another PR for
> > implementation can start
> >
> > Thoughts ?
> >
> > I plan to open a first PR using this process for receiveBody().
> >
> > Regards
> > JB
> >
> > On Tue, Jan 7, 2025 at 1:31 PM Christopher Shannon
> > <christopher.l.shan...@gmail.com> wrote:
> >>
> >> Did we come to a consensus on where to put the design docs? It looks
> like a
> >> Git repo was favored but not sure we ever came up with a spot for it or
> >> decided where things should be.
> >>
> >> On Sat, Dec 21, 2024 at 1:33 AM Jean-Baptiste Onofré <j...@nanthrax.net>
> >> wrote:
> >>
> >>> Hi,
> >>>
> >>> To illustrate that, as I've started to work on receiveBody()
> >>> implementation, before opening the PR, I will draft a design proposal
> >>> for receiveBody() and use the process we discussed here.
> >>> We will be able to "adapt" the process if needed.
> >>>
> >>> I will keep you posted.
> >>>
> >>> Regards
> >>> JB
> >>>
> >>> On Fri, Dec 20, 2024 at 8:54 PM Justin Bertram <jbert...@apache.org>
> >>> wrote:
> >>>>
> >>>>> ...when I say “users”— Developers extending the product are also
> >>> “users”
> >>>> here, not just app teams sen/recv messages.
> >>>>
> >>>> I was thinking of the same class of users.
> >>>>
> >>>>> As most features (in ActiveMQ Classic) have extension points, having
> >>>> these design docs included in the hosted documentation is a way to
> >>> benefit
> >>>> that class of users.
> >>>>
> >>>> Instead of out-of-band implementation design docs I would suggest
> robust
> >>>> API/SPI docs in the code (e.g. JavaDoc) to give this class of
> >>>> developers/users all the information they need to extend the broker.
> This
> >>>> is an industry standard and what most Java developers would expect.
> >>>>
> >>>> Ultimately my concern here is to mitigate the proliferation of
> technical
> >>>> debt. This website is already chock full of well intentioned docs that
> >>> were
> >>>> relevant at the time but slowly fell out of date and now represent a
> >>>> maintenance burden.
> >>>>
> >>>>> I think it would be confusing and counter productive to host design
> >>>> documents for both brokers in the same repo. This would be really
> >>> confusing.
> >>>>
> >>>> It seems pretty straight-forward to me as long as the directories are
> >>>> clearly labeled. After all, the website contains info about both
> brokers
> >>>> (and every other component), and it's just one repo. Folks don't seem
> to
> >>>> have trouble with that, but maybe I'm wrong.
> >>>>
> >>>>
> >>>> Justin
> >>>>
> >>>>
> >>>> On Wed, Dec 18, 2024 at 10:39 AM Matt Pavlovich <mattr...@gmail.com>
> >>> wrote:
> >>>>
> >>>>> Let me clarify when I say “users”— Developers extending the product
> are
> >>>>> also “users” here, not just app teams sen/recv messages.
> >>>>>
> >>>>> As most features (in ActiveMQ Classic) have extension points, having
> >>> these
> >>>>> design docs included in the hosted documentation is a way to benefit
> >>> that
> >>>>> class of users.
> >>>>>
> >>>>> I think it would be confusing and counter productive to host design
> >>>>> documents for both brokers in the same repo. This would be really
> >>>>> confusing. Having Artemis design docs in the Artemis docs source area
> >>> and
> >>>>> the Classic design docs in the classic doc repo area would seem to
> make
> >>>>> sense to avoid confusion.
> >>>>>
> >>>>> Matt Pavlovich
> >>>>>
> >>>>>> On Dec 12, 2024, at 12:38 PM, Justin Bertram <jbert...@apache.org>
> >>>>> wrote:
> >>>>>>
> >>>>>> I'm not sold on the "user-accessible documentation" aspect of this.
> >>>>>> Documenting design in enough detail to actually help developers
> >>> implement
> >>>>>> the design is, in my experience, not great for user docs.
> >>> Furthermore, it
> >>>>>> introduces a maintenance burden because if future code updates alter
> >>> the
> >>>>>> design then corresponding documentation updates will be necessary in
> >>>>> order
> >>>>>> to keep them relevant.
> >>>>>>
> >>>>>> The more detailed the design document is the more helpful it will be
> >>> to
> >>>>> the
> >>>>>> developer implementing that design, but the more of a burden it will
> >>> be
> >>>>> if
> >>>>>> incorporated into user docs. This is not dissimilar to comments in
> >>> code
> >>>>>> which slowly fall out of date as the code evolves. Eventually the
> >>> comment
> >>>>>> is confusing and hurts more than helps.
> >>>>>>
> >>>>>> At this point I would consider these design docs as categorically
> >>>>> different
> >>>>>> from code and user documentation so I wouldn't welcome them in the
> >>>>>> respective Git repo of the component. I think a separate repo makes
> >>> more
> >>>>>> sense.
> >>>>>>
> >>>>>>
> >>>>>> Justin
> >>>>>>
> >>>>>> On Thu, Dec 12, 2024 at 12:04 PM Matt Pavlovich <mattr...@gmail.com
> >
> >>>>> wrote:
> >>>>>>
> >>>>>>> I like the idea of git — one thought—  could we simply use the
> >>>>> sub-project
> >>>>>>> code repo associated for the project? This would allow for keeping
> >>> the
> >>>>>>> design/dev docs near the code and automatically create
> >>> user-accessible
> >>>>>>> documentation in a two-for-one.
> >>>>>>>
> >>>>>>> Example: docs/design/   <— place markdown, asciidoc or whatever
> here
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>> Matt
> >>>>>>>
> >>>>>>>> On Dec 11, 2024, at 11:14 AM, Justin Bertram <jbert...@apache.org
> >
> >>>>>>> wrote:
> >>>>>>>>
> >>>>>>>> I'm with Matt here. It would be good to have a more robust process
> >>> for
> >>>>>>>> developing design documents, but I'm not in favor of Google Docs
> >>> for
> >>>>>>> this.
> >>>>>>>>
> >>>>>>>> I actually think we already have a great tool for this - Git. We
> >>> can
> >>>>>>> create
> >>>>>>>> a new Git repo (e.g. named activemq-design-docs). When we create a
> >>> Jira
> >>>>>>>> that needs a corresponding design doc we can create a new
> >>> directory in
> >>>>>>> that
> >>>>>>>> Git repo with a name corresponding to the Jira. In that directory
> >>> we
> >>>>> can
> >>>>>>>> add documentation, images, and whatever other assets we need. Both
> >>>>>>> MarkDown
> >>>>>>>> and AsciiDoc are sufficiently feature rich to capture complex
> >>> ideas.
> >>>>> When
> >>>>>>>> the pull request for the document is created folks can comment
> >>> inline,
> >>>>>>>> request changes, etc. The author can request reviews from specific
> >>>>> folks
> >>>>>>>> (if necessary). It can be held in "draft" state until complete if
> >>>>>>>> necessary. The link to the PR can be automatically added to the
> >>> Jira
> >>>>>>> (i.e.
> >>>>>>>> via ASF Infra integration) and comments on the PR will be
> >>> reflected on
> >>>>>>> the
> >>>>>>>> Jira and on the relevant mailing list. The resulting document will
> >>> be
> >>>>>>>> clearly and publicly available and will be able to evolve over
> time
> >>>>> even
> >>>>>>>> after the first commit is merged. Just keep adding commits and
> >>>>>>> discussions
> >>>>>>>> until everything is sorted - just like the source code and
> >>>>> documentation
> >>>>>>> we
> >>>>>>>> already work with. Folks are already familiar with this process
> and
> >>>>> these
> >>>>>>>> tools. I think this would also eliminate any strict need for a
> >>>>> [DISCUSS]
> >>>>>>>> thread. We already have long discussions on PRs that don't have a
> >>>>>>>> corresponding [DISCUSS] thread so doing this for design docs would
> >>> just
> >>>>>>> be
> >>>>>>>> business as usual.
> >>>>>>>>
> >>>>>>>> Thoughts?
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Justin
> >>>>>>>>
> >>>>>>>> On Tue, Dec 10, 2024 at 1:29 PM Matt Pavlovich <
> mattr...@gmail.com
> >>>>
> >>>>>>> wrote:
> >>>>>>>>
> >>>>>>>>> +1 for the design discussion / document approach vs JIRA.
> >>>>>>>>>
> >>>>>>>>> -1 on using Google Docs — I’m not in favor of adding
> >>> yet-another-tool.
> >>>>>>> How
> >>>>>>>>> about something like GH discussions? or some other capability
> >>> already
> >>>>>>>>> available to Apache projects. Adding Google introduces a whole
> new
> >>>>>>>>> authentication/authorization/identity system.
> >>>>>>>>>
> >>>>>>>>> We could then slightly alter the [DISCUSS] process to be —
> >>> announce on
> >>>>>>> dev@
> >>>>>>>>> via [DISCUSS] subject that a new discussion is taking place on GH
> >>>>>>>>> discussions (or whatever other tool) and provide the link.
> >>>>>>>>>
> >>>>>>>>> Thanks!
> >>>>>>>>> Matt Pavlovich
> >>>>>>>>>
> >>>>>>>>>> On Dec 10, 2024, at 10:59 AM, Jean-Baptiste Onofré <
> >>> j...@nanthrax.net>
> >>>>>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>> Hi folks,
> >>>>>>>>>>
> >>>>>>>>>> We recently discussed several proposals (SemVer in ActiveMQ, new
> >>>>>>>>>> Jakarta Message 3 support in Classic, upgrade Artemis minimum
> >>> Java
> >>>>>>>>>> version, ...).
> >>>>>>>>>>
> >>>>>>>>>> I would like to propose a "process" to:
> >>>>>>>>>> - discuss "long" designs
> >>>>>>>>>> - track proposals
> >>>>>>>>>> - facilitate collaborative contributions
> >>>>>>>>>>
> >>>>>>>>>> The process proposal is the following:
> >>>>>>>>>> - the contributors work on a design proposal. This document
> >>> should:
> >>>>>>>>>> a. provide a rationale and what problems are solved
> >>>>>>>>>> b. provide abstract design with context
> >>>>>>>>>> c. clearly describe design options with implementations details
> >>>>>>>>>> (optionally pseudo code)
> >>>>>>>>>> The document is a Google Document, where anyone can comment.
> >>>>>>>>>> - the Google Document link is attached to the corresponding
> >>> Jira. The
> >>>>>>>>>> Jira should have the "proposal" tag.
> >>>>>>>>>> - the Google Document link is sent to the dev mailing list (with
> >>> a
> >>>>>>>>>> quick description of the proposal)
> >>>>>>>>>> - If needed, the Google Document "leader" can schedule a meeting
> >>>>>>>>>> (Google Meet) to discuss details and clarify design options.
> This
> >>>>>>>>>> meeting should be recorded (or at least notes should be taken).
> >>> The
> >>>>>>>>>> design document should be updated after the meeting, and the
> >>> meeting
> >>>>>>>>>> notes should be shared either to update the design document or
> >>> on the
> >>>>>>>>>> dev mailing list.
> >>>>>>>>>>
> >>>>>>>>>> It's a process used in several Apache projects (Apache Iceberg,
> >>>>> Apache
> >>>>>>>>>> Polaris, Apache Arrow, ...) and it works pretty fine.
> >>>>>>>>>>
> >>>>>>>>>> Thanks to that:
> >>>>>>>>>> 1. we can track all proposals Jira we have (basically populated
> >>> our
> >>>>>>>>> roadmap)
> >>>>>>>>>> 2. before implementing, we can collaborate on design using the
> >>> Google
> >>>>>>>>> Document
> >>>>>>>>>> 3. we should have a better collaboration, especially on complex
> >>>>>>>>>> design/implementation
> >>>>>>>>>>
> >>>>>>>>>> For instance, I would like to illustrate the process with
> Jakarta
> >>>>>>>>>> Messaging 3.1 Shared Subscription. We know this feature is not
> >>>>> trivial
> >>>>>>>>>> and requires a clean design before rushing on the
> >>>>> code/implementation.
> >>>>>>>>>> So, we can start with a design Google Document, attached to
> >>>>>>>>>> https://issues.apache.org/jira/browse/AMQ-8323 and send the
> >>> design
> >>>>>>>>>> document on the dev mailing list.
> >>>>>>>>>> Then, we start contributing to the document, adding comments
> with
> >>>>>>>>>> questions or suggestions.
> >>>>>>>>>> The purpose is to reach a consensus on the design before
> actually
> >>>>>>>>>> starting the implementation.
> >>>>>>>>>>
> >>>>>>>>>> Thoughts ?
> >>>>>>>>>>
> >>>>>>>>>> Regards
> >>>>>>>>>> JB
> >>>>>>>>>>
> >>>>>>>>>>
> >>> ---------------------------------------------------------------------
> >>>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org
> >>>>>>>>>> For additional commands, e-mail: dev-h...@activemq.apache.org
> >>>>>>>>>> For further information, visit:
> >>> https://activemq.apache.org/contact
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>> ---------------------------------------------------------------------
> >>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org
> >>>>>>>>> For additional commands, e-mail: dev-h...@activemq.apache.org
> >>>>>>>>> For further information, visit:
> >>> https://activemq.apache.org/contact
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>> ---------------------------------------------------------------------
> >>>>>>> To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org
> >>>>>>> For additional commands, e-mail: dev-h...@activemq.apache.org
> >>>>>>> For further information, visit:
> https://activemq.apache.org/contact
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>>>
> >>>>> ---------------------------------------------------------------------
> >>>>> To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org
> >>>>> For additional commands, e-mail: dev-h...@activemq.apache.org
> >>>>> For further information, visit: https://activemq.apache.org/contact
> >>>>>
> >>>>>
> >>>>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org
> >>> For additional commands, e-mail: dev-h...@activemq.apache.org
> >>> For further information, visit: https://activemq.apache.org/contact
> >>>
> >>>
> >>>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org
> > For additional commands, e-mail: dev-h...@activemq.apache.org
> > For further information, visit: https://activemq.apache.org/contact
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org
> For additional commands, e-mail: dev-h...@activemq.apache.org
> For further information, visit: https://activemq.apache.org/contact
>
>
>

Reply via email to