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

Enhance the nuspec - first wave #205

Closed
ferventcoder opened this issue Mar 25, 2015 · 14 comments
Closed

Enhance the nuspec - first wave #205

ferventcoder opened this issue Mar 25, 2015 · 14 comments

Comments

@ferventcoder
Copy link
Member

Allow the following extra metadata into the nuspec:

  • projectSourceUrl
  • packageSourceUrl
  • docsUrl
  • mailingListUrl
  • bugTrackerUrl
  • replaces
  • provides
  • conflicts

This is chocolatey-archive/chocolatey#172 and is related to https://github.com/chocolatey/chocolatey.org/issues/101

@ferventcoder ferventcoder added this to the 1.x milestone May 11, 2015
@ferventcoder ferventcoder modified the milestones: 1.x, 0.9.9.7 Jun 12, 2015
@ferventcoder ferventcoder changed the title Add replaces to nuspec Add replaces, provides and conflicts to nuspec Jun 12, 2015
@ferventcoder ferventcoder changed the title Add replaces, provides and conflicts to nuspec Enhance the nuspec - first wave Jun 12, 2015
@ferventcoder
Copy link
Member Author

The second wave is #325.

ferventcoder referenced this issue in chocolatey/nuget-chocolatey Jun 12, 2015
Extend Nuspec metadata to include:

- Project source url
- Package source url
- Docs url
- Wiki Url
- Mailing List Url
- Bug Tracker Url

Adding the following elements, reserving for future use with respect to
package relationships.
- Replaces
- Provides
- Conflicts
@ferventcoder ferventcoder self-assigned this Jun 12, 2015
ferventcoder added a commit that referenced this issue Jun 12, 2015
Vendoring NuGet.Core allows us to take advantage of our own fixes to
the provider. There are things that have been wanted for awhile that
don't have a workaround to change the setting.

- GH-290 - packages no longer have a restriction on content folders
that produces the "External packages cannot depend on packages that
target projects". I'd like to call it a bug, and for Chocolatey it
certainly is.
- GH-194 - Fix minimum NuGet client version reports Chocolatey version
instead of NuGet's version, which is fine for packages on Chocolatey,
but the ones on NuGet usually have this filled in, which makes them
impossible to install with choco.
- GH-205 - Enhance the nuspec - first wave. Add the most oftenly
requested url for the nuspec, the packageSourceUrl and several other
urls plus add in replaces, provides and conflicts as placeholders for
now.
ferventcoder added a commit that referenced this issue Jun 12, 2015
Add the following fields to the nuspec that is generated:

-packageSourceUrl
-projectSourceUrl
-docsUrl
-wikiUrl
-mailingListUrl
- bugTrackerUrl
ferventcoder added a commit that referenced this issue Jun 12, 2015
* stable:
  (GH-205) Enhance the nuspec template
  (GH-205)(GH-194)(GH-290) Vendor NuGet.Core
ferventcoder added a commit that referenced this issue Jun 13, 2015
It's really the same thing as documentation link, so there is no reason
to carry an extra unnecessary field in the nuspec.
ferventcoder added a commit that referenced this issue Jun 13, 2015
* stable:
  (GH-205) remove the wiki url
ferventcoder added a commit to ferventcoder/choco that referenced this issue Jun 16, 2015
In the directives surrounding the nuspec template, give the user better
hints about how to set things up.
ferventcoder added a commit that referenced this issue Jun 16, 2015
* stable:
  (GH-331) Transformation Specs
  (GH-331) replace config w/backup if XDT
  (GH-331) Use XDT transforms on configs
  (maint) comment grammar
  (spec) add ExpectedExceptionAttribute override
  (GH-331) update config/transform for v1.1.0
  (GH-331) add transform and config to upgrade pkg
  (GH-205) Enhance nuspec template instructions

Conflicts:
	src/chocolatey/chocolatey.csproj
@dtgm
Copy link
Contributor

dtgm commented Jun 23, 2015

:) ... I see what you did there.

@dtgm
Copy link
Contributor

dtgm commented Jun 24, 2015

forumUrl ?

@ferventcoder
Copy link
Member Author

mailinglisturl would be sufficient to use the same as you need for forumUrl?

@pyhedgehog
Copy link

Shouldn't MailingListUrl contains something like "mailto:software-list@example.com?subject=subscribe"?
If yes, then ForumUrl should be something different (for example "http://www.example.com/mail-archive/software-list/").

@RichiCoder1
Copy link
Member

I assumed that mailingListUrl would point to a web page for accessing archives and subscribing.

@pyhedgehog
Copy link

Then we need something like MailingListSubscribeUrl and MailingListUnsubscribeUrl?
From my point of view this is overkill - at least I'm almost always click on "Software Site" and search for wiki/source/issues/discussions urls there. Site will be updated sooner that package will be released.

@ferventcoder
Copy link
Member Author

@pyhedgehog you are leaning towards what would be overkill, yep. The idea behind mailingListUrl if folks wanted to use it is what @RichiCoder1 mentioned.

@dtgm
Copy link
Contributor

dtgm commented Jun 25, 2015

mailinglisturl would be sufficient to use the same as you need for forumUrl?

@ferventcoder in spirit I agree in practice, let's see...

$ ls */*.nuspec | wc -l
796
$ grep -i "\[Mail" */*.nuspec | wc -l
27
$ grep -i "\[Forum" */*.nuspec | wc -l
131
$ for i in $(grep -i "\[forum" */*.nuspec -l); do grep -i "\[Mail" $i; done | wc -l
17

Just mulling over it, mailingListUrl and forumUrl are two different methods of the same overarching theme; engagment of the community with each other. It's just the mechanism of which that happens uses different technology; email and BBS in this case.

From my inventory, "forum" is more popular in practice. And drawing on history, probably more familiar with users because the idea already permeated the world with the Roman empire. A forum is just a public place to gather and engage. Mailing list to me has a more specific purpose.

Also, just fyi, there's IRC to round out the old-school technologies...

$ grep -i "\[IRC" */*.nuspec | wc -l
12

... but would probably better be labeled as chatUrl to keep up with newer services like Gitter.im would fall under.

So by just my packages, only 17 would be affected by only having one discussionUrl. But my vote would be forumUrl for user familiarity and it is more congruent by actual conditions.

Also, I will chime in my reason for including more metadata in my packages. Chocolatey lets you automate installs, but also removes needing to hunt and peck for clicky things. I figure, why not extend this to the websites themselves by just grabbing some of the links while I'm scraping? There are more uses than just having a convenient hyperlink when you need it. By being a full-fledged package manager with standardized XML data, you could imagine doing a search for all packages you have installed with chatUrl so you can quickly get a list to add to your multi-protocol chat client. Of course the URLs can change and need to be updated, but I don't think that's too common. Also, it lets you count what technology software developers are using so you can make the right decision when it comes to choosing if mailingListUrl is the right choice ;)

Eventually the metadata becomes overwhelming and that becomes a presentation thing or the metadata becomes sentient and grows into actionable events like @pyhedgehog noted.

@dtgm
Copy link
Contributor

dtgm commented Jun 26, 2015

I should also mention that I didn't start collecting this metadata into the nuspec from the beginning. I must have been at least through several hundred packages before I realized what I was doing and it may be useful to grab. It dawned on me when I found I was having difficulty more often than I liked finding a program's forum. So 131 only indicates the minimum amount of packages with forums.

Here's what I've been grabbing:

#### Documentation
* [Features]() -- because <description> is limited to 4000 characters ;) also description should be more about how it installs but I haven't had time for that as so many packages on chocolatey were laying stagnant I thought it better to fix those up first (also made me realize why it is important to collect this stuff; at some point I intend on coming back to get information from these places to make the package more flexible, I want to make it as easy as I can for myself)
* [Screenshots]() -- meh, but so many programs designate a section for them
* [FAQ]() -- required; no one RTFM... this is the one additional chocolatey tag absolutely needed, faqUrl
* [Wiki]() -- sometimes different site entirely, or a project is mirrored on gh from sf, wiki on gh is nice, sf is like wikawhaaat?
* [Manual]() -- ✔

#### Community
* [Forum]() -- previous post
* [Mailing list]() -- ✔
* [Facebook]() -- meh, kids
* [Google+]() -- meh, kids
* [Twitter]() -- meh, kids

When software is client for a web service
#### [Privacy Policy]()

The next are all very related, and sometimes predictable, but also sometimes not. I try not to spend too much time, but sometimes a changelog isn't in the repo for whatever reason, or is formatted poorly and the web version gets rendered more readable.

<releaseNotes>
#### Program
* [News]() -- web RSS, aka blog ... not always release notes
* [RSS feed]() -- I really want there to be rssUrl, but I don't think that is a popular opinion... :(
* [Release log]() -- list of version/date, useful for processing later (for me)
* [Roadmap]() -- do you have a plan? no plan, no future.
* [Changelog]() -- ✔
* [Known issues]() -- ✔
* [Source code]() -- ✔

I try to not be overwhelming, but different people can see different uses for stuff. And I'm not sure why people dislike too many tags in XML. Just because it is in the chocospec doesn't mean it has to be rendered by your package manager, or in most cases, the web gallery.

@RichiCoder1
Copy link
Member

I can imagine not surfacing most of these to end users of ChocoGUI except for as an advanced option.
Both docsUrl aka FAQ/Wiki and mailingListUrl aka Community URL seem obvious additions to display, though. I could only see supporting more specific social and community likes through the description.

@alexchandel
Copy link

@ferventcoder Should projectSourceUrl point to a website hosting the source (e.g. a GitHub page) or the actual .tar.xz containing the source?

@ferventcoder
Copy link
Member Author

Website hopefully, but if that is not available, a secondary tar for download is possibly okay.

@ferventcoder
Copy link
Member Author

The original intent is a url to a website.

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

No branches or pull requests

6 participants