Comments (10)
What about moving Wire to its own repo so that it can be used (both as a package and as a command) with projects other than Go Cloud? Separate FR?
from wire.
Wire can already be used independently of any other parts of Go Cloud (see #230 where a similar request was made). This issue is purely about making wire/internal/wire
(the Wire code generator and analysis) accessible to tooling.
from wire.
Sg. #230 seems to address the library use case.
re: the command use case, go get github.com/google/go-cloud/wire/cmd/wire
still pulls in all of go-cloud.
#273 would cover both.
from wire.
go get github.com/google/go-cloud/wire/cmd/wire
will download all of Go Cloud's source, but it will not pull in all of its dependencies, which is order of magnitudes larger.
from wire.
(continuing discussion from #59).
I'm not sure I'm convinced that this is a good idea. It exposes a much wider API surface for wire
with no clear use case.
I can imagine wanting to add things like .dot
visualization (#42), etc. -- but can't we accept those as feature requests/contributions for wire
itself?
from wire.
We could. I'm just imagining a long tail of feature requests for different aspects of the data, and think it would be better for Wire to export the data in a useful format rather than trying to build and maintain all of possible uses of it.
from wire.
I hear you, but IMHO it's premature to try to expose a "useful format" without knowing what the use cases are or how the data will be used. We can start with a small API surface (basically, just the command line); if a long tail of feature requests comes along, we can always add a new way to expose internals later. It might be a public import for the library, or it might be a .csv
output from the command line, or ...?
from wire.
IMHO we should remove this API surface before Beta; we can always add it later if there is demand.
from wire.
Why? It's in an internal directory. Removing it would cause code and test restructuring for little gain AFAICT
from wire.
Ah, you are right -- this bug is about changing it so that the API is public, not the other way around. Removing from Beta....
from wire.
Related Issues (20)
- Missed receiver in generated inject method
- Support for concurrent initialization
- function generated by Wire_gen.go "Cannot find declaration to go to" by Golang JetBrains but still run success HOT 5
- Calling wire.Build with a provider set from a structure variable (For modular buildings)
- wire `sync.Map` throw error HOT 2
- I has bean tried for two days, but failed. I define four struct and it's constructor, I define a init function in wire.go, but I can
- I can't use the init function which from my wire.go in my main.go HOT 3
- wire.NewSet support generics HOT 1
- internal/wire: update the path of wire which go generate run wire cmd
- Wire: not enough arguments in call to xxx
- is wire.FieldsOf support any field ? HOT 1
- Support for request scoped DI code generation HOT 2
- Injecting the subpackage into the parent package results in the error "no provider found for invalid type". HOT 2
- How to use wire.Bind() if concrete implementation is resolved at runtime? HOT 2
- please create new tag for 0675cdc
- Crashing with Go 1.22 HOT 3
- go generate ./... no longer works with go 1.22.0 and wire 0.6.0 HOT 3
- go build -mod=vendor ./cmd/wire doesn't work after update to 0.6.0
- go: -mod may only be set to readonly or vendor when in workspace mode, but it is set to "mod" HOT 2
- Sometimes it succeeds, sometimes it fails HOT 1
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 wire.