vrchat-community / template-package

WIP Package Template Repository
https://vrchat-community.github.io/template-package/
54 stars 17 forks source link

Build Listing GitHub Action fails on 'Build Package Version Listing' step with 'NullReferenceException' #9

Closed dustuu closed 1 year ago

dustuu commented 1 year ago

I'm having an issue with the build-listing.yml GitHub Action from the VPM Package Template repo (https://github.com/vrchat-community/template-package/blob/main/.github/workflows/build-listing.yml)

Whenever it runs, it throws a NullReferenceException on the Build Package Version Listing step, which uses Nuke.

I've tried recreating packages from the provided template a few times, and reached this same result every time. So, I've created a minimal reproducible repo here: https://github.com/dustuu/NukeException

You can see the job failing here: https://github.com/dustuu/NukeException/actions/runs/5184710843/jobs/9343872908#step:5:46

The only changes I have made from the template repo are following the steps outlined in the provided readme file to import and convert an existing package. For the purposes of this example, I have used only a single empty U# script as my target.

Thanks in advance for any guidance you can provide.

dustuu commented 1 year ago

Just in case the job logs aren't visible to external users, here is a screenshot as well: image

Faxmashine commented 1 year ago

Your package.json includes the following line: https://github.com/dustuu/NukeException/blob/323abbd5b66e64fabbc670bc346ffd2781f65eaf/Packages/com.dustuu.nuke-exception/package.json#L12

"localPath": "C:\\Users\\conno\\Source\\Repos\\dustuu\\NukeException\\Packages\\com.dustuu.nuke-exception",

You may not want to include a local path in your packages. Can you remove it and see what happens? If that doesn't help, I'd be happy to help reproduce the issue.

For reference, here's a simple example listing that runs successfully: https://github.com/Faxmashine/MyAmazingPackage/tree/main

dustuu commented 1 year ago

@Faxmashine Thanks for the quick response!

I actually previously removed the localPath property from my package.json while trying to fix this issue, but saw it had no effect. So, I kept it in this version in an attempt to create a minimal repo with as few changes from the default state as possible (since the VPM Package Maker tool actually includes this localPath property by default when generating package.json files).

But just to be sure, I removed it again here which unfortunately still failed.

However, I took a look at the package.json you provided and made a second commit here to try and match my package.json as closely as possible to your structure.

This one actually worked! I was able to isolate the important change here: it turns out that the author property is actually required in the package.json file, and not including it causes this error.

However, the VPM Package Maker tool currently does not include this required author property in generated package.json files. Here’s an example of a freshly generated package.json file:

{
  "name": "com.dustuu.test-package-maker-tool",
  "displayName": "com.dustuu.test-package-maker-tool",
  "version": "0.0.1",
  "description": "Describe this Package",
  "dependencies": {},
  "gitDependencies": {},
  "vpmDependencies": {
    "com.vrchat.udonsharp": "1.1.8"
  },
  "legacyFolders": {},
  "legacyFiles": {},
  "localPath": "C:\\Users\\conno\\Source\\Repos\\dustuu\\NukeException\\Packages\\com.dustuu.test-package-maker-tool"
}

The tool currently does not include the author property, but does include the localPath property, which may be unnecessary. If my understanding is correct, this means all packages currently created with the VPM Package Maker tool will fail when used with this GitHub Action. The author property currently must be added manually to avoid this.

I would be happy to make a pull request on the VPM Package Maker repo that fixes these issues, but it appears that this repo was archived last year. Is it alright to open a pull request on this archived repo, or is there a better place?

Thanks again for your help!

Faxmashine commented 1 year ago

Thank you @dustuu for further investigating the issue! We'll look into the issue ourselves and see if we can fix the package maker.

dustuu commented 1 year ago

This issue has been fixed now that the package maker includes author configuration fields.