Comments (2)
Packwerk should never ask people to move Rails defaults to other places. That is the main reason why enforce_privacy
is being removed from Packwerk. Don't move your engine to modules/some_service/public
. Packwerk should not be forcing you to do that.
So the other three options Alex listed are your best ones.
We need a better mechanism than folder collocation to define what is public API and what is isn't. Unfortunately the solution is Packwerk isn't good enough and it is going to be removed. Maybe the upcomin privacy plugin will build a different solution.
Thank you for the issue.
from packwerk.
Hi @Spence1115 !
So packwerk
doesn't know about engines or the preferred way to mounting them out of the box. In this case, packwerk is considering this a privacy violation because modules/some_service/package.yml
has set enforce_privacy
to true
, and ::SomeService::Engine
is not in the public
folder of modules/some_service
.
In this case, it seems reasonable that SomeService::Engine
is the public API to using your engine and connecting it to Rails. I'm not sure if there's a Rails limitation here (let me know if there is), but you should be able to move ::SomeService::Engine
to live in modules/some_service/public
so it is considered public API. Your other options are:
- Turn off
enforce_privacy
- Use the other API to
enforce_privacy
to specify private constants - Have
packwerk
ignoreconfig/routes
by setting an exclusion inpackwerk.yml
.
Let me know if this doesn't help!
from packwerk.
Related Issues (20)
- Transitive Dependencies
- [Packwerk 3.0] Update UPGRADING.md with directions to upgrade to 3.0 HOT 1
- [Packwerk 3.0] Ensure API boundaries are up-to-date HOT 1
- [Bug Report] Syntax error when rendering two partials HOT 1
- [Bug Report] Runtime Error after running packwerk check HOT 1
- Packwerk thinks that `app/helpers/foobar_fizz.rb` is in the package `app/helpers/foobar` and not `app/helpers`
- [Bug Report] Stale violations on deleted files HOT 1
- [Bug Report] - Packwerk::NodeHelpers::TypeError HOT 3
- [Bug Report] deprecated_references.yml files erroneously removed if running `packwerk update-deprecations` with the `--package` argument
- [Bug Report] Behaviour of enforce_dependencies: key missing HOT 1
- [Bug Report] Improve strict mode HOT 2
- [Bug Report] Insufficient release notes HOT 2
- [Bug Report] packwerk is disabling Sorbet runtime checks, globally on Spring
- [Bug Report] Disable sorbet when using spring
- [Feature Request] Detect stale todos HOT 1
- [Bug Report] Exception when loading signatures
- [Bug Report] Default require behaviour
- [Bug Report] Dependency violation not detected when using public folders or in non-public folder with dependencies specified HOT 1
- [Feature Request] Allow configuration of `package_todo.yml` violation destinations HOT 4
- [Feature Request] Separate run-time and test-time dependencies HOT 11
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 packwerk.