Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
Greg Holmes 13317d9f16 Add generated sources directory. 9 лет назад
.idea Add generated sources directory. 9 лет назад
.nb-gradle 2015! 9 лет назад
client @ 42d9214a9a Put guava 18 in util tests in project. 9 лет назад
etc Tidy up some test profile things. 9 лет назад
gradle/wrapper Bump gradle version. 9 лет назад
installers @ 15b7d43ed8 Remove try compiler warnings. 9 лет назад
parser @ cb47a85f15 Remove try compiler warnings. 9 лет назад
plugins @ a17b811695 Commit all tests run configuration. 9 лет назад
util @ c4499517d3 Remove try compiler warnings. 9 лет назад
.gitignore Tidy up some test profile things. 9 лет назад
.gitmodules Add installers submodule. 9 лет назад
.nb-gradle-properties Add Netbeans config. 9 лет назад
AUTHORS Initial import 9 лет назад
KEYS Add KEYS file. 9 лет назад
LICENCE 2015! 9 лет назад
README.md Update clover info. 9 лет назад
build.gradle Bump gradle version. 9 лет назад
circle.yml Set memory limit. 9 лет назад
clover.gradle Update clover info. 9 лет назад
dmdirc.iml IML file updates. 9 лет назад
gradle.properties Add way to re-enable clover. 9 лет назад
gradlew Add gradle wrapper. 9 лет назад
gradlew.bat Add gradle wrapper. 9 лет назад
javadoc.gradle Depend on the right task 9 лет назад
local-dependency-change.gradle Propagate transitivity when switching modules. 9 лет назад
settings.gradle Support for parsers. 9 лет назад

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 tell IDEA to open a new project, and select the directory this repository is checked out to.

Contributing and Continuous Integration

We welcome pull requests on GitHub for all the DMDirc repositories. The tests for the module will run on CircleCI, 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!

The current CI status for the major projects are shown below:

Project Status
Meta Circle CI
Client Circle CI
Parser Circle CI
Plugins Circle CI
Util Circle CI

Miscellaneous

Running Clover

Clover is disabled by default as it requires a license file we can’t distribute. If you have a Clover license, or have access to DMDirc’s license, place it in etc/clover/clover.license.

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.