Closed WillStrohl closed 5 years ago
@hismightiness sounds great - thanks for the recommendation @iJungleboy
By the way, right now there there are no "Settings", so this will require some UI/UX work.
I wouldn't do it over settings - maybe more something like this:
I think we need to do this a different way, and distributions is not on the radar right now. One of the core principles behind nvQuickSite is simplicity and speed to get DNN installed. The tabbed concept breaks the current UX paradigm, and it introduces complexity.
@hismightiness I partially agree. But I could remove one complexity, maybe allowing for the tabs :)
For example, if we remove the "local installation" field (again a complexity some people don't understand) - "do I need to fill this in?" and also put that behind a tab, I think we could get it all together. The initial dialog would be even simpler (just a dropdown), and the "advanced" features would all be behind other tabs (or another kind of ui)
@iJungleboy we are leaning towards a "Settings" UI. Generally speaking tabs within tabs doesn't lead to good UX.
I do agree that many people are confused by the Local Install Package section. Perhaps that too should be hidden by default since the majority of users do not use local install packages.
Several things to consider here. Thanks to all for the input and ideas!
Why not just have the release candidates in the same current list? Once the rtm release is out, remove the RC's from the list since no one is going to be interested in them anymore. Keep it simple.
@nvisionative I use the Local Install Package once I download a package. I don't want to download it again. I would like to see the full path of the package in the text box if the app knows the package exists in the downloads folder. Right now it's empty even though the zip file exists.
@abukres I think you are onto something there. We will make note of that suggestion and try it out with the next Release Candidate. That would require no code changes - me likey! 😄
Great idea regarding local packages that have already been downloaded. Can you create a new issue for that one since it is unrelated to RC support? Thanks!
@nvisionative I am not seeing any movement in this area, Can you just for now add the rc candidates in your PackageManifest.xml file and put those zips on your site. The issue I am seeing here is that you're controlling the xml file and the zips have to be downloaded from your site. I suggest you enable the user to use their own local xml file and they download the rc zip themselves and they edit the xml to their liking so that they can install any rc any time they want without the tight dependency on the remote xml file. The UI can let the user switch to a local PackageManifest.xml file. The app needs to be updated so that a local rc zip can be unpacked as well on demand.
@abukres we decided not to manage RCs manually (making them available in the dropdown). It is a setup for frustration when our team cannot get it available in a timely manner.
However, it is absolutely possible, and encouraged, to download the RC install packages from the DNN Platform GitHub repo and then use nvQuickSite to install (using local package).
We are not "controlling" anything. Yes, the XML file is currently hosted on our server and that indeed drives what shows up in the dropdown. However, you have always been able to download install packages from elsewhere and use them with nvQuickSite. This is a "free service" to drive a better user experience, not something we are "controlling". I am sorry you feel that way.
Furthermore, this is an open source project that others are more than welcome to propose new ways of doing things and actually create pull requests to implement them. We have always encouraged this.
@nvisionative I wasn't thinking of being able to select an rc while selecting another option from the dropdown. For some reason I thought the two are tied together. Thanks.
I didn't imply controlling as a negative thing. I meant that the user has no control in what shows up in the list and therefore is unable to install any RCs (they can but it's not very obvious). Remember that there are many non technical users who use this app to install DNN. So yeah I understand they can go to the source and make changes but not every user is a developer. In fact this app probably targets more non technical users than technical. Surely, developers know how to get an RC from Github and install them. We're trying to make the app as useful and as easy to use for non technical users and that includes an easy way to install an RC. Remember to think like a non-sophisticated non technical user instead of as a developer who has more knowledge of the nooks and crannies of the app.
The fact that it can be used to install RCs in its current state was hidden by me and I am a developer so I am pretty sure non technical people will miss this ability as well.
I am not sure what you mean by not being to get the RCs in a timely manner. Updating the xml file and putting the zip file on the server is too time consuming? So maybe host the xml and zips on a server that is managed by a few volunteers. Or let the app contact several host servers and use the server that has the most recent list. Like a distributed system.
@abukres thank you for the clarifying response. My apologies for the misunderstandings. 😃
You bring up valid points about the UX. Perhaps someone can help by updating the documentation for nvQuickSite.
My point about making RCs available in the dropdown is more about availability and response time versus the actual time it takes to update. RCs are extremely timely and sometimes get pulled/updated quickly without much warning. For our team to commit to staying on top of all of that so we can be ready to react in a timely manner is not something we can commit to.
That said, we hope to move the XML file to GitHub at some point and just reference the install packages on GitHub. There was a very real and important historical reason why we initially decided to manage/host these packages ourselves, but that reasoning no longer applies and it probably much "safer" now to rely on DNN Platform releases on GitHub for this.
Note that hosting on github for production data can run into problems. We used to get the default 2sxc templates from github, but after Github was attacked about 2 years ago they blocked lots of http traffic - so our setup failed. Fortunately that part of the code was running on the 2sxc.org server, so we were able to modify it to then use files on 2sxc.org. But if something like this happens to your install, it would be hard to fix on the fly.
Retrieving releases from GitHub should be a well supported scenario, you'll just need to properly use the GitHub API to find the release to download.
@bdukes you're probably right. I was using a public API, and probably I would have just needed to switch to a private one using an API key or something.
Okay, so that piece just got more complicated. 😆 🚀
If someone gives me the DNN Github API url to query the latest DNN releases, I might be able to get nvQuickSite create the proper list dynamically. It gets the current PackageManifest.xml and prepends the list with whatever is the latest RC is plus its download link.
I think this is a good resource and I will check it out. https://developer.github.com/v3/repos/releases/
Here's the NuGet package for their API wrapper: https://www.nuget.org/packages/Octokit
Hey guys, there are additional things to consider here, which increases the complexity. One of the reasons we manage our own XML file and packages is due to the many GitHub "releases" that aren't actual releases, or shouldn't be surfaced in nvQuickSite. Naming conventions have been poor and inconsistent historically on the DNN Platform repo. The way it is today is not the way it has always been. Tag naming has changed over the years, etc.
Therefore, shifting to this more automated solution could ultimately lead to an even worse user experience. I realize it is not perfect now, but I wouldn't want to take a step backwards just for the sake of automating this package management.
Also, this issue is about support Release Candidates and we seem to be slipping into much more here. That is fine, but let's break the pieces out into manageable chunks (issues) to be discussed and worked on.
Thanks to everyone for your input and contributions!
@nvisionative I totally agree. We must still remember, that if you need the release from 5 minutes ago, you can always download it yourself. plus if you took the automatic stream, you would also end up with some unexpected nightly build or something.
So a manual feed is probably still best. This is a bit like the auto-installed apps on 2sxc - they are not the latest, but the ones tested for that version. So if I update the news app, I only update the (manually maintaned) list of auto-install-apps for the newer versions, while the list for older versions usually don't get modified any more - simply to avoid having to test everything on older versions. it's just safer, and the automations are not meant for edge cases.
I created a solution for myself and made it available as a PR if you choose to use it. If the people who create the DNN releases keep the format of tagname and name of the releases the same, it should work for future RCs. Let me know if you find any issues.
It was interesting to notice the number of downloads for each release from the API. I don't think the UI shows these numbers.
@abukres thanks - I am glad you came up with a solution that works for you. Due to several factors:
...we will not be using this approach and will continue to manually manage. This may change in the future, but for now, this generally accepted as the best option.
@hismightiness we are going to go ahead and close this issue due to the above decisions. Thanks for the suggestion and if you have any ideas in the future for how to make this better, please don't hesitate to share.
@nvisionative My change adds only the latest RC to YOUR list. All the existing DNN releases and future releases are still using your list. It's not getting any non RC releases from Github. If the RC naming does change in the future, it's not going to break anything. The RC entry just won't get added.
Your two factors that you mentioned are not valid in my opinion.
@abukres I understand and apologize for any misunderstanding. We have decided to not support programmatic addition of Release Candidates to the dropdown in nvQuickSite.
If anyone wants the RC support, it's at my fork at https://github.com/abukres/nvQuickSite
Thanks again @abukres!
One of the original goals that David and I had used as our "guiding light" of sorts and the primary reason this tool is so popular and successful is the ease of use and specifically that it doesn't require any technical expertise (for the most part). I personally don't believe that making this tool support RC's continues to achieve that goal. Just my $0.02. :)
Just my $0.02 here, greater access to RC releases for ALL user types need to be s priority.
An open source project as large as DNN needs all of the help as possible during RC release cycles.
I say we take @abukres fork and rebrand it under the platform and make this the official way to download and configure packages. It's a bit sad the refusal to work with someone who is trying to make everyone's life much easier.
Also, the best testing we've gotten thus far, has come from the non-technical people who just want to help out. Us technical folks have missed quite a few major bugs in the last few rounds of RC testing.
I 100% agree that surfacing RC's to people is important, but this tool is not the correct way to do that, in my opinion. It's focus is not on helping testers and developers necessarily. In most cases, those folks know everything they need to know to install and test DNN, and they tend to be far more technical.
Adding the ability to do RC's in any tool alongside normal installations is incredibly dangerous. I've run into far too many instances of (accidental) object qualifiers and installed source code versions of modules over the years to feel any other way.
In my opinion, any method of making RC's available to people needs to be specific to RC's ONLY. The average person can easily miss any kind of notice, prompt, message, etc. that tells them that something is an RC. Doing it any other way will only result in a ton of RC's in the wild that should have been a normal installation of DNN.
As stated before, "it is absolutely possible, and encouraged, to download the RC install packages from the DNN Platform GitHub repo and then use nvQuickSite to install (using local package)."
This issue was about if/how to surface RCs in the UI. We have dialoged and debated options for 7 months now on this issue, and in other channels, and came to a decision. We have not refused to work with anyone on this and we have always welcomed input. The burden of a decision for nvQuickSite is on us though. Thank you for respecting that.
Closing the issue and refusing to even entertain options that quite a few people are looking for isn’t really a debate. It’s clear we need an official tool for this and it’s something I’ll work on getting added into the official release pipeline. Thanks for the initial work on this @nvisionative.
@nvisionative I encourage you to give detailed reasons when you close an issue. You mentioned two reasons and I mentioned those didn't apply to the change. You apologized for the misunderstanding and closed the issue anyway.
@hismightiness If you don't want RCs to show up in the dropdown then there are other ways to handle this situation. They can be hidden by default and a user setting in the app can enable their visibility on demand. Anyone who enables it is expected to be aware of what the setting is used for. Just like Chrome has flags to enable unreleased features. Make a feature available but hide it if you're concerned about the average user. BTW, I didn't know you're involved with this tool. This explains to me now some of your comments.
We should be encouraging more people to be using this tool and encourage them to test release candidates. It benefits the whole DNN community.
The other way has already been described at least twice by David.
Get Outlook for Androidhttps://aka.ms/ghei36
From: Abdu notifications@github.com Sent: Thursday, April 4, 2019 12:20:48 PM To: nvisionative/nvQuickSite Cc: Will Strohl; Mention Subject: Re: [nvisionative/nvQuickSite] Support for Release Candidates (#173)
@nvisionativehttps://github.com/nvisionative I encourage you to give detailed reasons when you close an issue. You mentioned two reasons and I mentioned those didn't apply to the change. You apologized for the misunderstanding and closed the issue anyway.
@hismightinesshttps://github.com/hismightiness If you don't want RCs to show up in the dropdown then there are other ways to handle this situation. They can be hidden by default and a user setting in the app can enable their visibility on demand. Anyone who enables it is expected to be aware of what the setting is used for. Just like Chrome has flags to enable unreleased features. Make a feature available but hide it if you're concerned about the average user. BTW, I didn't you're involved with this tool. This explains to me now some of your comments.
We should be encouraging more people to be using this tool and encourage them to test release candidates. It benefits the whole DNN community.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/nvisionative/nvQuickSite/issues/173#issuecomment-480029353, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AA5QJ-0hR0KkNFWi-k96gz0WwzptAK9oks5vdlCQgaJpZM4WZnhM.
While yes, there are other ways of installing things. The point is we CAN make it easier. We will make it easier under the official version we will start to promote with the v9.4 round of RCs.
It’s really a shame that the a couple leaders of the ecosystem advisor groups are this much against making the platform better and making it easier for all users to get set up with a test site or a local site to start helping us continue improving the platform.
It makes no sense how you’re both all for RC, then the feature shows up and your public stance changes 180 degrees.
Have fun, Oliver. I hope it works out well for you. :)
We will. The build team takes these issues seriously. Improving the platform is our primary goal
That sounds amazing! Good luck!
It is amazing. It’s an insult to the entire community that you guys cannot get even continue the discussion to come up with a solution together. Luckily there is a group of people who do want to continue this great work and make it even better and easier to use for our entire community.
You are a rock star, Oliver. I can't wait to see what you do with your fork. :)
Thanks Will.
You are welcome.
Anytime
Sweet.
@ohine @hismightiness - this is not the right platform for this...
After a healthy cool-down period, we are re-opening this issue. With objective re-consideration of all points made during the past 7 months, and even after this issue was closed, we have decided on a way of doing this that aligns with the guiding principles of this project, yet makes Release Candidates more accessible to those wishing to participate in the RC test cycle.
Thank you all for your input. Moving forward, please be advised that we will be implementing a CODE OF CONDUCT via #193. We take this very seriously and want to do our part to facilitate a healthy and productive open source community.
@abukres we would like to work with you on the PR you submitted, as it contains some key pieces in making this possible. Are you good with this? If so, there are just a few house-keeping things we'll want to do in order to clean up the PR. If this is agreeable to you, then we will continue that endeavor within PR #185.
This will be one of several things that will need to be put into place in order to ready nvQuickSite for the next release. Additional steps will be taken to solidify the solution.
Please review the above plan and let us know if we have missed or misrepresented anything. We will be moving forward with this plan immediately and we expect multiple PRs to accomplish this solution. Each PR leading up to the final one should reference this issue, but not close this issue. The final PR should auto-close this issue.
Thanks again for the dialog on this and we look forward to moving ahead in a healthy and productive manner! 😃🎉
@nvisionative Should we plan this from a UX perspective first? Maybe it's worth our time to do some bullet points and wireframes to make sure we both (1) keep the prominent ease-of-use aspect, and (2) make RC's both accessible and wildly obvious what they are and whether or not they should be opted in-to, used, etc. What do you think?
Add a setting that allows one to show/hide current release candidates so they can be tested.