Replace "Ideas" category with a Wiki

Prompted by @pf_moore 's post %-style formatting method - #70 by pf_moore, but I decided to create a new thread since what I want to say is totally off-topic for that one.

I’ve been wondering whether a wiki would be a better replacement for the Ideas category here (and, to a lesser extent, various other categories where “potential changes” get discussed, even including PEPs themselves).

My thinking is thus: ideas are brought up vaguely at first, then gradually turn into proposals that get more and more refined over time, sometimes by the OP, sometimes by others, usually a combination. But all these refinements are dotted about in replies to a forum thread. Once it gets a bit longer, every reader has to separately keep track in their mind of which bits should be kept and which should be dropped, which bits are still outstanding, and filter out all this from the “noise” of unrelated back-and-forth. The agreed points get buried and forgotten about and all that people see is a mess of “endlessly relitigating the same points”, even if no one individually did anything wrong. I truly feel that when a thread turns into a long, heated, and mostly-unproductive discussion, it’s not the result of people lacking in discussion skills, but rather an unavoidable consequence of discussing a non-trivial proposal in this manner.

There is a reason why we see, in some threads, one person go to the great effort of collecting all the information, making their own judgment of what “consensus” looks like, and then post it as one big summary once discussion has cooled down, because in large part that works: nearly everyone will broadly agree with that person’s summary and is tired of arguing, so if anything, that is what will get done. And while we can certainly applaud people for carrying out this task, it shouldn’t be necessary in the first place: I can only imagine it’s a pain to have to do so, not something I’d want to do myself, and many times it won’t happen and then a potentially good idea will be avoided just because it’s so troublesome to touch it.

If we used a wiki instead, then the OP could simply create a page, provide their initial proposal - including the what, the how, and the why - and then over time, any number of separate discussions about individual points to do with the proposal could be held on the talk page, while the article page could be constantly updated with the latest consensus; a “rejected ideas” section can also be gradually established. Any interested parties would be able to see straight away from the article page what each of the accepted points are and their rationale. The article page would serve as a reminder that the majority of the proposal has been figured out, keeping focus on tidying up the loose ends - avoiding what we suffer at present from forum threads, which is the illusion that no one seems to agree about anything. People wouldn’t have to worry so much about their points going totally unnoticed just because they’re a few days late to a hot discussion. The article page can be structured like a PEP from the get-go, so that if a PEP is required, then by the time consensus is reached - bam, you have one already.

If I may provide an opinion on what kind of wiki - I personally prefer MediaWiki, and Miraheze is a thing now if we want to avoid the burden of actually hosting one, though I don’t know how long it takes to get a wiki approved there. (I’ve hosted/maintained MediaWiki instances before, though while I could theoretically volunteer to host one for Python myself, I don’t really feel it would be appropriate for me to do so, as an outsider.)

2 Likes

I doubt that one more avenue makes a lot of people excited - a pretty good one already exists and at least me personally would rather not have to go to another one and learn to navigate it.

What I would prefer is a new category, which is a bit less serious than Ideas, a place where people can brainstorm and have fun. Something along the lines of “Playground” (not the best name I suppose…).

People go to Python Help to give help and ask for help.
While historically a lot of people treat Ideas as a place where people are determined to push an idea and receive (sometimes brutal) feedback, which is appropriate if that is the intent.

But some just want to chat, explore, juggle ideas, share insights, consider alternatives get second opinions before committing to a more serious push.

And none of existing categories accommodate it.
People who want to help discuss “unbaked ideas” don’t go to Python Help for that.
And coredevs have been complaining about low quality posts in Ideas since I joined (which is now almost 2 years).

6 Likes

The current categorization is not clear, I have seen moderators moving topics from “Ideas” to “Help”, but also the other way round. It might make sense to have category clearly dedicated to real proposals (that are not yet in the PEP stage) and a category for a more general discussion. I am not sure if the general discussion should be mixed up with “Help” as this is now the case.


And one comment to the Wiki suggestion from the OP: There is already a wiki.

Replacement? No, it wouldn’t. Discussion still needs to happen, and a wiki is a terrible place for a discussion.

Augmentation? Maybe, but it doesn’t need to be official. If you want an editable document to accompany a discussion thread, you can put that anywhere, and link to it.

But here’s the question. Why a wiki? Let’s suppose you come up with an idea. Do you REALLY want anyone and everyone to simply edit your idea, or do you want to be the one to make the decisions? Unless you actually want to allow anyone to make edits, all you really need is a git repository somewhere with your current document, which you then update as the discussion thread progresses. And you can do that without any official support - and some people already have.

That said, though, I do actually see one way in which a wiki would solve one of the issues raised there. Core devs would simply ignore it, thus ensuring that the discussions are not draining their time. Whether you consider this a good thing is up to you :slight_smile:

1 Like

I agree. IMO, current Ideas can be used for “brainstorm and fun”. The basic artifact which is needed to create new thread in this category is an idea.

But for already “baked ideas” another category should be used. Something like “Pre-PEPs” sounds reasonable to me. And main criteria for creating new thread in this category will be having PEP-like text. My assumption here is that if someone can’t write a text that basically look like PEP draft, then his/her idea is not “baked” in fact.
Some kind of support from core developers is not necessarily needed on this stage.

Moreover, there may be an oportunity to thread’s author to close discussion, rewrite pre-PEP text and start another thread with links to previous discussions.

To avoid continuing top-level category proliferation that can make the Discourse hard to navigate, ISTM that it might be better to have two subcategories of Ideas, Discussion and Proposals (or similar). It would also make it at least a little bit harder for users to naively categories their half-baked ideas in the Proposals category, to at least modestly reduce the noise of people only subscribed there, though ultimately that would still be an issue.

3 Likes

Of course, subcategories also can be used. But some kind of criteria to create thread in Proposals is needed, IMO.

Why do the responses so far focus only on categorization, when the main point that the OP is trying to make is really the fact that good points made in a hot topic tend to be buried after a long discussion, and very few people have the time to actually go through every single post in a long discussion before making an unaware response (yes I’m very much guilty of it).

A Wiki page, if integrated at the top of each topic of the Ideas forum, would be perfect IMHO. I trust that most people would help edit the Wiki in good faith and those who don’t or even vandalize will be easily caught by others and mod’d out. The question is then who will develop such a Wiki feature for Discourse. :slight_smile:

As a side note, the AI “Summarize” feature as it is is fairly useless, usually omitting many of the good points made in a long discussion. A community-edited summary page is the way to go.

2 Likes

I trust that most people who edit the wiki would. But I would expect that most participants in the thread would simply ignore it.

But why would they ignore the Wiki if it sits atop the page, even before the OP?

In some cases that is already done, but it’s usually done by the proposer updating a github repo that has a document with the actual proposal. This is how it’s usually done with PEPs, but I think I’ve seen some pre-PEP proposals that had a separate document.

I’m skeptical that a wiki would improve things. The strong point of wikis is letting a bunch of people freely make edits to the same document. Wiki “Talk” pages are just another wiki page, an unstructured and chaotic format for discussion.

As annoying as it is to have a long thread I’m not sure I see a great alternative. I think the current forum interface could maybe be improved somewhat, but it’s not easy to decide on exactly what would be best. (Sounds like a good topic for another long discussion thread! :upside_down_face: ) Better interfaces are imaginable but I haven’t seen any that actually exist.

1 Like
  1. Because re-reading stuff in case it’s changed since you last read it is extra effort (open up a diff, check what the changes are, review the context…)
  2. Because people already have too much to read, adding more is counterproductive.

My original post was asking people to curb the sprawl of existing discussions, not to extend them. The only benefit for me of any sort of new place to have discussions would be if I (and anyone else struggling with the amount of repetition and badly researched comments in the ideas category) could ignore it completely.

1 Like

I rarely look at the top of the page, because Discourse automatically takes me to the point in the thread where I left off.

If we were going to do something like this, I’d prefer a two-panel layout with the document on one side and the discussion on the other. This interface seems more natural for the “discussion centered on a single document” task. But it can also become cluttered and awkward.

Sure, but the other problem is that people have to update it. There’s nothing stopping anyone right now from periodically reviewing the discussion and incorporating it into updates to a single document (external to the forum). It’s just that it’s a bit of a pain.

Ironically I think the “comments on an evolving document” workflow is more suited to proposals that reach a more concrete stage (like PEPs). The looser discussions that happen with “ideas” aren’t so easily distilled into a single document that reconciles all viewpoints.

It would certainly help to have people who are putting out a proposal, keep a summary of what is being discussed in some form of document, until it’s time to write a PEP.

A wiki is one possible way of doing this, and we already have one which has been used for this purpose (among many others), the Python wiki.

5 Likes

Sorry, lemme clarify. They would not edit the wiki, and would continue to post as normal. Hopefully they would at least read it though.

1 Like

I believe that those who believe that they are making good points will be motivated to help edit the Wiki, to help maximize exposure to their points.

My proposal to divide current ideas category into two parts pursuits exactly this goal. You can completely ignore raw “brainstorm” discussion and put some attention only at Proposal/Pre-PEP stage.

1 Like

Good idea. But I fear many new contributers of ideas won’t read a wiki.

I know this subforum is essentially described as a safe space. But so few contributers have any idea either, what their ideas would entail in practice. It would be beneficial for all to add a little expectation management. Perhaps just some guidelines to be acknowledged, or a sticky post, e.g.:

  1. Could your idea be implemented without changing the Python language or the CPython runtime at all, in a 3rd party package on PyPi (where anyone who wants it can install it with pip), like many other excellent ideas have been?
  2. What are the existing ways to achieve the same goal as your idea, in the user or developer’s own Python code? What’s the benefit of your idea to them, huge savings in time and lines of code, or a slightly shorter function call?
  3. The bar to be passed for ideas being accepted, is the highest for breaking changes. Python has over 10 million users (according to ChatGPT).
  4. The bar is still very high for feature requests, that require work by the core devs to develop (test, document, and maintain) the code needed to implement your idea
  5. The bar is slightly lower (but still high) for extra functions to be added to the core library
  6. The bar is slightly lower for extra functions or classes to be added to the standard library (optional imports)
  7. The bar is lower for API-only functions or classes to be added to the standard library, that expose existing mature functionality that’s already been implemented.
  8. Even if your idea is the greatest idea in the world, is Python with its 34 history the best home for it? There are many other exciting Python projects, and other languages.
  9. Don’t get too invested into any of your ideas. You are more than the sum of your ideas, and you’ll have an even better one next week.
1 Like

Unfortunately I don’t think that a link to an external Wiki page will be viewed by many, let alone edited.

Given that it is unlikely that an integrated Wiki feature will be developed for Discourse any time soon, in the mean time, how feasible would it be to allow the first post of every topic to be editable by anyone (or maybe anyone who crosses a certain threshold of certain forum metrics)? The edit history is public and can be rolled back by anyone too.

I trust that the community has enough good will to make it work.

There are already wiki posts in discourse: Editing and creating wiki posts - Using Discourse - Discourse Meta

1 Like