There are a limited number of build systems and most build systems have some form of dependency management built into them.
Upstreaming modifications so projects can be built using standard build commands is a more monotonous than difficult.
Doing that lets distributions reuse build pipelines accross multiple projects, which simplifies their support burden.
Similarly there are also a limited number of packaging formats and 3 main distributions which most things branch from. Configuring a project to produce an aur, deb & rpm for their base OS layout (e.g. Arch, Debian & RHEL) is again monotonous but helpful to have upstream.
Take an Electron App, this is based on Node.js and will use NPM or Yarn to build and retrieve dependencies.
While both support script extensions, the convention for NPM building and releasing is:
npm install
npm build --if-present
npm test --if-present
npm publish
NPM provides libraries to create, aur, rpm and deb artefacts. You would add them as additional scripts, which are called as part of prepublish script (which gets called as part of publish).
There are a limited number of build systems and most build systems have some form of dependency management built into them.
Upstreaming modifications so projects can be built using standard build commands is a more monotonous than difficult.
Doing that lets distributions reuse build pipelines accross multiple projects, which simplifies their support burden.
Similarly there are also a limited number of packaging formats and 3 main distributions which most things branch from. Configuring a project to produce an aur, deb & rpm for their base OS layout (e.g. Arch, Debian & RHEL) is again monotonous but helpful to have upstream.
Take an Electron App, this is based on Node.js and will use NPM or Yarn to build and retrieve dependencies.
While both support script extensions, the convention for NPM building and releasing is:
NPM provides libraries to create, aur, rpm and deb artefacts. You would add them as additional scripts, which are called as part of prepublish script (which gets called as part of publish).
There is no reason that can’t live upstream.