Do we want to adopt Discourse?

Dear Octave maintainers,

Last week I started testing this Discourse forum and gained some experience how the Octave project can make use of it.

Many of you tried to use it yourself, please share your experience here.

Current Octave community portals

:octave: Source code, what it is all about

:globe_with_meridians: Web

:email: Mailing-lists:

:email: Mailing-lists (read only):

:speech_balloon: IRC

Need for something new?

:question: Why changing a running system?

:white_check_mark: What are the reasons for Discourse:

  • gratis + free and open-source software
  • state of the art conversation features:
    • messages can be edited (with history of changes)
    • markdown support
    • picture attachment and preview
    • topics can be categorized, tagged, and marked as solved

:x: What are reasons against Discourse:

  • Login requirement :key:
    • topics can be started by email :email: without login (was not the best experience)
    • mailing-list also requires subscription with email+password
    • SNS OAuth2 login for Google, Facebook, Twitter … thus easy account creation
  • no “octave” syntax highlighting, only “matlab”, due to lack of support by highlight.js
    ```matlab
    for i = 1:end
    endfor
    

Summary and outlook

GNU Octave Discourse is running by now. When the Octave community decides to take this chance, everything is ready to go :wink: If there is another Octave online meeting, I think there is a great chance to discuss the usage of Discourse.

Kai

1 Like

Looks like it’s feasible to add custom highlighting languages to Discourse. Here’s someone who did it for “Solidity”: https://meta.discourse.org/t/how-to-get-solidity-syntax-highlighting/117774/11

I’m already a fan of Discourse due to my experience using it for Homebrew, so here’s one vote to keep using Discourse for Octave.

I created a Highlight.js syntax definition for Octave: https://github.com/apjanke/highlightjs-octave. Working on getting the publishing/distribution working.

2 Likes

Mailing list archives are also available on lists.gnu.org:
https://lists.gnu.org/archive/html/octave-maintainers/
https://lists.gnu.org/archive/html/help-octave/
https://lists.gnu.org/archive/html/octave-bug-tracker/
https://lists.gnu.org/archive/html/octave-patch-tracker/
https://lists.gnu.org/archive/html/octave-task-tracker/

That archives have search capabilities similar to nabble. But there is no integrated forum function that allows to answer directly. Neither is there a “Reply to all” button that would work with an external email client.
But at least it is something that can be used as a searchable knowledge base once nabble will be no longer available.

Is it worth investigating if the threads of the archive can be imported to this discourse forum?

From what I’ve seen so far, I like the discourse interface.
Would adopting the discourse forum mean that we would drop the mailing lists?

Maybe I missed something: Are there plans to replace savannah with this forum?

For now, I think we would just move toward replacing the help and possibly maintainers lists with a web-based forum. If discourse works and is acceptable for the Octave community, then I’m in favor of giving it a try.

The other lists are just email notification streams (that don’t always work well, unfortunately). So as long as we have the Octave sources and bug, patch, and task trackers on savannah, I suppose we’ll keep those lists active.

@apjanke Thank you for your quick effort to fill the gap. Unfortunately, we do not have access to modify this Discourse instance to add custom JavaScript (please correct me if I am wrong :exclamation: )

Maybe the (longer) way to go is to patch highlight.js and wait for Discord to use that newer release of highlight.js?

There is a way, but a very steep and rocky one:

For our free (as in beer) Discord instance, we cannot get that support for free either (See FAQ section). If we subscribed to “business” or “enterprise”, we could pay them for this job.

On the other hand, we have those archives available. @mmuetzel thank you for the links, I was very used to Nabble to lookup old messages and afraid that we loose it, if Nabble goes down. Maybe importing the archive it is not worth the effort. For example, those emails do not use any rich features of Discord.

I don’t think you need to modify the Discourse instance: you can enable it as a “theme component” in the Discourse admin panel (per https://meta.discourse.org/t/how-do-i-install-a-theme-or-theme-component/63682), and the Octave Highlight.js plugin will be hosted on a public NPM server so you can just refererence it with an external URL in that theme customization code, rather than having to install any files on the Discourse instance itself. See https://meta.discourse.org/t/how-to-get-solidity-syntax-highlighting/117774 for an example of how the Solidity folks did it the same way.

highlightjs-octave is published to NPM and ready for use. To enable it, you need to get something like this into the Octave Discourse Theme customization:

<script src="https://cdn.jsdelivr.net/npm/highlightjs"></script>
<script src="https://cdn.jsdelivr.net/npm/highlightjs-octave"></script>
<script>
  hljs.registerLanguage("octave", window.hljsDefineVue);
  hljs.initHighlightingOnLoad();
</script> 

Or if you’re feeling trusting, you could grant me admin and I’ll try to get it working. :wink:

I’m a big fan of Discourse and have used several other instances. I’m clearly in favor of adoption, but I want to give everyone enough time to try it out and make sure it fits the needs of our community.

I think a trial period would be useful, where we have actual practical discussions on this instance, and I don’t think we need to rush the decision. Does anyone think there would be significant harm or confusion by having both mailing lists and this forum for some number of weeks or months?

1 Like

I have mailing list mode going, so other than the fact that the inline quoting is back to making threads annoying to read, it’s all the same to me.

Thank you, you’ve got the admin power now :battery: :wink:

Do we want to adopt Discourse?

YES YES YES. I stumbled upon this when browsing the mailing lists, looking for mentions for a new release :upside_down_face:. It feels great to ask for help on discourse and not on a maling list. I have two comments to say:

  1. It would be great if the website included a link to this new forum, right near the links to IRC and the mailing list.
  2. @siko1056 I noticed when I created a new account, that GitHub asked me:

Maybe it would have been a bit better if this wasn’t affiliated directly with you?

Thank you for your feedback.

That is a good catch. Fixing this would imply owning a GNU Octave organization account. Unfortunately the names “octave” and “gnuoctave” (the latter was also discussed back in 2016 without result) are not available and it should be decided to have such an official presence there and for what reason.

I just created a new topic and stumbled upon an error when I tried to use “Update gnulib” as the topic. The error was that the topic must be at least 30 characters long.
Is this intentional? What is the background for this limit?

This is configurable. We can tune it for our community if needed. I think the default is to encourage more descriptive titles, and discourage titles like “question” or “matrix error”.

I think this “error” / requirement is good - it forces the titles to be explanatory, As observed by @mmuetzel post’s title " Update gnulib ahead of Octave 6 release candidate "

Thanks. I now understand why this requirement can be useful. But I also see how this system can be easily cheated (by simply appending none-sense characters to the topic).
Let’s see how this will evolve.

While writing the post “Saving handles to nested functions” I noticed that creating preformatted text blocks that contain Octave code is a little weird. Is that because discourse is trying to do syntax highlighting? Is there a way to really make it “preformatted”? See the difference in the first two preformatted blocks in that post.

I also accidentally deleted some text and noticed the simple editor appears to have no “undo” feature. :frowning_face:

@jwe In Markdown you can fence code blocks between ```, below I had to take at the bottom #``` to avoid the markup interpretation.

```cc
class Array {
  public:
    Array (int i);
};
#```

As written above, this does not yet work, only for Matlab :disappointed:

```octave
for i = 1:end
  A = eye (i);
endfor
#```
```matlab
for i = 1:end
  A = eye (i);
end
#```

Without specifying the language after the top fences, the highlighting language is guessed.

With CTRL+Z you can do some simple “undo” actions (maybe browser dependent, it works in Chrome for me), an undo-button is not available.