CharlesMangwa/react-native-simple-markdown

[DISCUSSION] RNSM future

CharlesMangwa opened this issue · 7 comments

Hi everyone!
It’s been a very long time since I’ve been active on this repo. I’ve been really (really really) busy this whole year. But that’s not an excuse. So I apologize sincerely for the lack of support & feedback you may have encountered while using this lib. I’m sorry… From now on, I’ll be a lot more reactive.

The second reason why I wanted to write this post was to talk the future of this lib. When I’m writing this, they’re already a lot of issues & PRs waiting to be reviewed. That’s what I want to handle for the incoming v1.1. However, I want to share with you my plans & thoughts about the v2, and see what you think about it!

The idea of this next version would be to have a (way) more flexible API. For instance, let you use regexes or something, in order to be able to pass custom renderers. The goal here is to let you in complete control on how you want to display your content, without having to write to a lot of code.

Another idea I had in mind was to maybe change the Markdown parser we’re using. RNSM has been using simple-markdown since day one, but I don’t know if other solutions like: remarkable/remark-parse or unified, wouldn’t be preferable… 🤔 Let me know what you think about it please.

I’m not sure yet about how I want to do all this, but I don’t reject the idea that this v2 will be a complete rewrite of the lib. If that happens, the n°1 objective will be to keep a retro-compatible with the previous versions.

Last but not least: what do you want to see here? What are the features you’d like to see/you need from this lib? How are you using/would you like to use this library? You can go crazy and we’ll see how we can build something great together. And when I say « we », I mean that: if you are really interested in working on this library: just let me know, the more we are, the more fun it becomes!

So many thanks for getting back, hope you found some time to relax!

I appreciate your apology. You could have ignored this library like so many other people abandon open-source libraries. Like I have done I have to admit.

You didn't.

Thank you.

My thoughts on next releases:

For v1:

  • Stability. Fix any major issues making the current library hard or impossible to use in the most common use cases.
  • Ignore peculiar stuff and at best see if they can be fixed in v2. The library has been stale for quite some time; anything affecting just a couple of people which are no longer complaining nor creating PR's can be delayed until release of v2.

For v2:

  • Speed. I've noticed some of our markdown pages are very slow to load. In our current app we're loading a long Privacy Statement with markdown. I like to blame the markdown length to my customer's lawyers... but I can't deny it takes a long time to load. For the library to evolve I'd focus on speed primarily. You already noted several alternative parsers. Haven't checked them out but it sounds promising!
  • Don't care about backwards compatibility at all. Let's just provide a decent migration manual.

Management:

  • Maintainability. You were busy, any human being and even developers understand this. The best for this lib to evolve is to have issues and PR's to get regularly checked, tested and accepted/rejected. That is a lot of boring effort. Find some maintainers. The greatest thing for a lib is to evolve. It's not like Torvalds writes all Linux kernal code himself (does he write code at all these days?).

We parse all our content with your library right now. With headless CMS taking off quite a bit the last couple of years this library might become instrumental in many projects, like it is in ours right now.

Thank you so much for your kindness @nielskrijger! I do really appreciate that honest and constructive feedback. We're just human as you said, but let's see how we can do something great with this lib!

For v1:

  • Stability […]
  • Ignore very peculiar stuff […]

I totally agree with you. I've already started to classify issues for v1.1 & v1.2 depending on their importance. The rest will be for the v2.

For v2:

  • Speed […]

That's a very good input! I think I'll have to good deep into perfs to bring something really fast to the table. We might need a little benchmark of these different parsers to see which one could suit our needs the best.

Don't care about backwards compatibility at all. Let's just provide a decent migration manual.

That's could also be a solution. Just wait and see what people would like here!

Management:

  • Maintainability.

Here again I totally agree with you. I'm trying to get back to the rythm I had when I was working on this lib: spend at list one morning on it, usually during the week-end. So you could expect PRs to be reviewed at least every week/15 days.


However, I'm really glad to read that this lib helps you (in production?)!

With headless CMS taking off quite a bit the last couple of years this library might be a lot more important than just a Markdown parsing lib ;-)

😏

@CharlesMangwa In the meantime, can you release a new version to npm ? As the last release goes back to December 2016.

@MatthieuLemoine Working on it right there: /next. But it depends on what you want inside that next release? I guess something like the fix for #77 is really necessary (and will be inside that release), but what else are you thinking about?

Just a 1.0.60 release including the changes made on master.

Coming to you tomorrow.

Hi, have you abandoned?