Skip to content

Commit 5668568

Browse files
committed
Update PublishingTools system to ensure it copies the Changelog into the package
1 parent c0120cc commit 5668568

File tree

5 files changed

+52
-20
lines changed

5 files changed

+52
-20
lines changed

Assets/Ink/CHANGELOG.md.meta

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Ink/LICENCE.md.meta

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Ink/README.md.meta

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Publishing/Editor/Tools/PublishingTools.cs

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Text;
77
using System.Text.RegularExpressions;
88
using Ink.UnityIntegration;
9+
using UnityEditor.Compilation;
910
using UnityEngine.Networking;
1011

1112
// Should be run to update files in the package folder from the root of the repo, and to create demo and release packages.
@@ -103,40 +104,49 @@ public static void CreatePackage () {
103104
// AssetDatabase.DisallowAutoRefresh();
104105
// #endif
105106
var assetsInkPath = Path.Combine(Application.dataPath, "Ink");
106-
List<KeyValuePair<DirectoryInfo, DirectoryInfo>> rootPaths = new List<KeyValuePair<DirectoryInfo, DirectoryInfo>>();
107-
// Copy the plugin into assets, make a package
107+
var copiedFiles = new List<(string packagesFile, string assetsFile)>();
108+
var copiedDirectories = new List<(DirectoryInfo packagesDirectory, DirectoryInfo assetsDirectory)>();
109+
110+
// Work out which files need to be copied into Assets for the Package
111+
var files = Directory.GetFiles(IntegrationPath);
112+
foreach (var filePath in files) {
113+
var fileExtension = Path.GetExtension(filePath);
114+
if(fileExtension == ".meta" || fileExtension == ".DS_Store") continue;
115+
var fileName = Path.GetFileName(filePath);
116+
if(fileName == "package.json") continue;
117+
copiedFiles.Add((filePath, Path.Combine(assetsInkPath, fileName)));
118+
}
119+
108120
var integrationDirs = Directory.GetDirectories(IntegrationPath);
109121
foreach(var dir in integrationDirs) {
110122
var dirName = Path.GetFileName(dir);
111123
if(dirName == "Demos") continue;
112-
rootPaths.Add(new KeyValuePair<DirectoryInfo, DirectoryInfo>(new DirectoryInfo(dir), new DirectoryInfo(Path.Combine(assetsInkPath, dirName))));
124+
copiedDirectories.Add((new DirectoryInfo(dir), new DirectoryInfo(Path.Combine(assetsInkPath, dirName))));
113125
}
114126

115127
// Move files from Packages into Assets
116-
foreach(var rootPath in rootPaths) {
117-
MoveFilesRecursively(rootPath.Key, rootPath.Value);
118-
}
119-
// TODO - when we switch to 2019.4, get this working!
120-
// This refresh causes errors until you alt-tab and back because it forces a script recompile but the files are moved back before it's done.
121-
// To fix it, we can block recompilation (I dont think you can do this, or even if it'd work) or need to wait until compilation is done before copying the files back.
128+
foreach(var rootPath in copiedFiles)
129+
new FileInfo(rootPath.packagesFile).MoveTo(rootPath.assetsFile);
130+
foreach(var rootPath in copiedDirectories)
131+
MoveFilesRecursively(rootPath.packagesDirectory, rootPath.assetsDirectory);
132+
133+
// I believe this creates meta files but I can't recall!
122134
AssetDatabase.Refresh();
123-
// We can use this callback to achieve this.
124-
// CompilationPipeline.compilationFinished += (object sender) => {
125-
// CompilationPipeline.RequestScriptCompilation();
126-
// }
127135

128136
// Create a .unitypackage
129137
var version = InkLibrary.unityIntegrationVersionCurrent;
130138
var packageExportPath = string.Format("../Ink Unity Integration {0}.{1}.{2}.unitypackage", version.Major, version.Minor, version.Build);
131139
AssetDatabase.ExportPackage("Assets/Ink", packageExportPath, ExportPackageOptions.Recurse);
132140

133141
// Move files back to Packages
134-
foreach(var rootPath in rootPaths) {
135-
MoveFilesRecursively(rootPath.Value, rootPath.Key);
136-
}
142+
foreach (var rootPath in copiedFiles)
143+
new FileInfo(rootPath.assetsFile).MoveTo(rootPath.packagesFile);
144+
foreach(var rootPath in copiedDirectories)
145+
MoveFilesRecursively(rootPath.assetsDirectory, rootPath.packagesDirectory);
137146

138147
EditorApplication.UnlockReloadAssemblies();
139-
148+
AssetDatabase.Refresh();
149+
CompilationPipeline.RequestScriptCompilation();
140150
Debug.Log("PublishingTools.CreatePackage: Created .unitypackage at "+Path.GetFullPath(Path.Combine(Application.dataPath, packageExportPath)));
141151
}
142152

@@ -158,8 +168,9 @@ void OnGUI () {
158168
EditorGUILayout.BeginVertical();
159169
EditorGUILayout.LabelField("Version "+InkLibrary.unityIntegrationVersionCurrent, EditorStyles.centeredGreyMiniLabel);
160170

161-
// Editor
162-
//
171+
if (GUILayout.Button("Unlock")) {
172+
EditorApplication.UnlockReloadAssemblies();
173+
}
163174
if (GUILayout.Button("Prepare for publishing (run all tasks)")) {
164175
PreparePublish();
165176
}

Packages/Ink/Editor/Core/InkEditorUtils.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ public static string FindAbsolutePluginDirectory() {
363363
if (guids.Length > 0) {
364364
var assetPathOfInkLibsFolder = AssetDatabase.GUIDToAssetPath(guids[0]);
365365
var rootPluginFolder = assetPathOfInkLibsFolder.Substring(0, assetPathOfInkLibsFolder.Length - "/InkLibs".Length);
366-
return Path.GetFullPath(Path.Combine(Application.dataPath, rootPluginFolder));
366+
return Path.GetFullPath(Path.Combine(Application.dataPath, "..", rootPluginFolder));
367367
}
368368
}
369369
return null; // If no folder is found

0 commit comments

Comments
 (0)