Looking to retry a PR, need advice

(TJ Tyrrell) #1

Hello everyone. 2017 was my first attempt at a formula as well as my first go at Ruby stuff. You can see my PR here: https://github.com/Homebrew/homebrew-core/pull/17795

It was rejected for having “numerous issues” but then ilovezfs stepped in to provide some guidance (though I am still uncertain what the numerous issues were). Ultimately we decided to make this a third party library and so far that has worked out. Now though, looking at the list of installs, my formula was installed ~100 times in the last year. That’s not a ton, but it’s a decent amount for how specialized the product is.

The advice I am looking for is whether or not I should attempt a re-PR to integrate it into brew instead of being a third party formula. This is an Oracle product (so it’s not just some no-name micro-app), and because of how tedious the installation process is, I created a brew formula and chocolatey package to help the community.

The main issue initially was the software jar files were only available through a password protected link. It appears that the password has since been removed, but part of the installation process is to unpack a jar file to use 2 other jar files inside (as I said, tedious). The easiest solution for me was to do this in advance and host the jar files in my repo to be downloaded.

So with that:

  1. Is this a valid product to re-attempt a PR?
  2. Can a formula execute cli commands like:
    jar xf my.jar
    and move those files to the right folder location and delete the non-relevant files?
  3. Or am I allowed to host the jar files like I’ve been doing
  4. What else is wrong with my formula that would be an issue keeping it from being approved

Also note, one of the issues was the license. They (Oracle) just copy pasted from another related product… So the comment (https://github.com/Homebrew/homebrew-core/pull/17795#issuecomment-327981418) about the license is actually for a different product. I’ve received direct blessing from the Oracle team in charge of this software, and can get a formal letter from them if needed to validate my work.

Thank you in advance for your help.

(Claudia) #2
  1. @tjtyrrell Do you have a link to a current version of the source, preferably hosted on the vendor’s site? (I don’t mind whether it’s a jar, or a zip inside a rar, the important thing is that it’s the source.)

  2. I understand that Oracle may have made a copy-paste mistake when specifying the license But how does that make the license less valid unless Oracle publishes a correction?
    Per Homebrew’s guidelines for acceptable formulae, for a formula to be accepted into homebrew-core, the software needs to be under an OSI-approved license or a license that is compatible to an OSI-approved license.

(TJ Tyrrell) #3


Thank you for responding!

Here are the links to the files:

  1. https://system.netsuite.com/download/ide/update_18_2/plugins/com.netsuite.ide.core_2018.2.1.jar
  2. redacted because of some silly forum limitation… See following comment
  3. redacted because of some silly forum limitation… See following comment

Link (1) is the main download.
Link (2) needs to be unpacked. There are two files in there that need to be used: axis.jar and NetSuiteWebService.jar. The rest are irrelevant
Link (3) is a supplemental package that needs to be modified to work with brew (as in, they need to have the paths updated to reflect the app location

The package requires Apache Maven 3.6 (and Java 8, not 9)

Regarding the license… I only mean to say they used several apps and combined all of their licenses together. The particular license in question on the PR was in relation to a different product (what they call the SuiteCloud IDE, which is different than this SDF SDK).

You can see my formula here: https://github.com/limebox/homebrew-netsuite

Thank you for your help.

(TJ Tyrrell) #4

2 https://system.netsuite.com/download/ide/update_18_2/plugins/com.netsuite.ide.eclipse.ws_2018.2.1.jar

3 https://system.netsuite.com/core/media/media.nl?id=108449943&c=NLCORP&h=d8f205f432454debf21d&_xt=.gz

(Claudia) #5

@tjtyrrell Sorry but as stated above, an OSI-approved or -compatible license is a strict requirement for even considering an addition to homebrew-core.

There may be further impediments, for example those that ilovezfs has mentioned in the 2017 GitHub thread. If you ask me, the formula as it stands still has close to zero chances to be accepted into homebrew-core.

You may consider submitting a PR to Homebrew Cask. Keep in mind though that even though Cask allows proprietary licenses, we still have other requirements in place, such as notability. Given the statistics of only 75 installs per year, I feel the easiest way for everyone may be for you to keep the formula in your private tap.

(TJ Tyrrell) #6

So I do want to ask for some clarification. When you say the formula has close to zero chances to be accepted…

And this is mostly for my personal understanding, let’s say the license is OSI-approved (we’re pretending here). Is there anything wrong with the formula itself? From a technical perspective, am I doing something wrong there? ilovezfs didn’t mention any issues, he just helped me setup my private tap. JCount just told me there were “numerous issues” without actually listing any. That is the thing I am trying to figure out… What numerous issues (outside of the license) are there? This is my first attempt at this type of stuff so I am just trying to get a good understanding of everything.

Or is it almost strictly because of the license and notability? Where I can get it into core or cask if:

  1. if I can get more people to install it (and what is considered notable? There are many homebrew-core formulae with fewer installs than mine, which is skewed because of the name change, I have a total of 115 between the two names as of that screenshot… As a software product, Oracle holds an annual conference where an entire portion of the conference is dedicated to this software)
  2. See if I can have the Oracle team who built the system make the appropriate changes to the license.

Please understand, I am just trying to get the right details, both technically and otherwise, so I can do what I need to do now or in the future to eventually get the formula accepted into core or cask.

(Claudia) #7

@tjtyrrell Off the top of my head, in no particular order:

  • Every single formula on homebrew-core, on average, imposes a certain amount of work on maintainers over its lifetime. This includes but is not limited to: random CI breakage, incompatibility with core code changes, support requests from users, reviewing PRs, fixing build errors, merging PRs and so on. That’s why we need to prioritize our work, and that’s why third-party taps exist.

  • One important metric for homebrew-core is notability. The formula must be useful enough for the masses to warrant all the work Homebrew maintainers are going to have with it during its lifetime. (That lifetime may be well above five years.) A formula with 115 installs per year may or may not qualify but it’s definitely up for debate. The same goes for Cask. It’s decided on an individual basis but I personally would find it justified to have 115 users use a tap if that frees maintainers from the burden of maintenance for five or ten years. Would you not?

  • We’ve had several cases where contributors would repeatedly try to get a specific formula into homebrew-core without any obvious good cause. More often than not, such PRs would end in disappointment and frustration on the contributor’s end. I’m not implying that this is the case here; it’s been two years since your last attempt. There’s nothing wrong with retrying after such a long time. Resubmitting a PR that was already refused in the past certainly won’t raise (or lower) the bar for the formula’s admission. However, resubmitting a PR will likely cause us to look more closely at that formula simply because we’re human and we’ve made our share of bad experiences.

  • Even if you’d provide to us an OSI-compatible license that’s separately from the three source packages, we’d need to verify that the license is genuine and that the license actually applies to all three source packages. That would involve a fair share of work for us, given that two of the source packages already contain a license that states the opposite. That all counts against the formula.

  • None of the packages you’ve provided contain any source code. All three contain (or link to) binaries, albeit cross-platform ones. According to Acceptable Formulae, we prefer formulae that can be built from source as far as homebrew-core is concerned. (This restriction is not relevant for Cask.)

  • Does the original vendor have a website where we can see what the latest version number is?

  • Trying to “get more people to install it,” as your comment suggests, just for the sake of circumventing our notability barrier, is frowned upon. We’ve put the barrier in place to protect us and in order to provide the best service we can. Any PR where there’s evidence that someone recruited users that have no actual interest just for the sake of meeting notability requirements is considered trickery. Such PRs will be rejected immediately. The formula may also end up on our permanent blocklist for homebrew-core.

  • Regarding the “There are many homebrew-core formulae with fewer installs than mine” bit: we have so many formulae now that a new formula is currently held against higher standards than existing ones.

  • I fail to see why users shouldn’t be able to continue using your tap. It would certainly help if you elaborated a bit on why you feel the SDF CLI should be on Homebrew.

  • There may be more impediments I fail to see right now, and that may surface only on closer review.

Feel free to submit a PR on either homebrew-core or homebrew-cask but there are no guarantees that any of us can personally make up front. If you can provide the actual source code and a OSI-compatible license, you’ll have a better chance on homebrew-core. Otherwise I figure it’s better suited to homebrew-cask.

(TJ Tyrrell) #8

Thank you @claui,

tl;dr Please see last bullet item. The rest can be read at your leisure or never at all.

That is more of what I was looking for. The users of this software are often risk averse, so having the installation package as “formal” as possible is always helpful to give them comfort. Since Homebrew is a respected package manager, having the sdfcli tool directly associated would mostly just offer some solace to the risk averse (the individuals using this tool are in finance).

To your points (in order of the points to make):

  • I understand and acknowledge this point. I am not looking to make life more difficult for anyone. Just trying to find the best course of action now and in the future.
  • Certainly not intending to argue against this point (as in, it is very valid). The amount of formula to have to manage for the brew team is already a lot, yes. It’s just more me hoping to have enough usage to eventually warrant a more official avenue for the risk averse financial dev community is all.
  • This is where I am not trying to create a bunch of PRs at the moment (as you observed). Just trying to get all of the information ahead of time so that when I am ready to try again, I have a better case… Whether it’s a Cask or Core.
  • All of the source packages are from the same team who just slapped the first license they could find. So I completely acknowledge this as an uphill battle for me. It would involve me working with the Oracle team to make these changes. Fortunately I personally know everyone up to the SVP on the Oracle-NetSuite platform team and can probably accomplish this in time (as I mentioned before, they’ve personally thanked me for doing what I’ve done so far). This would mean me getting them to use compliant or approved licenses matching the one I submit. Right now it is all a hodgepodge mess they’ve created.
  • This is the biggest battle, and why I wanted to create a formula in the first place. Not sure why they’ve made the process so convoluted, but they have. If this alone is enough to forever keep this out of core, that’s ok. Cask is a perfectly acceptable alternative if I can fix the other issues we’ve been discussing.
  • Unfortunately, while they do have version notes, it’s never public. In this instance I’ve downloaded the release notes if you care to check (Oracle NetSuite Release Notes 19.1). This app is noted in the index item on Page 4 - “SDF SDK 2019.1 is Not Yet Available for Download”. That section also says that it’s slated for release in the middle of this month. The current release notes become public after they are released (i.e. NetSuite Release 2018.2)
  • Regarding getting people to download it, I don’t mean forcing the issue or hiring a foreign server farm to do a bunch of downloads. I just mean making more people in the community aware of my tap is all. Most people in this industry have PCs, so I have 804 downloads on Chocolatey already. I’m environment agnostic and regularly work on both platforms… So I want an option for both.
  • I understand this point, just trying to understand the definition of “notability”. It’s such an abstract term for someone like me who likes hard fast numbers :slight_smile:
  • As mentioned in my initial statement above, it’s just that this group of devs is so risk averse. I have a few people who won’t even use my Sublime Plugin because it’s not formally licensed by Oracle… That’s not everyone, I have 233 installs already for my plugin. And a few other members of the community have created other plugins that rely on my brew / chocolatey packages who’ve garnered over 1,400 installs (where most of my Chocolatey installs have come from).
  • I understand… this has been a very helpful exercise for me as I try to figure out where to go from here. Thank you so much for your time, I greatly appreciate your help. Keep up the good work.

I will wait to submit another PR until I feel more confident on getting it accepted. I will try to work through your concerns in time.

(Claudia) #9

Thank you for elaborating. Now I feel I understand the situation a little better.

Let me know if you need any further info.