Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is this a dead project? #162

Closed
notjames opened this issue Sep 11, 2017 · 33 comments
Closed

Is this a dead project? #162

notjames opened this issue Sep 11, 2017 · 33 comments

Comments

@notjames
Copy link
Contributor

notjames commented Sep 11, 2017

Looking at the pulse of this project, there has been no significant progress on PRs in roughly nine months. We have an important project which depends on this project. @xeipuuv are you going to continue to be the primary maintainer of this project or would you be interested in transferring the project to a new maintainer, a primary group of maintainers, or some other method which will allow the proper development of this project to continue mainstream?

@handrews
Copy link

Whether @xeipuuv continues to drive this or not, I'm also interested in whether new JSON Schema drafts will be implemented (we will be publishing draft-07 hopefully by the end of october, with support for if/then/else which quite a few people seem to want).

The community for this project is much bigger than the other Go implementation (plus there are related libraries such as the one to generate schemas from Go code), so I would prefer to use this.
But the other supports draft-06 and AFAICT this does not.

@notjames
Copy link
Contributor Author

notjames commented Sep 11, 2017

Indeed. I'm fairly new to projects this big in the open source community. How does the community deal with situations like this? Does someone just fork it and start maintaining a fresh new project? I am very interested in being a contributor considering my project (https://github.com/samsung-cnct/jsonsvalidator) strongly depends on it and our internal project will be strongly depending on my project.

@handrews
Copy link

In @xeipuuv's defense, two of the three PRs that have been open for a while are in states where the PR submitter probably needs to take action.

The very long gap between draft-04 and draft-06 (the next draft to have significant validation or core implementation impact) has put a lot of JSON Schema projects in a bit of an odd situation, where they were basically complete before and suddenly are not.

@notjames
Copy link
Contributor Author

Fair enough, but I haven't seen @xeipuuv make any significant comments to any issues of late either. That is probably my biggest concern where abandonment seems plausible given the amount of time that has gone by for any kind of updates on this project.

@xeipuuv
Copy link
Owner

xeipuuv commented Sep 12, 2017

I welcome PRs and keep an eye on this project so that they can be accepted/merged.
The current ones are not, in my opinion, satisfying;
and that is the only reason why they are not accepted yet.

My free time is very limited and unfortunately I can't tackle the issues popping up.
However, I encourage everyone to add value to the project: by participating in discussions, solving issues, forking, and why not by doing a full rewrite.
Also, I would gladly accept a collaborator who is motivated to take on this project.

@notjames notjames reopened this Sep 12, 2017
@notjames
Copy link
Contributor Author

notjames commented Sep 12, 2017

@xeipuuv it is good to see you're alive and well. 😁

If the PRs that currently exist do not satisfy you then please leave comments on them so the authors can do what's necessary to make them satisfying. I have an open PR I submitted just a couple of days ago. I would love to know why it won't be merged.

I've left numerous comments, lately, to other's issues and would love to hear more feedback on my comments as well, but I've been met with nothing but silence.

I totally get not having a bunch of time. I have five kids, a wife, a mortgage, and three jobs. I still have to keep my commitments, or if I can't handle them then I have to find a way to shift priorities around while still keeping my commitments. If you're over-subscribed, please help the community by allowing us to help you. We just need to know what you need for that assistance.

This project is awesome. You've rocked it! We know that because so many people/organizations rely on it. So we are counting on you to continue to make it successful.

I will gladly help out where I can. I'm new to go development so my help will likely be minimal at first. All I need from you is your expectations.

@chrisdostert
Copy link

chrisdostert commented Sep 13, 2017

@xeipuuv is #128 in the "not satisfying" boat? If so, could I get guidance on what could be done to make it "satisfying"? No one has responded but i'm happy to submit it again as my own PR if @ricardomaraschini won't rebase himself. I don't want to do so unless I know it will be worthwhile. It is a really nice contribution and is needed to fully support the spec's definition of the format keyword; it would be unfortunate to let it slip by and die. Also It's used in https://github.com/opspec-io/sdk-golang so would be great to get it in upstream proper rather than maintaining fork.

@xeipuuv
Copy link
Owner

xeipuuv commented Sep 13, 2017

No problems with the feature we talked about in #128, though it is in a pending state because it has conflicts. I'd gladly accept the PR as soon as it is ready.

@notjames
Copy link
Contributor Author

There seem to be a couple of PRs that fix bugs that should be satisfactory because they are bug-fixes not features. I would think bug-fixes would not necessarily require any more "satisfaction" to @xeipuuv than the bug fixes work and are sane. #161 might be one of these (I'm still waiting for feedback), as well as #150.

@xeipuuv you didn't fully respond to all of the concerns in this thread: "If the PRs that currently exist do not satisfy you then please leave comments on them so the authors can do what's necessary to make them satisfying."

@xeipuuv
Copy link
Owner

xeipuuv commented Sep 14, 2017

@handrews I feel like your expertise and involvement would be ideal to take on this project.
Would you consider it ? Let me know so I can add you as a contributor.
Thanks.

@handrews
Copy link

@xeipuuv thanks! While I'd love to advise on the work and help with any questions or feedback on the specification, I'm really not familiar with Go as a programming language. However, I may have a colleague or two at work who would be interested (we use a lot of Go and JSON Hyper-Schema, and I have been recommending this package, which is why I've kept an eye on issues and PRs). I can check and see if anyone with suitable Go experience has time available. My own coding is more on the JavaScript side these days.

@xeipuuv
Copy link
Owner

xeipuuv commented Sep 14, 2017

I understand. I invited you as one anyway, I guess a spec expert won't hurt ;)
Please keep me updated about other potential contributors.

And more generally, if a Go developer, preferably someone who already contributed to this project, feels like being a contributor too. Just let me know.

@notjames
Copy link
Contributor Author

I would love to be a contributor, as I already stated. I am a developer, just new to Go. Perhaps there could be a concerted effort between a few of us to help out. I would love to be a part of the team.

@notjames
Copy link
Contributor Author

notjames commented Oct 2, 2017

@xeipuuv @handrews
Hey guys. I have an open PR on this that I'm still waiting for an answer as to why it won't be merged or if something else needs to be done with the PR itself. There's a bigger issue of proper schema exceptions that could probably use a wider-scoped conversation. In the meantime, will someone please at least comment on the PR and any deficiencies? Thanks!

@fredbi
Copy link

fredbi commented Oct 5, 2017

Hello. I have been considering too the status of various go JSON tools.
There are currently about 9 JSON schema-based validation packages on github.com (none on golang.org). It is just about time to think about getting this down to 1 or 2.
Just like you all, we DO need quality JSON schema validation.
I highly respect the open-sourcing effort taken on their spare time by contributors.
So, I am ready to enroll, at least to test and report issues, as it would be a side-project for me.

@fredbi
Copy link

fredbi commented Oct 5, 2017

Following my previous post, those interested would find a quick tour of published packages with a similar objective. This one is definitely the only one standing out.

Package Last commit as of 10/05 Popularity (imported by) Issues Open pull requests/Total Contributors Comment
https://github.com/xeipuuv/gojsonschema 21 d   36 3/71 36  
https://github.com/go-jstmpl/go-jsvalidator 11 m   1 0 4  
https://github.com/johandorland/gojsonvalidator 11 m   0 0 0 A CLI based on (1)
https://github.com/janos/jsonschema 11 m   0 0 1  
https://github.com/hiroosak/jsonschema 2 y 3 m   0 0 1  
https://github.com/lestrrat/go-jsval 1 y   0 0 1  
lestrrat/go-jsschema 1 y   0 0 3  
https://github.com/csimplestring/go-json-schema 1 y 9 m   0 0 1  
https://github.com/fd/jsonschema 3 y   0 0 1  

@handrews
Copy link

handrews commented Oct 5, 2017

@fredbi You missed https://github.com/santhosh-tekuri/jsonschema which is the only Go implementation that supports draft-06 that I know of (last commit 1 m; issues 0; open/total PRs 0/1; contributors 1).

This project here is by far the strongest, but I know that in order for my team to use it going forwards we will need to find someone to bring it up to supporting draft-06 and soon draft-07.

@fredbi
Copy link

fredbi commented Oct 5, 2017

Yeah you're right. Thanks. And there are probably some more out there...
I haven't found time testing them all... Again, I am concerned about the (0 issue/0 PR/1 contributer) pattern.
But let's see and have a run with it.

PS: a few days ago, I was pretty much disappointed by a similar pattern with the related problem of generating go structures from JSON schema. Again, 9 available packages or so (most in a 0/0/1 formation). I tested carefully 6 of them. Most worked on more or less complicated examples. None did provide a full JSON schema support. Few are active projects. Now I am gonna test JSON validators the same way. Keep you posted with results soon.

@handrews
Copy link

handrews commented Oct 5, 2017

I am concerned about the (0 issue/0 PR/1 contributer) pattern.

Yeah, that's why I'd love it if we can pull together enough volunteers to move this forward.

It is very hard to support all features of JSON Schema in strongly statically typed languages, and there is some effort towards defining a subset of features that code (and other) generators MUST support for interoperability. The JSON Schema validation vocabulary is intended to provide full validation functionality, which is a very different use case from generation.

@mikemol
Copy link

mikemol commented Nov 30, 2017

Honestly, it would be helpful to have a corpus of schemas and instance data where using a given tool to parse and then serialize would be expected to give semantically-identical output. As edge cases crop up, throw them in the corpus so they can be leveraged by other implementations. (This would have a side-effect of incentivizing including serialization functionality in order to take advantage of a ready pool of unit test fodder, but that's not a bad thing...)

@notjames
Copy link
Contributor Author

notjames commented Dec 1, 2017

I have to be honest that it's getting to the point where it might not be a bad idea to fork and extend this project with a robust group of contributors so that it can move forward. I've had a PR open against this project for months with NO mention from @xeipuuv about why he won't merge it. This is the strongest json validation tool in golang but it's stuck at draft 4. I know that @xeipuuv is busy! I'd be really interested to see if anyone has thoughts about these ideas?

@notjames
Copy link
Contributor Author

notjames commented Dec 2, 2017

I appreciate the matrix above. You missed one other:

https://github.com/samsung-cnct/jsonsvalidator 4mo, nil, 2, 0

I'm the maintainer of that one. The fun thing is that it uses this project as its main library. A few others from the matrix that use this as its main library are:

https://github.com/johandorland/gojsonvalidator
https://github.com/hiroosak/jsonschema

@notjames
Copy link
Contributor Author

ping
anyone out there? I'm getting pretty close to forking this project and taking over...any objections/concerns/comments?

@fredbi
Copy link

fredbi commented Dec 24, 2017

@notjames Yes I think this repo should be forked to remain active.

go is really lacking a robust set of tools for JSON, and atm, it is really much of an annoyance for those who have chosen go as their main development language.

Personally I decided to help the team maintaining go-swagger (https://github.com/go-swagger/go-swagger) as it is more closely related to my use-case (that is, generating go types, then serializing JSON in go constructs, and not just validating JSON schema rules).

This project is using https://github.com/mailru/easyjson as its underlying JSON serializer powerhorse.

@notjames
Copy link
Contributor Author

notjames commented Jan 2, 2018

@fredbi Thank you for your comment. @xeipuuv hasn't been around for months but he did merge PRs three days ago (awesome). I have a fork @ notjames/gojsonschema, but probably am going to hold off since @xeipuuv made some progress.

I'm still thinking I'm going to politely take over. I'll wait and see if @xeipuuv has anything to say about it (like really strong objections or some such). I'd much rather have the ability to collaborate along with a few others so that we can leave the project here and just tend to it properly.

@johandorland
Copy link
Collaborator

I wouldn't say this project is dead, it just needs a few extra maintainers. I'd be against forking this project as it only leads to more fragmentation and since this is the oldest and most widely used JSON Schema library in the golang ecosystem it will take a very long time before everyone moves over to a new repository (if ever).

If @xeipuuv feels comfortable with it I'd be happy to help out maintaining this project and adding draft6 and draft7 to its feature set. I am pretty familiar with the code base after the recent PR I spent way too much time on, although I don't have any previous experience in maintaining a GitHub repo.

@notjames
Copy link
Contributor Author

notjames commented Jan 4, 2018

@johandorland I absolutely agree with you. I've not been eager to fork it but even @xeipuuv seemed hesitant to add maintainers since I started this thread. I had a very simple PR up for literally months before it was merged. Movement on this project has been supremely slow. I'm all in favor of having this remain the main project, but we have to have the ability to let the project proceed in a timely manner. I've also thrown my towel into volunteer as a maintainer.

@b5
Copy link

b5 commented Jan 17, 2018

Hey all,
We're working on a project that needs a solid, extensible implementation of json schema in go that supports draft 7 of the spec. Our project needs a package that:

  • gets cleanly out of and then back into json without altering input
  • integrates with go's standard interfaces
  • extensible with user-contributed custom validators
  • eventual support for cbor coding for shcemas & instances

I'm also interested writing a robust interface for traversing json pointers in decoded go types, which is a set of patterns I think the go community needs. While writing our implementation the beginnings of this interface has emerged, and I'm excited to see where we can take it.

After auditing what's available around the web I'm not convinced anyone has taken the time to work out a robust implementation in Go, which makes me sad. So we've started to work on our own implementation, and I'm going to shamelessly promote those two repos (qri-io/jsonschema and qri-io/jsonpointer) here, and invite all of you to pile on if you feel the code we're putting out is up to snuff. Yes, we're currently guilty of the 1 contributor/~0PR/~0Issues, but hey, gotta start somewhere.

We will be working to continually improve this for our own needs, and would love it if you find this stuff useful. I can promise you that we'll do everything to respond to PR's/issues within reasonable time frames, invite anyone who's interested & courteous to become contributors, and hand over control of the repo to an active maintainer if for whatever reason we can't support the project in the future.

That being said, I don't want to take from @xeipuuv's efforts on this library to date. I wouldn't and won't encourage anyone who doesn't have our needs to switch away from using this project. But I do think the go community deserves a solid implementation of this wonderful spec with timely maintenance.

@handrews I want to thank you & all contributors for the incredible json-test-suite. I'm amazed at how helpful this repo has been, and only wish other specs came with such a great test suite 😉.

@notjames in particular I'd love to see if we can't help solve your needs, both in terms of communication and code.

@johandorland I very much respect and share your desire for coalescing around a smaller number of implementations. Writing a new package is not a decision I take lightly.

Thanks!

@handrews
Copy link

handrews commented Jan 17, 2018

@b5 credit for the test suite primarily goes to @Julian, and I agree it's a fantastic resource and I hope to write one (or find someone willing to write one) for annotation collection and hyper-schema soon. I'll take a look at your project and comment more there :-)

@xeipuuv
Copy link
Owner

xeipuuv commented Jan 27, 2018

@johandorland I just added you to the list of collaborators on gojsonschema and its sub repos: gojsonpointer and gojsonreference. Feel free to improve these projects, build a team of core collaborators and move to a draft6/7.
@handrews You were a collaborator already to this repo, just added you to the sub ones too.

Thank you for taking the lead on this project and moving it in the right direction.
Good luck and have fun !

@handrews
Copy link

@xeipuuv @johandorland As I've said before I am not in a position to take a lead on any of these Go project. I am more than happy to answer spec questions and be a general JSON Schema consultant, but a.) I don't know Go b.) I don't have time to learn another programming language right now, c.) leading the specification work takes up more time than I have as it is.

I would prefer not to have merge rights on any of these repos as people have already asked me to merge things and I am not qualified to evaluate PRs except in the most general "does this seem to be doing the right thing if I eyeball it as pseudocode" sort of way.

@johandorland
Copy link
Collaborator

Thank you for adding me @xeipuuv . I'll try to take good care of your projects.

@handrews
Copy link

handrews commented Feb 2, 2018

@johandorland sounds like it's time to close this issue with an answer of "nope, it's not dead" :-) I'm really happy to see you step up, and feel free to at-mention me for spec concerns, or join the JSON Schema slack channel. Here's an invite link (that anyone can use, copied from our web site):

https://join.slack.com/t/json-schema/shared_invite/enQtMjk1NDcyNDI2NTAwLTcyYmYwMjdmMmUxNzZjYzIxNGU2YjdkNzdlOGZiNjIwNDI2M2Y3NmRkYjA4YmMwODMwYjgyOTFlNWZjZjAyNjg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants