Skip to content

Commit bbe06ee

Browse files
authored
Merge pull request #6 from codesqueak/v400
Prep for 4.0.0 release
2 parents 9b9f8cd + 371f607 commit bbe06ee

File tree

4 files changed

+64
-54
lines changed

4 files changed

+64
-54
lines changed

README.md

+10-7
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,12 @@
66

77
Z80Processor is a an implementation of the Mostek / Zilog Z80 processor in Java
88

9-
The code is not designed to be nice / clean / compact - however it is designed to be fast. It has been heavily profiled
10-
using [Yourkit](https://www.yourkit.com/) while running 'real' applications to identify hotspots.
9+
The code is not designed to be nice / clean / compact - however it is designed to be fast and easily checkable with every instruction
10+
on its own switch / case statement.
11+
12+
If you are looking for a compact implementation, have a look at the Go implementation [here](https://github.com/codesqueak/z80)
13+
14+
It code has been heavily profiled using [Yourkit](https://www.yourkit.com/) while running 'real' applications to identify hotspots.
1115

1216
If you find this project useful, you may want to [__Buy me a Coffee!__ :coffee:](https://www.buymeacoffee.com/codesqueak) Thanks :thumbsup:
1317

@@ -23,10 +27,9 @@ Linux
2327

2428
The build may take a few minutes as it includes a comprehensive test suite for the Z80 instruction set.
2529

30+
## Java Version
2631

27-
## Using Jenkins
28-
29-
The project includes a Jenkins file to control a pipeline build. At present the available version of the Jacoco plugin (2.0.1 at time of writing) does not support a 'publisher'. The build was tested using a hand built plugin from the master branch of the [project](https://github.com/jenkinsci/jacoco-plugin)
32+
Version 4.0.0 onwards of the emulator require Java 17 or above
3033

3134
### Include Using Maven
3235

@@ -35,15 +38,15 @@ The project includes a Jenkins file to control a pipeline build. At present the
3538
<dependency>
3639
<groupId>com.codingrodent.microprocessor</groupId>
3740
<artifactId>Z80Processor</artifactId>
38-
<version>3.2.0</version>
41+
<version>4.0.0</version>
3942
</dependency>
4043
```
4144

4245
### Include Using Gradle
4346

4447
```
4548
// https://mvnrepository.com/artifact/com.codingrodent.microprocessor/Z80Processor
46-
compile group: 'com.codingrodent.microprocessor', name: 'Z80Processor', version: '3.2.0'
49+
compile group: 'com.codingrodent.microprocessor', name: 'Z80Processor', version: '4.0.0'
4750
```
4851

4952
## Undocumented instruction

build.gradle

+36-43
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ plugins {
1818
id 'idea'
1919
id 'maven-publish'
2020
id 'jacoco'
21+
id 'signing'
2122
}
2223

2324

@@ -27,6 +28,8 @@ apply plugin: 'com.jfrog.artifactory'
2728
java {
2829
sourceCompatibility = JavaVersion.VERSION_17
2930
targetCompatibility = JavaVersion.VERSION_17
31+
withJavadocJar()
32+
withSourcesJar()
3033
}
3134

3235
group = 'com.codingrodent.microprocessor'
@@ -50,55 +53,12 @@ jar {
5053
}
5154

5255

53-
task sourcesJar(type: Jar, dependsOn: classes) {
54-
classifier = 'sources'
55-
from sourceSets.main.allSource
56-
}
5756

5857
javadoc {
5958
options.addBooleanOption('html5', true)
6059
}
6160

62-
task javadocJar(type: Jar, dependsOn: javadoc) {
63-
classifier = 'javadoc'
64-
from javadoc.destinationDir
65-
}
66-
67-
task createPom {
68-
doLast {
69-
pom
70-
{
71-
project {
72-
artifactId 'Z80Processor'
73-
groupId 'com.codingrodent.microprocessor'
74-
name 'com.codingrodent.microprocessor.Z80Processor'
75-
description 'A Z80 Microprocessor core in Java'
76-
url 'https://github.com/codesqueak/Z80Processor'
77-
scm {
78-
url 'https://github.com/codesqueak/Z80Processor'
79-
connection 'scm:git:git://github.com/codesqueak/Z80Processor.git'
80-
developerConnection 'scm:git:ssh://github.com:codesqueak/Z80Processor.git'
81-
}
8261

83-
licenses {
84-
license {
85-
name 'The Apache Software License, Version 2.0'
86-
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
87-
distribution 'repo'
88-
}
89-
}
90-
developers {
91-
developer {
92-
id 'codesqueak'
93-
name 'codesqueak'
94-
organizationUrl 'http://www.codesqueak.com'
95-
// organization 'codesqueak'
96-
}
97-
}
98-
}
99-
}.writeTo("$buildDir/libs/" + projectName + "-" + version + ".pom")
100-
}
101-
}
10262

10363
artifacts {
10464
archives sourcesJar
@@ -145,10 +105,43 @@ publishing {
145105
publications {
146106
mavenJava(MavenPublication) {
147107
from components.java
108+
pom {
109+
artifactId= 'Z80Processor'
110+
groupId= 'com.codingrodent.microprocessor'
111+
name= 'com.codingrodent.microprocessor.Z80Processor'
112+
description= 'A Z80 Microprocessor core in Java'
113+
url= 'https://github.com/codesqueak/Z80Processor'
114+
scm {
115+
url= 'https://github.com/codesqueak/Z80Processor'
116+
connection= 'scm:git:git://github.com/codesqueak/Z80Processor.git'
117+
developerConnection= 'scm:git:ssh://github.com:codesqueak/Z80Processor.git'
118+
}
119+
licenses {
120+
license {
121+
name= 'The Apache Software License, Version 2.0'
122+
url= 'http://www.apache.org/licenses/LICENSE-2.0.txt'
123+
distribution ='repo'
124+
}
125+
}
126+
developers {
127+
developer {
128+
id= 'codesqueak'
129+
name= 'codesqueak'
130+
organizationUrl ='http://www.codesqueak.com'
131+
// organization 'codesqueak'
132+
}
133+
}
134+
135+
}
148136
}
149137
}
150138
}
151139

140+
signing {
141+
sign(publishing.publications["mavenJava"])
142+
}
143+
144+
152145
artifactory {
153146
contextUrl = "${artifactory_contextUrl}" //The base Artifactory URL if not overridden by the publisher/resolver
154147
publish {

gradle.properties

-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,3 @@ projectName=Z80Processor
66
projectVersionMajor=4
77
projectVersionMinor=0
88
projectVersionBuild=0
9-
#
10-
artifactory_user=admin
11-
artifactory_password=APdDpsMZH3NzE9wS8eKcyxZi44
12-
artifactory_contextUrl=http://172.16.1.7:9081/artifactory

notes.md

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Build & Deploy Notes
2+
3+
`./gradlew clean build test publishToMavenLocal`
4+
5+
This will generate the build products in your local maven repo `~/.m2`
6+
7+
## Signing Requirements
8+
9+
To sign the products of the build, you will need to have generated a signing key using [gpg](https://www.gnupg.org/documentation/howtos.html)
10+
11+
The following field are required in the gradle.properties
12+
13+
`signing.keyId=< last 8 symbols of the key >`
14+
`signing.password=< password for the private key >`
15+
`signing.secretKeyRingFile=< file location/.gnupg/secring.gpg >`
16+
17+
To see your key, `use gpg -k`
18+

0 commit comments

Comments
 (0)