Commit Graph

41 Commits

Author SHA1 Message Date
Nik Everett a740b542e5
Cleanup .gitignore (#30145)
Adds the `.vscode` directory to `.gitignore`. This didn't come up when
we had x-pack in a different repository than Elasticsearch because I'd
open the directory that contained both of them in VSCode. Now that they
are merged I tend to just open the Elasticsearch repository which causes
VSCode to create this directory that we don't need to commit.

Also removes leftover maven files from `.gitignore`.
2018-04-25 22:11:40 -04:00
Jason Tedor 480aeb7eb7
Introduce Gradle wrapper
We have agreed to introduce the Gradle wrapper to simplify workflows for
developers, and managing infrastructure (e.g., CI, release builds, etc.)
as well as consideration for the fact that other projects in our stack
use Gradle and do not necessarily want to be tied to our Gradle version.

Relates #28065
2018-01-04 16:36:13 -05:00
Boaz Leskes b857b316b6 Add BWC layer to seq no infra and enable BWC tests (#22185)
Sequence BWC logic consists of two elements:

1) Wire level BWC using stream versions.
2) A changed to the global checkpoint maintenance semantics.

For the sequence number infra to work with a mixed version clusters, we have to consider situation where the primary is on an old node and replicas are on new ones (i.e., the replicas will receive operations without seq#) and also the reverse (i.e., the primary sends operations to a replica but the replica can't process the seq# and respond with local checkpoint). An new primary with an old replica is a rare because we do not allow a replica to recover from a new primary. However, it can occur if the old primary failed and a new replica was promoted or during primary relocation where the source primary is treated as a replica until the master starts the target.

1) Old Primary & New Replica - this case is easy as is taken care of by the wire level BWC. All incoming requests will have their seq# set to `UNASSIGNED_SEQ_NO`, which doesn't confuse the local checkpoint logic (keeping it at `NO_OPS_PERFORMED`) 
2) New Primary & Old replica - this one is trickier as the global checkpoint service currently takes all in sync replicas into consideration for the global checkpoint calculation. In order to deal with old replicas, we change the semantics to say all *new node* in sync replicas. That means the replicas on old nodes don't count for the global checkpointing. In this state the seq# infra is not fully operational (you can't search on it, because copies may miss it) but it is maintained on shards that can support it. The old replicas will have to go through a file based recovery at some point and will get the seq# information at that point. There is still an edge case where a new primary fails and an old replica takes over. I'lll discuss this one with @ywelsch as I prefer to avoid it completely.

This PR also re-enables the BWC tests which were disabled. As such it had to fix any BWC issue that had crept in. Most notably an issue with the removal of the `timestamp` field in #21670.

The commit also includes a fix for the default value of the seq number field in replicated write requests (it was 0 but should be -2), that surface some other minor bugs which are fixed as well.

Last - I added some debugging tools like more sane node names and forcing replication request to implement a `toString`
2016-12-19 13:08:24 +01:00
Nik Everett 3787ea27bf Validate alias names the same as index names
Applied (almost) the same rules we use to validate index names
to new alias names. The only rule not applies it "must be lowercase".
We have tests that don't follow that rule and I except there are lots
of examples of camelCase alias names in the wild. We can add that
validation but I'm not sure it is worth it.

Closes #20748

Adds an alias that starts with `#` to the BWC index and validates
that you can read from it and remove it. Starting with `#` isn't
allowed after 5.1.0/6.0.0 so we don't create the alias or check it
after those versions.
2016-11-08 08:23:12 -05:00
Nik Everett 2b43c6db3a Only ignore gradle wrapper in root dir (#20341)
Otherwise we ignore the `gradle` directories in `buildSrc`.
2016-09-06 10:39:20 -04:00
Andrzej Wisłowski 3526525a02 Add Gradle wrapper to gitignore
This commit adds the paths used by a Gradle wrapper to gitignore.

Relates #20332
2016-09-06 04:45:25 -04:00
Ryan Ernst 2fef5dee96 Build: use separate build directories for eclipse and intellij
This fixes the problem where doing a gradle clean from the command line
completely breaks the IDE.
2016-02-04 15:44:48 -08:00
Ryan Ernst 67e0b5190a Remove old docs gitignores and comment on docs build dir 2015-12-16 11:56:55 -08:00
Ryan Ernst c8d199bc83 Organize and annotate gitignores 2015-12-15 18:51:38 -08:00
Ryan Ernst b7f8e5c1df Build: Make idea/eclipse project generation build generated resources for plugins
This adds a generated-resources dir that the plugin properties are
generated into. This must be outside of the build dir, since intellij
has build as "excluded".

closes #14392
2015-11-02 11:35:02 -08:00
Ryan Ernst 8c59539e50 Build: Update gitignore to keep maven targets on master
See #14364
2015-10-29 15:55:41 -07:00
Ryan Ernst c86100f636 Switch build system to Gradle
See #13930
2015-10-29 11:40:19 -07:00
Nik Everett f84552dc98 [Packaging] Run tests in vagrant
This creates a module in qa called vagrant that can be run if you have
vagrant and virtualbox installed and will run the packaging tests in trusty
and centos-7.0. You can ask it to run tests in other linuxes. This is the full
list:
* precise aka Ubuntu 12.04
* trusty aka Ubuntu 14.04
* vivid aka Ubuntun 15.04
* wheezy aka Debian 7, the current debian oldstable distribution
* jessie aka Debian 8, the current debina stable distribution
* centos-6
* centos-7
* fedora-22
* oel-7

There is lots of documentation on how to do this in the TESTING.asciidoc.

Closes #12611
2015-08-10 05:31:42 -04:00
Clinton Gormley ac2b8951c6 Docs: Mapping docs completely rewritten for 2.0 2015-08-06 17:24:51 +02:00
Nik Everett f261d2364a Consolidate .gitignore entires for eclipse
Rather than specify paths for the .gitignored files that Eclipse uses for
project management just ignore all files and directories that look like
those directories. That way we can add new subprojects and we won't need
add more .gitignore entries.
2015-07-28 18:19:01 -04:00
Colin Goodheart-Smithe 240155b4ea Adds eclipse settings files to set correct encoding and complier preferences
This is done in the maven-eclipse-plugin so now all eclipse files are generated by mV eclipse:eclipse and can safely be ignored
2015-06-08 14:54:44 +01:00
Robert Muir 129d2b024e Remove plugins/ from gitignore 2015-06-04 00:45:33 -04:00
David Pilato 6024f89032 [maven] add script to generate maven submodules project
This commit adds a shell script which:

* move current elasticsearch core source in `/core`
* fetch `elasticsearch-parent` project in `/`
* fetch plugins in `/plugins`
* change `groupId` for all plugins to `org.elasticsearch.plugin` so versions won't conflict in maven central
* remove plugins/name/dev-tools dir which is not needed anymore
* remove plugins/name/.git dir
* remove plugins/name/LICENSE and plugins/name/CONTRIBUTING files
* clean `core/pom.xml` of useless settings that are inherited from parent project.
* `core/pom.xml` is adapted to change location of rest tests definition (`../`)
* change core name to `Elasticsearch Core`
* remove `plugins` dir from `.gitignore`

Plugins added:

* Analysis
  * analysis-kuromoji
  * analysis-smartcn
  * analysis-stempel
  * analysis-phonetic
  * analysis-icu

* Mapper
  * mapper-attachments

* Language
  * lang-python
  * lang-mvel
  * lang-javascript

* Cloud
  * cloud-gce
  * cloud-azure
  * cloud-aws

River plugins are ignored but might be added if we want to.

Todo:

* check and adapt our release tool. It now has to upload all submodules as well.
* adapt Jenkins jobs
2015-05-28 17:08:10 +02:00
David Pilato 9bb56c0e00 Ignore dependency-reduced-pom.xml even if used in submodules 2015-05-27 12:00:12 +02:00
Janmejay Singh 01bb02a0a4 ignore intellij project/workspace files
closes #9044
2014-12-23 12:00:11 -08:00
Simon Willnauer 4dfa822e1b [TEST] Add basic Backwards Compatibility Tests
This commit add a basic infrastructure as well as primitive tests
to ensure version backwards compatibility between the current
development trunk and an arbitrary previous version. The compatibility
tests are simple unit tests derived from a base class that starts
and manages nodes from a provided elasticsearch release package.

Use the following commandline executes all backwards compatiblity tests
in isolation:

```
mvn test -Dtests.bwc=true -Dtests.bwc.version=1.2.1 -Dtests.class=org.elasticsearch.bwcompat.*
```

These tests run basic checks like rolling upgrades and
routing/searching/get etc. against the specified version. The version
must be present in the `./backwards` folder as
`./backwards/elasticsearch-x.y.z`
2014-06-16 12:40:43 +02:00
Colin Goodheart-Smithe 3534ffcd1d Added plugins to .gitignore
Since plugins should never be committed to the core codebase and it is useful to be able to add plugins to the development environment adding plugins folder to the .gitignore file will stop it from appearing in the unstaged changes
2014-05-28 09:38:58 +01:00
Simon Willnauer 68bc785de8 Update .gitignore to ignore the execution hints files 2014-03-28 10:01:08 +01:00
Andrew Raines 928ac2e3b7 Ignore project tmp dir. 2013-11-01 16:42:51 -05:00
Clinton Gormley a6fffae6df Changed .gitignore to ignore all files in .settings except
for the ones that we want to preserve, to ensure a common
coding style between IDEA and Eclipse
2013-09-13 12:40:10 +02:00
Clinton Gormley 9f59a85c26 Removed .settings from .gitignore - @jpountz intended
for it to be included to ensure consistent code styles
between eclipse and IDEA. Instead just ignore
the org.eclipse.m2e preferences
2013-09-13 09:29:06 +02:00
Adrien Grand 5b6be0c456 Use a separate build directory for Eclipse.
The fact that Maven and Eclipse share the same build directories can trigger
race conditions when both are trying to build at the same time, eg. if you run
`mvn clean test` while Eclipse is up and running: Eclipse will notice that some
class files are missing and start compiling in parallel with Maven.
2013-08-29 10:29:26 +02:00
Clinton Gormley 822043347e Migrated documentation into the main repo 2013-08-29 01:24:34 +02:00
Shay Banon 6da558f81f extra space... 2013-07-24 17:51:18 +02:00
Simon Willnauer ed473e272d Cut over to JUnit & Randomized Runner from TestNG
For better integration with the Lucene Test Framework and the
availabilty of RandomizedRunner / Randommized Testing this commit
moves over from TestNG to JUnit.
This commit also moves relevant places over to RandomzedRunner for
reproduceability and removes copied classes from the Lucene Test
Framework.
2013-07-24 16:59:36 +02:00
Andrew Raines 092fd6fc7a Add info to _cat/nodes, add _cat/indices. 2013-07-15 16:03:21 -05:00
Adrien Grand 1954f770a1 Put Eclipse settings in the root directory.
This enforces that settings are taken into account whichever mean is used to
import the project into Eclipse (manual import, m2e, mvn eclipse:eclipse, ...).
2013-06-26 16:51:47 +02:00
Peter 0f9fe35d56 added netbeans ignores 2011-12-08 13:22:09 +02:00
Shay Banon 98849a2c58 update .gitignore 2011-12-06 01:11:12 +02:00
Nicolas Huray d7f7f77d81 Build ElasticSearch as Debian package 2011-09-28 01:08:35 +03:00
Paul_Loy 6a60bbba1d adding ability for gradle to create eclipse project files and classpaths 2011-06-15 22:03:15 +03:00
kimchy f9716dfcfe fix ignore 2010-12-05 00:02:16 +02:00
kimchy 06ddf4547d add plugins ignore 2010-11-03 21:44:42 +02:00
kimchy 8e6d9989de add data and logs to git ignore 2010-11-03 21:42:36 +02:00
kimchy ac5285ea24 more groovy client work 2010-04-15 17:47:18 +03:00
kimchy b3337c3127 initial commit 2010-02-08 15:30:06 +02:00