Skip to content

Commit d10d427

Browse files
authored
Merge pull request #56 from IBM/issue-55-establish-versioning
Issue 55 establish versioning
2 parents c9b1400 + 76577bd commit d10d427

23 files changed

+110
-62
lines changed

.github/workflows/main.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@ jobs:
3636

3737
- name: Determine new tag
3838
id: newtag
39-
run: echo "::set-output name=tag::$(date +'%Y%m%dT%H%M%S')"
39+
run: |
40+
VERSION=$(java -jar build/libs/codeanalyzer.jar --version | awk '{print $2}')
41+
TAG="v$VERSION"
42+
echo "tag=$TAG" >> $GITHUB_OUTPUT
4043
4144
- name: Create Git Tag
4245
run: |

build.gradle

Lines changed: 54 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@ plugins {
1818
id 'org.graalvm.buildtools.native' version '0.9.28'
1919
}
2020

21-
version = 'latest'
21+
// Get the version from the property file first
22+
version = new Properties().with {property ->
23+
file("gradle.properties").withInputStream {property.load(it)}
24+
property.getProperty("version")
25+
}
2226

2327
repositories {
2428
mavenCentral()
@@ -30,7 +34,7 @@ if (project.hasProperty('mainClass')) {
3034
mainClassName = project.getProperty('mainClass')
3135
} else {
3236
// use a default
33-
mainClassName =("com.ibm.northstar.CodeAnalyzer")
37+
mainClassName =("com.ibm.cldk.CodeAnalyzer")
3438
}
3539

3640
sourceSets {
@@ -124,9 +128,9 @@ task fatJar(type: Jar) {
124128
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
125129
manifest {
126130
attributes(
127-
'Implementation-Title': 'Northstar Codeanalyzer',
131+
'Implementation-Title': 'codeanalyzer',
128132
'Implementation-Version': project.version,
129-
'Main-Class': 'com.ibm.northstar.CodeAnalyzer'
133+
'Main-Class': 'com.ibm.cldk.CodeAnalyzer'
130134
)
131135
}
132136

@@ -148,7 +152,7 @@ graalvmNative {
148152
binaries {
149153
main {
150154
imageName = "codeanalyzer"
151-
mainClass = "com.ibm.northstar.CodeAnalyzer"
155+
mainClass = "com.ibm.cldk.CodeAnalyzer"
152156
buildArgs.add("-Ob")
153157
buildArgs.add("-march=compatibility")
154158
buildArgs.add("--no-fallback")
@@ -185,7 +189,7 @@ task createRelease {
185189
doLast {
186190
def releaseTitle = 'latest'
187191
def hostName = 'git@github.ibm.com'
188-
def repo = 'northstar/codeanalyzer'
192+
def repo = 'cldk/codeanalyzer'
189193

190194
// Command to create release
191195
def delete = "gh release delete latest --cleanup-tag --yes -R ${hostName}:${repo}"//
@@ -207,4 +211,48 @@ task createRelease {
207211

208212
}
209213

214+
tasks.register('bumpVersion') {
215+
description = 'Bumps the version number (patch, minor, or major)'
216+
group = 'Versioning'
217+
218+
doLast {
219+
def versionFile = file('gradle.properties')
220+
def versionFileText = versionFile.text
221+
def versionPattern = /version\s*=\s*(\d+)\.(\d+)\.(\d+)/
222+
def matcher = (versionFileText =~ versionPattern)
223+
224+
if (matcher.find()) {
225+
def major = matcher.group(1) as int
226+
def minor = matcher.group(2) as int
227+
def patch = matcher.group(3) as int
228+
229+
def bumpType = project.hasProperty('bumpType') ? project.bumpType : 'patch'
230+
231+
switch (bumpType) {
232+
case 'major':
233+
major++
234+
minor = 0
235+
patch = 0
236+
break
237+
case 'minor':
238+
minor++
239+
patch = 0
240+
break
241+
case 'patch':
242+
default:
243+
patch++
244+
break
245+
}
246+
247+
def newVersion = "${major}.${minor}.${patch}"
248+
def updatedContent = versionFileText.replaceFirst(versionPattern, "version=$newVersion")
249+
versionFile.text = updatedContent
250+
251+
println "Version bumped to $newVersion"
252+
} else {
253+
throw new GradleException("Version not found in gradle.properties")
254+
}
255+
}
256+
}
257+
210258
nativeCompile.finalizedBy copyNativeExecutable

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
version=1.0.0

src/main/java/com/ibm/northstar/CodeAnalyzer.java renamed to src/main/java/com/ibm/cldk/CodeAnalyzer.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
limitations under the License.
1212
*/
1313

14-
package com.ibm.northstar;
14+
package com.ibm.cldk;
1515

1616
import com.github.javaparser.Problem;
1717
import com.google.common.reflect.TypeToken;
1818
import com.google.gson.*;
19-
import com.ibm.northstar.entities.JavaCompilationUnit;
20-
import com.ibm.northstar.utils.BuildProject;
21-
import com.ibm.northstar.utils.Log;
19+
import com.ibm.cldk.entities.JavaCompilationUnit;
20+
import com.ibm.cldk.utils.BuildProject;
21+
import com.ibm.cldk.utils.Log;
2222
import com.ibm.wala.ipa.callgraph.CallGraphBuilderCancelException;
2323
import com.ibm.wala.ipa.cha.ClassHierarchyException;
2424
import org.apache.commons.lang3.tuple.Pair;
@@ -38,10 +38,17 @@
3838
import java.util.Map;
3939
import java.util.stream.Collectors;
4040

41+
42+
class VersionProvider implements CommandLine.IVersionProvider {
43+
public String[] getVersion() throws Exception {
44+
String version = getClass().getPackage().getImplementationVersion();
45+
return new String[]{ "codeanalyzer " + (version != null ? version : "unknown") };
46+
}
47+
}
4148
/**
4249
* The type Code analyzer.
4350
*/
44-
@Command(name = "codeanalyzer", mixinStandardHelpOptions = true, sortOptions = false, version = "codeanalyzer v1.1", description = "Convert java binary into a comprehensive system dependency graph.")
51+
@Command(name = "codeanalyzer", mixinStandardHelpOptions = true, sortOptions = false, versionProvider = VersionProvider.class, description = "Analyze java application.")
4552
public class CodeAnalyzer implements Runnable {
4653

4754
@Option(names = {"-i", "--input"}, description = "Path to the project root directory.")
@@ -62,6 +69,7 @@ public class CodeAnalyzer implements Runnable {
6269
@Option(names = {"--no-build"}, description = "Do not build your application. Use this option if you have already built your application.")
6370
private static boolean noBuild = false;
6471

72+
6573
@Option(names = {"-a", "--analysis-level"}, description = "Level of analysis to perform. Options: 1 (for just symbol table) or 2 (for call graph). Default: 1")
6674
private static int analysisLevel = 1;
6775

@@ -70,7 +78,6 @@ public class CodeAnalyzer implements Runnable {
7078

7179
private static final String outputFileName = "analysis.json";
7280

73-
7481
public static Gson gson = new GsonBuilder()
7582
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
7683
.setPrettyPrinting()

src/main/java/com/ibm/northstar/SymbolTable.java renamed to src/main/java/com/ibm/cldk/SymbolTable.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.ibm.northstar;
1+
package com.ibm.cldk;
22

33
import com.github.javaparser.JavaParser;
44
import com.github.javaparser.ParseResult;
@@ -23,8 +23,8 @@
2323
import com.github.javaparser.utils.SourceRoot;
2424
import com.google.common.collect.Table;
2525
import com.google.common.collect.Tables;
26-
import com.ibm.northstar.entities.*;
27-
import com.ibm.northstar.utils.Log;
26+
import com.ibm.cldk.entities.*;
27+
import com.ibm.cldk.utils.Log;
2828
import org.apache.commons.lang3.tuple.Pair;
2929

3030
import java.io.IOException;
@@ -106,7 +106,7 @@ private static JavaCompilationUnit processCompilationUnit(CompilationUnit parseR
106106
.map(typeDecl -> {
107107
// get type name and initialize the type object
108108
String typeName = typeDecl.getFullyQualifiedName().get().toString();
109-
com.ibm.northstar.entities.Type typeNode = new com.ibm.northstar.entities.Type();
109+
com.ibm.cldk.entities.Type typeNode = new com.ibm.cldk.entities.Type();
110110

111111
if (typeDecl instanceof ClassOrInterfaceDeclaration) {
112112
ClassOrInterfaceDeclaration classDecl = (ClassOrInterfaceDeclaration)typeDecl;
@@ -156,7 +156,7 @@ private static JavaCompilationUnit processCompilationUnit(CompilationUnit parseR
156156
// TODO: handle AnnotationDeclaration, RecordDeclaration
157157
// set the common type attributes only
158158
Log.warn("Found unsupported type declaration: "+typeDecl.toString());
159-
typeNode = new com.ibm.northstar.entities.Type();
159+
typeNode = new com.ibm.cldk.entities.Type();
160160
}
161161

162162
/* set common attributes of types that available in type declarations:

src/main/java/com/ibm/northstar/SystemDependencyGraph.java renamed to src/main/java/com/ibm/cldk/SystemDependencyGraph.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@
1111
limitations under the License.
1212
*/
1313

14-
package com.ibm.northstar;
15-
16-
import com.ibm.northstar.entities.AbstractGraphEdge;
17-
import com.ibm.northstar.entities.CallEdge;
18-
import com.ibm.northstar.entities.Callable;
19-
import com.ibm.northstar.entities.SystemDepEdge;
20-
import com.ibm.northstar.utils.AnalysisUtils;
21-
import com.ibm.northstar.utils.Log;
22-
import com.ibm.northstar.utils.ScopeUtils;
14+
package com.ibm.cldk;
15+
16+
import com.ibm.cldk.entities.AbstractGraphEdge;
17+
import com.ibm.cldk.entities.CallEdge;
18+
import com.ibm.cldk.entities.Callable;
19+
import com.ibm.cldk.entities.SystemDepEdge;
20+
import com.ibm.cldk.utils.AnalysisUtils;
21+
import com.ibm.cldk.utils.Log;
22+
import com.ibm.cldk.utils.ScopeUtils;
2323
import com.ibm.wala.cast.ir.ssa.AstIRFactory;
2424
import com.ibm.wala.cast.java.translator.jdt.ecj.ECJClassLoaderFactory;
2525
import com.ibm.wala.classLoader.CallSiteReference;
@@ -52,8 +52,8 @@
5252
import java.util.function.BiFunction;
5353
import java.util.function.Supplier;
5454

55-
import static com.ibm.northstar.CodeAnalyzer.gson;
56-
import static com.ibm.northstar.utils.AnalysisUtils.*;
55+
import static com.ibm.cldk.CodeAnalyzer.gson;
56+
import static com.ibm.cldk.utils.AnalysisUtils.*;
5757

5858
/**
5959
* The type Sdg 2 json.

src/main/java/com/ibm/northstar/entities/AbstractGraphEdge.java renamed to src/main/java/com/ibm/cldk/entities/AbstractGraphEdge.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
limitations under the License.
1212
*/
1313

14-
package com.ibm.northstar.entities;
14+
package com.ibm.cldk.entities;
1515

1616
import com.ibm.wala.ipa.callgraph.CGNode;
1717
import com.ibm.wala.ipa.slicer.Statement;

src/main/java/com/ibm/northstar/entities/CallEdge.java renamed to src/main/java/com/ibm/cldk/entities/CallEdge.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
limitations under the License.
1212
*/
1313

14-
package com.ibm.northstar.entities;
14+
package com.ibm.cldk.entities;
1515

1616
import org.jgrapht.nio.Attribute;
1717
import org.jgrapht.nio.DefaultAttribute;

src/main/java/com/ibm/northstar/entities/CallSite.java renamed to src/main/java/com/ibm/cldk/entities/CallSite.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.ibm.northstar.entities;
1+
package com.ibm.cldk.entities;
22

33
import lombok.Data;
44

src/main/java/com/ibm/northstar/entities/Callable.java renamed to src/main/java/com/ibm/cldk/entities/Callable.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.ibm.northstar.entities;
1+
package com.ibm.cldk.entities;
22

33
import lombok.Data;
44

src/main/java/com/ibm/northstar/entities/EnumConstant.java renamed to src/main/java/com/ibm/cldk/entities/EnumConstant.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.ibm.northstar.entities;
1+
package com.ibm.cldk.entities;
22

33
import lombok.Data;
44

src/main/java/com/ibm/northstar/entities/Field.java renamed to src/main/java/com/ibm/cldk/entities/Field.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.ibm.northstar.entities;
1+
package com.ibm.cldk.entities;
22

33
import lombok.Data;
44
import java.util.List;

src/main/java/com/ibm/northstar/entities/JavaCompilationUnit.java renamed to src/main/java/com/ibm/cldk/entities/JavaCompilationUnit.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.ibm.northstar.entities;
1+
package com.ibm.cldk.entities;
22

33
import lombok.Data;
44
import java.util.List;

src/main/java/com/ibm/northstar/entities/ParameterInCallable.java renamed to src/main/java/com/ibm/cldk/entities/ParameterInCallable.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
1-
package com.ibm.northstar.entities;
1+
package com.ibm.cldk.entities;
22

33
import lombok.Data;
4-
import org.jgrapht.nio.Attribute;
5-
import org.jgrapht.nio.DefaultAttribute;
64

7-
import java.util.HashMap;
85
import java.util.List;
9-
import java.util.Map;
106

117
@Data
128
public class ParameterInCallable {

src/main/java/com/ibm/northstar/entities/SystemDepEdge.java renamed to src/main/java/com/ibm/cldk/entities/SystemDepEdge.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
limitations under the License.
1212
*/
1313

14-
package com.ibm.northstar.entities;
14+
package com.ibm.cldk.entities;
1515

1616
import com.ibm.wala.ipa.slicer.Statement;
1717
import org.apache.commons.lang3.builder.HashCodeBuilder;

src/main/java/com/ibm/northstar/entities/Type.java renamed to src/main/java/com/ibm/cldk/entities/Type.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.ibm.northstar.entities;
1+
package com.ibm.cldk.entities;
22

33
import lombok.Data;
44

src/main/java/com/ibm/northstar/entities/VariableDeclaration.java renamed to src/main/java/com/ibm/cldk/entities/VariableDeclaration.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
package com.ibm.northstar.entities;
1+
package com.ibm.cldk.entities;
22

33
import lombok.Data;
44

5-
import java.util.List;
6-
75
@Data
86
public class VariableDeclaration {
97
private String name;

src/main/java/com/ibm/northstar/utils/AnalysisUtils.java renamed to src/main/java/com/ibm/cldk/utils/AnalysisUtils.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
limitations under the License.
1212
*/
1313

14-
package com.ibm.northstar.utils;
14+
package com.ibm.cldk.utils;
1515

16-
import static com.ibm.northstar.SymbolTable.declaredMethodsAndConstructors;
16+
import static com.ibm.cldk.SymbolTable.declaredMethodsAndConstructors;
1717

18-
import com.ibm.northstar.entities.Callable;
19-
import com.ibm.northstar.entities.ParameterInCallable;
18+
import com.ibm.cldk.entities.Callable;
19+
import com.ibm.cldk.entities.ParameterInCallable;
2020
import com.ibm.wala.classLoader.IClass;
2121
import com.ibm.wala.classLoader.IMethod;
2222
import com.ibm.wala.ipa.callgraph.Entrypoint;

src/main/java/com/ibm/northstar/utils/BuildProject.java renamed to src/main/java/com/ibm/cldk/utils/BuildProject.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.ibm.northstar.utils;
1+
package com.ibm.cldk.utils;
22

33
import java.io.BufferedReader;
44
import java.io.File;
@@ -10,7 +10,7 @@
1010
import java.util.Arrays;
1111
import java.util.List;
1212

13-
import static com.ibm.northstar.utils.ProjectDirectoryScanner.classFilesStream;
13+
import static com.ibm.cldk.utils.ProjectDirectoryScanner.classFilesStream;
1414

1515
public class BuildProject {
1616

src/main/java/com/ibm/northstar/utils/Log.java renamed to src/main/java/com/ibm/cldk/utils/Log.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
limitations under the License.
1212
*/
1313

14-
package com.ibm.northstar.utils;
14+
package com.ibm.cldk.utils;
1515

1616
import java.time.LocalDateTime;
1717

src/main/java/com/ibm/northstar/utils/ProjectDirectoryScanner.java renamed to src/main/java/com/ibm/cldk/utils/ProjectDirectoryScanner.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.ibm.northstar.utils;
1+
package com.ibm.cldk.utils;
22

33
import java.io.IOException;
44
import java.nio.file.Files;

0 commit comments

Comments
 (0)