Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
Greg Holmes 4d4d86f68c Add Netbeans config. před 9 roky
.idea Turn off some XML/XSLT/etc inspections. před 9 roky
.nb-gradle Add Netbeans config. před 9 roky
client @ f7f3da0322 Change submodules to HTTPS urls. před 9 roky
etc Add a copy of the PMD config. před 9 roky
gradle/wrapper Add gradle wrapper. před 9 roky
parser @ 8ca64a80fa Change submodules to HTTPS urls. před 9 roky
plugins @ be7ceba2dc Change submodules to HTTPS urls. před 9 roky
util @ 2b76d27c6f Change submodules to HTTPS urls. před 9 roky
.gitignore Add Netbeans config. před 9 roky
.gitmodules Change submodules to HTTPS urls. před 9 roky
.nb-gradle-properties Add Netbeans config. před 9 roky
AUTHORS Initial import před 9 roky
LICENCE Initial import před 9 roky
README.md Fix clover instructions. před 9 roky
build.gradle Add support for generating global javadoc. před 9 roky
clover.gradle Fix clover appearing again. před 9 roky
dmdirc.iml Make IDEA modules depend on each other. před 9 roky
gradle.properties Add way to re-enable clover. před 9 roky
gradlew Add gradle wrapper. před 9 roky
gradlew.bat Add gradle wrapper. před 9 roky
javadoc.gradle Remove debugging :) před 9 roky
local-dependency-change.gradle Support for parsers. před 9 roky
settings.gradle Support for parsers. před 9 roky

README.md

DMDirc

DMDirc is an IRC client written in Java. It’s cross-platform, hugely configurable, and is easily extensible with a robust plugins system.

This repository doesn’t actually contain the source for DMDirc. Instead it’s split over four different components, each with their own repository:

  • client: contains the main guts of the client
  • parser: an interface for parsers and a full IRC parser
  • plugins: official plugins, including the main UI
  • util: general purpose utility classes not directly related to IRC

Each of the repositories can be worked on and built independently of all the others (and we’ve paid particular care to make sure the parser and util projects can be dropped in to other applications with the minimum of fuss). If you actually want to develop the client, though, it’s a lot easier if they’re all together — that’s what this repository is for! Each of the components mentioned above is included as a submodule, and there are some handy top-level build scripts for bundling everything together.

Getting Started

Project set up

First off, clone this repository and init the submodules:

git clone https://github.com/DMDirc/Meta.git
cd Meta
git submodule update --init --remote

You can then use the provided gradle wrapper to start a build, or run all the tests in the project:

./gradlew jar
./gradlew test

[Currently the gradle scripts do not generate a functioning client… we’re working on that still!]

Using an IDE

We strongly recommend using IntelliJ IDEA. There are project files available in this repository which will load all of the subprojects properly, and configure IDEA with our preferred code style, license headers, etc. Simply open the dmdirc.iml file with IDEA to get going.

Contributing

Client, Parser and Plugin repositories

At present, we use Gerrit to perform code reviews for most of our repositories. This is tied fairly heavily into our continuous integration infra-structure. To push a change to Gerrit you’ll need an account created by an admin - the easiest way to do that is to pop in to #DMDirc on Quakenet and we’ll help you out. Once you have an account, the easiest way to push is to install the git-review tool. You then simply change to a directory and use git-review:

cd client
git review
> remote: Resolving deltas: 100% (6/6)
> remote: Processing changes: new: 1, refs: 1, done
> remote:
> remote: New Changes:
> remote:   http://gerrit.dmdirc.com/12345
> remote:
> To ssh://user@dmdirc.com:29418/client
> * [new branch]      HEAD -> refs/publish/master

Gerrit is configured to require ‘Change-Id’ lines to ease the process of pushing updated patchsets. The root gradle project contains a task to automatically install a commit message hook for each of the submodules; just execute:

./gradlew installCommitIdHook

Meta and Util repositories

For this repository and the util repository we welcome pull requests on GitHub. The tests for the module will run on Travis CI, and the pull request will be updated with the result.

Please bear in mind that these are just unit tests for the individual modules — they don’t test how your change will affect DMDirc itself. It’s good practice to run all of the tests in the project and compile and run an actual client to make sure everything actually still works!

Miscellaneous

Running Clover

Clover is disabled by default as it requires a license file we can’t distribute. When running clover tasks, the build script will try and download our license from a private webserver. If your IP isn’t whitelisted you will need to supply a username/password.

To enable clover, set the enableClover property to true value:

./gradlew -PenableClover=true cloverAggregateReports

This will place a HTML report in build/reports/clover/html.

Dependencies

All cross-repository dependencies are specified as artifacts, rather than project dependencies. That means if (say) the client is compiled on its own, it will pull snapshot versions of the parser and util modules from our maven repository.

The meta repository includes a gradle build script that finds these dependencies and replaces them with project links instead. This ensures that while developing the client your changes are reflected across modules properly.