Comments (10)
I'd be open to adding that for scopes, i.e type(scope): message
?
from git_ops.
Isn't the scope used more to features of the project instead of being the project itself?
What about filtering by footers as that is something that is supported by the spec?
For example:
feat:my commit
PROJECT: backend
That would also allow to set multiple projects per commit in case my commit changes more than one (ex. a change to both the backend project and the frontend one):
feat:add new api
PROJECT: backend
PROJECT: frontend
from git_ops.
Yeah, you're right, we should do it off of something in the body. What if we did it more generically, via tags?
TAGS: backend, security, ...
Then later we can actually potentially hook more things off of those tags? Like grouping things by certain tags in changelogs, hiding/showing them, that kind of thing.
from git_ops.
Then you could say mix git_ops.release --include-tags backend
from git_ops.
Yeah, I agree, using tags seems better since it is more generic and will be possible to use it in multiple scenarios
from git_ops.
awesome. I won't have time to add this, but PRs are welcome :)
from git_ops.
So, I created a fork to work on this, but I'm seeing some odd things regarding the parser that I'm not sure it's broken or I'm just doing something wrong.
For example, if I pass this commit text to Commit.parse
GitOps.Commit.parse("feat: test_breaking\n\nBREAKING CHANGE: bla bla bla\nTAGS: test_git_ops")
I expect to get somethin like this
{:ok, [
%GitOpts.Commit{
type: "feat",
scope: nil,
message: "test_breaking",
body: "BREAKING CHANGE: bla bla bla\nTAGS: test_git_ops",
footer: nil,
breaking?: false
}
]}
But what I get is this:
{:ok,
[
%GitOps.Commit{
type: "feat",
scope: nil,
message: "test_breaking",
body: "BREAKING",
footer: nil,
breaking?: false
},
%GitOps.Commit{
type: "CHANGE",
scope: nil,
message: "bla bla bla",
body: nil,
footer: nil,
breaking?: false
},
%GitOps.Commit{
type: "TAGS",
scope: nil,
message: "test_git_ops",
body: nil,
footer: nil,
breaking?: false
}
]}
Is this correct? The fact that the struct name is Commit
but its parse splits one commit into "three" commits is kinda odd to me.
from git_ops.
Hmmmmm....yeah, so there might be some trouble here. We added a feature to pick up multiple commit messages from a single commit message, and it looks like it can't tell the difference between the footer and a new commit :(
I'm not sure what the solve is here TBH
from git_ops.
I have a POC of the filter working assuming these types of commits. I guess I can push it as a PR with tests so if that issue is fixed in the future, the test will break and we can just refactor it then
from git_ops.
Lets see the code :D
from git_ops.
Related Issues (20)
- A braking change can be specified with ! appended after, not before, the type/scope HOT 4
- Dry Run should diff the files and only print the changing portions
- Allow amending changelog entries before releasing, using `git-notes`
- Validation of commit message HOT 7
- Feature request: Allow configuration management in mix.exs HOT 1
- --initial flag behavior
- Filter non-semver tags earlier
- Is it possible for git_ops to work with elixir app in a subdirectory? HOT 1
- Append the current release's changelog body to the git tag message HOT 4
- License Change GPL -> MIT HOT 14
- Add option to output release-specific notes to `RELEASE_CHANGELOG.md` or an alternative file
- Why raise when no changes should result in a new release version? HOT 2
- Proposal: Stick to Conventional Commit spec and allow extended types to be configured HOT 2
- Custom Path for .git folder HOT 2
- git_ops.message_hook fails HOT 1
- Bug: Seems like BREAKING CHANGE is broken since it doesn't bump a MAJOR version HOT 7
- Deprecation warnings raised when using the GitHub Actions formatter
- Major version changes should require a flag and/or manual confirmation
- Incorrect change log generated with previous tag not fetched. HOT 3
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 git_ops.