apache / apache/maven

[3.10] Questions to discuss

Open
#13,100 3 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
5.3k
Forks
3.1k
Avg merge
20h 42m
Merged PRs (30d)
297

Description

### New feature, improvement proposal

The more I look at commit https://github.com/apache/maven/commit/03c947d820889098701021d9a99b256358fde0cd the more questions it raises:
* it removes repositories from profiles. Why? And what happens with repositories defined in POM itself? Why not removing both, why only one (profile)? What differentiates them from POM defined repositories? And IMHO _not removing reposes_ is the proper solution.
* Maven _relies_ on POM defined repositories (they may come from profile), as there is pattern that `project -> dep1 -> dep2` where dep1 _knows_ dep2 is not on Central but is somewhere else.
* What we should scrutinize is _repository redefine_ IMHO, where an existing remote repository was "redefined" (and scoped to that node and below) nb: this reminds me of https://github.com/apache/maven/pull/428
* In case of a "malicious" dependency, that may redefine a repository, it may silently redirect the build to malicious repository?
* In redefine cases we may want to prevent it, or WARN on it, or maybe even have a switch like WARN/FAIL?

Contributor guide

Open the contributing guide

Research direction

Start by reviewing commit 03c947d820889098701021d9a99b256358fde0cd and the related discussion in pull request 428. Trace how profile-defined, POM-defined, and redefined repositories are handled, then document a decided WARN/FAIL/prevention behavior for malicious or redirected repositories; the issue is done only when the project agrees on scope and acceptance criteria.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.