Press Ctrl / CMD + C to copy this to your clipboard.
This post will be reported to the moderators as potential spam to be looked at
As we continue to see new plugins developed for Merchello, I've found it is becoming increasingly difficult to keep them up to date with the current Merchello.Core version.
I have been considering spending some time and removing the /Plugins directory from the repository root and creating a single separate solution that is inclusive of all contributed projects ... sort of like a uComponents. This way the we could share utility and helper classes, perhaps even create a single App_Plugin directory so that Merchello does not get too overbearing in a big install with a log of individual plugins.
I would love for people to chime in on these ...
Is this worth doing?
Should the new solution be moved to a completely separate repository?
I am on the fence on this one. From my perspective, if the plugins were all up to date, it would be fine to include them with the initial install but can see how it is probably a better fit to have them as a separate package.
We would need some sort of governance to decide what plugins would be added and which were too implementation specific.
It may also be worth having sub projects off the main solution for regionally specific plugins
I do have maintenance concerns on this idea. Regionally specific projects would require a project lead that understands the various plugins.
The nice thing about the current way is that it is quite easy to find the plug-ins. However, it does create overhead for us and I'm totally cool with a plugins project that is a new repo but still under the merchello account.
If we make everyone have their own plug-in and put it on the Umbraco package repo there is more risk for plug-ins to die and be unmaintained.
@Jason - I totally agree. I'm thinking the plugin solution would actually live in the Merchello repository but just include the plugin projects.
love the idea of separating core from plugins,it fits in with the umbraco way, keep it light and tight, and teh developers can figure ways round things.
however does that have long term consequences?
Surely each region/solution is specific for a client, unless using adefault setup so sure the focus is on devs to make the plugins to get merchello to work for them??
Any way you structure it will be fine by me but here are my two cents :)
I don't see a big advantage to having them in one solution. In fact, I think it might be more intimidating to new comers to have it that way. The main issue in my mind is of discover-ability - how will people find a plugin? The main reason I submitted a pull request to have the Stripe provider included in the Merchello repo is that I thought people would be more likely to find it there. It's unfortunate that our.umbraco.org doesn't have a more robust way of categorizing projects, because that would be a logical place for them but maybe merchello.com could have a plugin directory. I think it is a good idea for new plugins to go in their own repos with a way for the Merchello team to invite or graduate a plugin that is popular and they plan to maintain, into an official repo. Breaking it off into a separate repo means you could delegate the task of curating the 'officially' supported plugins. If there are utility and helper classes that could be useful to multiple plugins but don't fit in Merchello core, then you could create a separate class library there. Either way, it would be great to see more documentation on how to write plugins so as to encourage people to write and share their plugins. I'll try to write up some notes as I do a provider for taxjar.com.
That would be cool if Umbraco did have a way to group plugins with other plugins - but my guess is it would probably add more problems than provide solutions especially with the well trodden "dependency and capability" questions.
Perhaps it would be good enough to use the tags in the package admin or something.
My feeling is that allowing plugins in the Merchello solution is better so that people can see other peoples work as examples. If the plugins themselves were in a single solution, I think we each should still have a separate build and be offered as individual packages. The single solution simply assists in keeping all the plugins up to date with the Umbraco / Merchello dependencies which can be pulled from NuGet.
Just as a comment: I'd try not to put too many things in the main Merchello solution, it's way easier to update plugins if they're not built in so that you can do updates separately from core updates.
I think the best way to create awareness of plugins would be to add a nice dashboard pointing out all the other cool stuff you can do with Merchello. Currently, Our Umbraco is not equipped to handle dependencies or even easy linking to related packages. Of course the plugins can be released as a file download next to the "main" package.
@Sebastiaan - it would be great if Our Umbraco projects had tagging. The categories also don't always seem to be too helpful. In this case Merchello is in collaboration -- maybe add a category for ecommerce?
Yep - I did not write what I meant exactly. The Merchello.sln will only ever be the Merchello.Core, Merchello.Web, Merchello.Examine projects.
In the route of our repository, we have a /Plugins/ folder that at the moment as a half dozen or so individual solutions for various providers.
I was wondering if people thought it would be a good idea to add these individual projects to a "Plugins" solution in the Merchello repository - similar to something like uComponents.
I should have thought about adding the individual packages as a download.
We also just launched http://www.merchello.com - Another idea would be to have a package registration page on it so that we could get some descriptions and point to various places on our.umbraco.org.
@Alex Yeah, would love it, I am unsure how to do such a thing at the moment though, Our has been built over such a long time that a lot of things sometimes just "happened" and nobody really knows how it works any more.. ;-) But it's open source! So you COULD find out. :)
@Rusty Sounds perfect. The "problem" we've seen with uComponents is that it was trying to do too many things for too many people too. I love single-purpose plugins that do one thing well for maintainability, so when a payment provider gets updated, a completely unrelated shipping provider with half finished code is not blocking that update (for example).
I approve of the idea of bundling them together in a project outside of the core. Seems Umbraco-like in sorting.However, like others have said, I could see some issues with keeping it all updated as Merchello updates but seperate plugin authors fail to as aggressively keep up. How would we handle that sort of situation?
well if "we" have a clear roadmap and timetable excluding patches for emergencies, then bundle package authors will have a clear chance to maintain them.
if after a certain number of roadmapped they can then be tagged as unmaintained, and if someone else wants to pick it up they can..
If merchello is clear on a strategy and with releases then authors have the resposnibility
I think there's a roadmap for the next few updates in the works, but I'm not sure when it's going to be published. That should help a lot, though, yes.
This is always a problem for Umbraco core as well, which is why we need to make changes that are not going to break anything. Of course it would be prudent to check if the plugins keep working (we test with a few high-profile ones before we go live with a new Umbraco version).
Unfortunately, we know there *will* be some breaking changes in the next few major updates. So there's going to be a few eggs broken before we get to the omelette stage.
I guess the user base of Merchello is small enough at the moment where this is not too painful. Keep track of what you break and help plugin authors fix easily. If it's a major release (1.x.y, 2.x.y) then of course this is to be expected but I suspect that it's going to be the minor version that's updated in the near future (x.2.y, x.3.y) with breaking changes? I see no problem in iterating quickly in the beginning and increasing the major version a few times until the dust settles.
We have seen, however, once Umbraco reached critical mass, people started to really hate breaking changes. At that point you'll definitely notice the blowback from your users though. ;-)
I'm pretty sure the plan is to get the pain over with early, from what I've gathered.
Yes, the last couple of minor version have had some pretty "good" breaking changes which I know is not optimal. That being said, while the user base is for the most parts people evaluating the package and/or those that are in contact with us directly I've felt it better to push these through. The long term plan is to start with SemVer at version 2.0.0 - once we have the core concepts more thoroughly build out.
As for the plugins, I am leaning toward keeping them separate and publishing links to them on merchello.com so that we have a concise list as described earlier. The fact that we could probably do it in a single "plugin" project (as attractive as that sounds) does potentially leave us in the future having to break the thing back up again for many of the reasons also described ...
Makes sense to me. Probably the best scenario to avoid future complications. And, honestly, it's not too hard to link to various repos/plugin pages.
is working on a reply...
Write your reply to:
Image will be uploaded when post is submitted