-
Notifications
You must be signed in to change notification settings - Fork 148
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
How to continue maintenance of EasyRdf? (and the way to 1.0.0?) #320
Comments
To bring this issue forward, I created a fork of this repository, which can be a vehicle for further development. https://github.com/sweetyrdf/easyrdf For now I intend to setup a stable basement to allow continuous maintenance. But I am open if someone wants to provide new features. |
I like the idea of moving the development to an organisation, even more if the original developer @njh does not respond any more. Thanks for initiating it. I just hope that others will want to join. As far as I'm concerned, I just started using EasyRdf, but should I keep using this library in the near future, I think I'll want to join and help on this. |
I released the first stable version of my fork recently. Any feedback is appreciated. Take care. |
Sorry for the delayed response. Unfortunately, I don't have anything like the amount of time that I used to have when I initially write EasyRdf. I have been wondering what to do about EasyRdf for little a while now. I have lost a lot of my initial motivation:
However, on the other hand, there are reasons I haven't given up on it completely:
I don't think just having a number of people to help maintain the project by making a few tweaks and accepting Pull Requests is enough. I have had trouble in other projects 'blindly' accepting Pull Requests - it has introduced bigger problems or led the project in a non-strategic direction, mainly due to contributors not seeing the bigger picture. There needs to be someone with the motivation and vision for the project to make sure it heads in the right direction. Getting to a 1.0 releaseA lot of the composer problems that people are reporting are due to the lack of an official release with modern namespaces. I never got that far because:
Because of the breaking API change in changing to modern PHP namespaces, the next release should follow semver and increment the major version number to 1.x.x. Beyond version 1.x
Also
Next Steps
|
Hey @njh, thank you for reaching out here in such a detail. I worked a couple of years in the RDF world (Linked Open Data, ETL, database) and can approve most of your points. But i think its not only about RDF anymore, but also about how to maintain a library which became part of an ecosystem and about the people around it. State of RDF in PHP worldBefore i continue i want to make some statements about the state of RDF libraries in the PHP world. That is the situation people are facing, if they wanna use PHP for RDF projects. Unfortunately, PHP never had a stable and feature-complete RDF stack like in the Java or Python world. We "only" have:
ARC2 is only maintenance mode. I stepped in to help semsol so it doesn't die and added few features to bring it to PHP 7 era (like using PDO instead of mysql extension). hardf is kinda new and was brought from the nodejs world. It may need some refinement but it has fast parsers and does its job well. Erfurt aims to be a feature-complete framework which not only has parsers but also a triple store implementation like ARC2, for instance. It is the basement of the OntoWiki which basically provides a wiki-like UI to manage RDF data. Status: both are not maintained anymore and not ready for PHP 7. I am one of the core developers of the Saft framework, which back then aimed to be some kind of an integration layer. The PHP RDF ecosystem was already stuck in 2014-2015, many libraries had weak support (by maintainers or the community) and began to die. Our goal was to provide a basement and integrate different foreign libraries such as EasyRdf or ARC2 to enable users to use them together. One could focus on the use case, we took care of the data transformation etc. We stopped due to the lack of time and because no one really cared, but that's OK. My suggestionsYour feature-bullets sound nice, but i am afraid there might be only a few people who are not only capable of doing it but are also willing to invest the time needed. As far as i am concerned i would suggest the following:
I did my fork https://github.com/sweetyrdf/easyrdf to save EasyRdf's "legacy" and enable others to keep using this library and have a stable basement, even though there might be no new features in the future. I'd be happy to switch course (e.g. remove my fork) and support you, depending on the plans. |
Hi everyone! Thank you @k00ni for taking the initiative and creating a plausible basis for a sustainable EasyRdf project, and to @njh for not only creating and maintaining EasyRdf for so long but also explaining your views on the situation and the future in the above comment. Your insight is really valuable. I am one of the maintainers of Skosmos, a web publishing tool for SKOS/RDF vocabularies. We've been using EasyRdf since many years back. We've also occasionally contributed something back to EasyRdf, for example a faster Turtle parser (#295) and HTTP timeout support (#234, #235). We've obviously noticed that EasyRdf is not very actively maintained anymore and had occasional issues, for example lack of PHP 7.4 compatibility. Other than that, we are quite happy with the current status of EasyRdf and see no need for big overhauls from our perspective. Here are the parts that we use:
Parts that we don't use:
Regarding the future, I agree with the other comments above that it would be good to transition the maintenance to a GitHub organization, not an individual account. This gives more flexibility in assigning permissions and roles and is more of a neutral space. The changes by @k00ni in the new fork look very reasonable to me, so I hope these could form a basis for a future maintenance model. |
Thanks for your comments @k00ni and @osma. I think for now I am going to focus on releasing version 1.0.0. The make command in my CI system is working for the first time in a long time now: I am going to try and get the website build working again, and then should be pretty close to making a release. |
Hi @njh,
Thank your for the invite. I saw that you did a lot in the last 2 days. Solving issues and updating code is great, but i am wondering what the actual plan is? It would be great if you could give me some feedback on the following questions:
|
Thanks, everyone, for moving this forward -- these are developments I've been hoping to see for several years now, and I really appreciate the time and effort spent! My time is already spread very thin across multiple open source projects, but I'm certainly willing to contribute a little effort here now and then to keep the project alive, since I depend upon it pretty heavily for https://github.com/demiankatz/Geeby-Deeby. If it would be helpful to put me on the list in the new organization, I'm willing to help out when I can... but since I'm unlikely to offer more than occasional assistance, I leave it to your discretion. :-) |
Great news! look forward to helping move this forward. |
Hi @k00ni, Is my agenda fixed? Sort of. My current plan is to focus on releasing version 1.0, including releasing a new version of the website that documents that new version. I don't want to release a version with (in some cases completely) broken examples. Once version 1.0 is out, I would hope to do a 1.1 release with more fixes and minor enhancements. I have been going through some of the issues and Pull Requests to check the seriousness of the problems. I do keep getting tempted to fix more stuff but the focus should be to get something released. Beyond that I don't have any strong plans, other than really wanting to replace the HTTP Client. The list of stuff was more of a brain dump than anything else. Responding to your suggestions
Do you plan to use code from my fork I am sorry you did lots of work on the assumption that the project was completely dead, before I responded. I am hoping that it will be possible to cherry-pick / merge your changes in. How would you organise the work of us "approvers" To keep things simple, I am going to get on with releasing version 1.0 myself in the current setup. Once that is released:
nick. |
@njh, to respond to a couple points out of that long message: 1.) Regarding HTTP library, I wonder if it would be least intrusive to switch to Laminas\Http, as that is the still-maintained successor to Zend_HTTP and is comparable to it in much the way that EasyRDF 1.x will compare to EasyRDF 0.x. I think it also implements some of the interop interfaces, which could make it easier to eventually back out into something more generic. 2.) In my experience, moving GitHub repositories is pretty seamless. I wouldn't be too worried about breaking anything. |
Thanks @demiankatz.
|
Progress Update:
|
Just in case,
Maybe it helps. |
Yeah, whenever I press the 'Sync Account' button, it spins for a while then nothing happens. However I have just had success with the New way of using Travis as an App. Marketplace -> Travis -> Open Source -> Install for Free. The difference is that is is on travis-ci.com not travis-ci.org: |
And what about my second point? (settings > applications, grant access for organization easyrdf) |
What needs to be done before you release 1.0.0? In the milestone https://github.com/easyrdf/easyrdf/milestone/10 there is only this issue and #318 which seems solved. |
Permissions were set correctly. I think I am happy with using the new 'apps' way of using Travis CI. I understand that everything will eventually be migrated there. Will just have to remember to go to the right URL: https://www.travis-ci.com/github/easyrdf/easyrdf |
Very little I think. Doing a I am currently trying to fix the www.easyrdf.org website. Hopefully not too much more to do. I want to do get that done before releasing, incase there are any small changes require to the published .tar.gz - which the website generates itself from. |
Wow, so much progress here during the last few days. Great work @njh on the new release and everyone else for the support! Really looking forward to the 1.0 release. I hope that some of @k00ni:s work on the fork could be merged back upstream, perhaps for 1.1. I haven't looked at the specifics in very much detail but both @njh and @k00ni seem to have improved the unit test and CI setup. Maybe @k00ni could create PRs for some items? One further suggestion: Would it be helpful to set up integrations with quality analysis tools such as Code Climate, Codacy, SensioLabs Insight, Scrutinizer and/or SonarQube/SonarCloud, in addition to Travis CI and Codecov? In my experience, they can provide valuable insight into bugs and other quality issues (e.g. dead code) that are otherwise hard to discover and pinpoint sections in the code base that would be good candidates for refactoring. They are especially valuable for the near-instant review of PRs: they give feedback on quality issues in the new code. I'm finding that with these tools in use, I tend to open draft PRs very early in the process just to get the automated feedback. All of the tools I mention are free (as in beer) for open source projects and support PHP - we use them all in Skosmos development. They all have their strenghts and weaknesses (e.g. false positives) but the combination is powerful. This was addressed to me:
Thanks for asking. I'm a bit torn on this. As I said above I'm mostly happy with the current state of EasyRdf and don't have a need for major improvements - I just want the project to stay viable. I'd be happy to just remain as a user and occasional contributor. But if you are aiming for a broad maintainership model, I wouldn't object to becoming a PR reviewer. |
I wait until 1.0 is released so there is stable basement for further development. Afterwards i surely can create PRs and "move" back some code of my fork.
That would be great. Scrutinizer is helpful and covers multiple areas, like tests, coding styles and code smells. We could also include tools like PHPStan (https://github.com/phpstan/phpstan) which provides static code analysis. If included in Travis it will mark PRs which violate certain rules. I ran PHP-CS-Fixer on my fork and it changed over 130 files (see https://github.com/sweetyrdf/easyrdf/pull/12/files). If we deploy tools like that, ALL pending PRs should be merged or canceled, otherwise we will run into a merging-hell. |
Sorry, slow progress. But I am making little steps each day. Today I fixed the formatting errors on the documentation pages by switching to parsedown. |
Sorry, I have not found time to work on any personal projects in the past couple of weeks. However I have just spent time to reviewing everything that has changed since version 0.9.0 (a lot!) and have now updated the CHANGELOG: Slowly getting there... |
Also waiting for the 1.0 release @ https://www.drupal.org/project/drupal/issues/3110972 |
@njh: Can you tell us what is left to do? As you stated before
you want to work on 1.0.0 alone so i assume we can't help to speed it up? You/we should not let pass the opportunity to be part of the Drupal 9 setup. |
@k00ni I think it is done now. The key things I wanted to sort out are now done:
I have just tagged version 1.0.0-rc.1. The things I want to sort out on the website:
I have just found lots of (unanswered) questions on StackOverflow: If anyone has to time to help answer some of them, that would be great. |
This comment has been minimized.
This comment has been minimized.
So, is now a good time to prepare new pull requests? In my fork I reworked the tooling and rescued some of the pull requests from this repository. Lately PHPStan was added (to enable static code analysis on a basic level) and refined test suite as a whole (https://github.com/sweetyrdf/easyrdf/pull/19). @zozlak helped a lot by adding further information, fixes and tests (https://github.com/sweetyrdf/easyrdf/pull/18, https://github.com/sweetyrdf/easyrdf/pull/16, https://github.com/sweetyrdf/easyrdf/pull/11). Any preferences about how to bring back code from my fork? |
Yes, now would be a good time to prepare Pull Requests, if you have time. Hopefully 1.0.0 won't be very different to 1.0.0-rc.1 but I am trying to fix the broken API reference, which is generated from the main easyrdf repo: If it is possible, it would be good to merge things in small chunks, as it is much easier to review. |
I created pull requests for all the code parts which can be merged independently from https://github.com/sweetyrdf/easyrdf. What is left on my list are changes in Travis, tooling, composer dependencies and the test environment (https://github.com/sweetyrdf/easyrdf/pull/19). In my opinion these only makes sense when grouped in one PR. But lets see how my current PRs are first and if there are any problems. After we cleared and merged them, i will create further PRs. |
It seems the new 1.0.0-rc.1 version is not being picked up by Packagist: https://packagist.org/packages/easyrdf/easyrdf It reports though that auto-updates are working, and the reported check has taken place after 1.0.0-rc.1 has been released. I wonder what could be the problem? |
@pfrenssen, are you able to try logging into packagist and forcing a manual check from that end? If you haven't already done that, it might help narrow down whether something is glitchy about the GitHub integration, or it's something to do with repo URLs, tag naming conventions, or something else. |
@demiankatz I had done a manual check earlier today, but now I see that the version has been added! Possibly this works with some delay? |
@pfrenssen, that's great news! I don't publish to Packagist all that often, so I'm not sure what qualifies as a "normal" delay, but it does seem it's not totally instantaneous sometimes. |
@pfrenssen thanks for testing and for your feedback. Packagist can be a bit tricky to diagnose sometimes - I wasn't seeing any error messages, or logs and pressing the Update button wasn't doing anything. Then I realised that the Thanks again for letting me know about this. |
@njh packagist doesn't need the version number in the composer.json so the easiest way to avoid such issues is to remove it from composer.json and use only github releases. |
@zozlak The reason why I put the version number in I still think it is useful for people (novices?) to be able to download a .tar.gz which includes pre-built documentation and generated files; everything that they need to get started... |
My personal opinion is:
|
Thanks for your feedback @zozlak. Not working after forking is definitely not a good thing. It is is slightly terrifying that the first commits were in 2009 and that the project is over 10 years old. And indeed a lot has changed in that time. However it is also worth remembering that still not everyone is using package managers, or understands Github. There is still a world of people uploading to shared servers. One of the good things about PHP is that it is really easy to get up and running, without having much development experience. I totally agree about Googling documentation. At the moment the website build process uses that documentation that was generated as part of the release, but maybe I should change that. |
Version 1.0.0 is released: https://groups.google.com/g/easyrdf/c/MokuMeJJbEs
I will start thinking about how to continue with this project tomorrow but for now, I am going to close this issue! 🎉 |
That's great, thank you! |
I will maintain EasyRdf in my fork at https://github.com/sweetrdf/easyrdf and welcome anyone to use it and give feedback. |
Just to be clear that I intend to continue to maintain EasyRdf here at https://github.com/easyrdf/easyrdf and https://www.easyrdf.org/ @k00ni is very welcome to create a fork - but it will be something new and different to EasyRdf. |
Its sad to see another PHP/RDF project being not maintained anymore. First of all, @njh and all contributors did an amazing job of creating EasyRdf. Because it is widely used (Github reports "Used by": 14.5k), there should be a way to continue its maintenance and even add further improvements.
I would love to hear from @njh, if he has plans for EasyRdf.
In case, he has no plans or doesn't react, i would suggest the following: we create a new organization and fork the repository. This would allow a wider audience to work on the code.
I can help with organizing issues, check code and other stuff from time to time.
Based on the network view there are projects with improvements, fixes, i assume. (Just to name a few @SchemaApp, @acdh-oeaw, @frmichel)
What do you guys think?
Ref: #299, #282
The text was updated successfully, but these errors were encountered: