Comments (8)
i'm not @ungoldman (obviously) but my personal experience w/ projects that he shepherds is corroborated by the tags you see on open issues in this repository (ie: even though the code is in 'maintenance mode', PRs are usually welcome.).
that said, opening up a discussion first to think through vision/scope is always appreciated. my off the cuff opinion is that modernizing and improving the code here and possibly augmenting it w/ additional helpers maintained somewhere else for more esoteric workflows would be preferable to forking, but the latter isn't necessarily problematic if you attribute what you're building on appropriately.
just my two cents from the peanut gallery though. ❤️
from changelog-parser.
@ungoldman Thank you very much for your response and understanding. The reason I asked in the first place was that the package seems to be focused on CLI/node use only, which is perfectly understandable, but I was afraid my suggestions may go way beyond the original vision for the package.
I am pretty sure I'd be able to do it with backward-compatibility in terms of API (input->output in CLI and module) but it would be a rewrite anyway just so that I can incorporate a typed approach for ease of use in scripting API on the browser side.
Let me sleep on it, and I'll see if I can draft a proposal for v4 that would include the same API. If you are fine with becoming a "Universal Change log" and not only a "Change log parser for node." then I'd happily introduce the refactor here as I see more value for the community in adding it into a package that's already popular.
from changelog-parser.
@ungoldman Here's a short update on my progress so far:
- I managed to replicate the base API with ts->esm/cjs-compiled package
- Core logic is the same, but is structured in a bit different way internally
- I've two outstanding issues left for now:
- EOL does not behave the same as the 3.0.1 package unless the file being read has the same line endings as
require('os').EOL
. - I haven't touched on file-streaming yet. For now, I'm still reading files synchronously. While it's not an optimized solution, it shouldn't influence the results. The complexity of the memory usage still stays the same, as within the original package, the result contains the entire source in the output structure.
- EOL does not behave the same as the 3.0.1 package unless the file being read has the same line endings as
- In return, the package is working well on browsers and the new code utilizes yargs and a dedicated parser class, which extends the possibilities of
parseChangelog
method with the ability to change parsing patterns and treat lines one by one.
I consider the first issue a breaking change, although the 3.0.1 version wasn't the expected behaviour all the time from my perspective. The second issue is not technically BC, but still worth solving to keep the best possible memory utilization in mind.
Once I have these two resolved, I'll be happy to publish a PR with the cleaned PoC.
from changelog-parser.
Understood. I took it a bit differently, i.e. it's ok if we maintain backwards compatibility, but that's probably my overenthusiastic approach ;) But that's one of the reasons I posted an update above - I wanted to know how you feel about my direction, so I am happy I did that.
In such a case, I'll probably start a new package (changelog-tools
or sth), giving proper credentials to this source code. In the end, it may simplify a couple of matters if I don't try to maintain compatibility.
from changelog-parser.
Hi @rgembalik
- This package is not under active development, but as @jgravois mentioned, PRs are welcome for bug fixes and improvements
- There are no plans for updates at this time, as all the writers/maintainers have moved on to other projects (myself included)
- You're welcome to fork as long as you keep the license and attribution, but with the amount of changes you're suggesting, I'd recommend starting fresh with a rewrite. If I were to work seriously on this project again that's what I would do. The code is very dated and it could use some serious restructuring.
good luck and happy coding ✌️
from changelog-parser.
I should mention the API for this project has been stable for a long time and it's still seeing enough use in the wild (85k+ downloads/month) that I'm not keen on drastically changing it since it's mostly a basic support package for other larger open source projects. But if you're interested in contributing incremental backwards compatible changes that work for your use case, PRs welcome
from changelog-parser.
Hi @rgembalik
Thank you for spending time on this. I do want to emphasize again something I said earlier:
I'm not keen on drastically changing it since it's mostly a basic support package for other larger open source projects. But if you're interested in contributing incremental backwards compatible changes that work for your use case, PRs welcome
A pull request with a full rewrite of the package is a drastic change. While I appreciate your enthusiasm in improving this package, a rewrite in a fork might be a better starting point.
from changelog-parser.
Good luck and happy coding. I hope your project goes well. If you find some small things that are easy to patch here your contributions are welcome :)
from changelog-parser.
Related Issues (19)
- resources HOT 3
- use mdast to parse markdown? HOT 4
- Extract date into seperate key HOT 7
- move instance variables into function
- Library doesn't respect file changes HOT 1
- update parser to be compatible with standard-version HOT 4
- Update `README.md` example to include 'date' keys
- Add Promise support HOT 3
- Add parsed/sorted data to changelog entry objects HOT 9
- support for parsing a string HOT 2
- Inconsistent title and body across platforms HOT 9
- accept input text instead of file HOT 3
- Ignore HTML comments HOT 5
- Cross-platform issues caused by different changelog line endings HOT 3
- Hi. I made changelog-parser-action HOT 2
- [feature request] write changelog HOT 1
- `[]` in changelog isn't parsed correctly HOT 1
- changelog-parser doesn't parse my changelog correctly HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from changelog-parser.