Comments (13)
Would this cause issues with any downstream plugins?
The issue I think right now is the commits are all pulled in by git-log-parser in semantic-release itself. It currently does not return the paths in a commit --stat
option. This would be required to filter messages with some glob.
https://github.com/semantic-release/semantic-release/blob/master/lib/git.js#L48
If semantic-release is able to add that to the commit context the commit analyzer filter function in the index could could simply filter by a glob or not files: ["someDir/**", "./packages/someOtherDir/**"]
from commit-analyzer.
i second this. Am currently looking to be able to do this functionality
from commit-analyzer.
I ran into the same issue, monorepo with multiple releases.
I ended up creating my own plugin that wraps other plugins and filters the commits before passing them to the wrapped plugin.
If anyone is interested, I can open source the commit filter
from commit-analyzer.
@nataly87s does the commit object contain the filename/paths?
from commit-analyzer.
@pmcjury no, I used this to get the filenames:
const { exec } = require('child_process');
const folders = await new Promise((resolve, reject) => {
exec(
`git diff-tree --no-commit-id --name-only ${commit.commit.long}`,
(error, stdout, stderr) => {
if (error) {
reject(error);
return;
}
if (stderr) {
reject(new Error(stderr));
return;
}
resolve(stdout.trim().split('\n'));
}
);
});
from commit-analyzer.
I ran into the same issue, monorepo with multiple releases. I ended up creating my own plugin that wraps other plugins and filters the commits before passing them to the wrapped plugin. If anyone is interested, I can open source the commit filter
I would be interested in this, since I'm running into the same issue! 🙂
from commit-analyzer.
@nataly87s I'm interested in this, having same issue with monorepo
from commit-analyzer.
@sinedied @saleh199
I'll have to dig out the code from three years ago 😅
I'll do it later tonight when I have some time
from commit-analyzer.
Thanks! In the meantime I've found a workaround using https://github.com/pmowrer/semantic-release-monorepo
from commit-analyzer.
@sinedied this have only support for JS packages, but what about non-js packages
from commit-analyzer.
That's why I said it was a workaround (for me), not a universal solution 😉
We definitely miss a the ability to filter commits by scope or file path, that would solve most monorepo issues (with any language).
from commit-analyzer.
Hello guys ! Any update on this feature request ?
from commit-analyzer.
We are also interested in this.
from commit-analyzer.
Related Issues (20)
- Release type should not be case sensitive HOT 2
- The type field in the release rules doesn't seem to work if there is a space HOT 4
- "Fix: " prefix dominates over "feat: " one if latter used as a second line in commit message HOT 7
- How to pin the commit-analyzer version HOT 5
- Step analyzeCommits suddenly exits 0 without analyzing commits HOT 20
- This plugin just silently quits HOT 4
- promisify crashing node HOT 6
- Providing a PR description breaks custom releaseRules HOT 1
- deps changes do not trigger release HOT 7
- Use @commitlint/config-conventional with the new preset format HOT 3
- [Feature Request] Add feature to pass an already imported conventional_changelog_**** HOT 1
- Cannot find module 'conventional-changelog-*' HOT 8
- Use the standard `conventional-changelog-preset-loader` to load presets HOT 1
- Question: after merging from a prerelease branch into a release branch
- Feature request HOT 1
- Prevent semantic release from being triggered by certain default prefixes HOT 4
- Revert commit is not triggering a new release HOT 4
- Allow custom function in `releaseRules`
- Uppercase scope not triggering a release (anymore) HOT 2
- `The commit should not trigger a release` after recent updates HOT 2
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 commit-analyzer.