From 5fa4d279c5ae50ad9aaec5ddb749a358463a3a26 Mon Sep 17 00:00:00 2001 From: oalam Date: Thu, 14 Oct 2021 16:21:39 +0200 Subject: [PATCH 01/32] update junit version --- .../com/hurence/historian/spark/compactor/Compactor.scala | 1 - .../com/hurence/historian/spark/compactor/CompactorTest.java | 2 +- pom.xml | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/historian-spark/src/main/scala/com/hurence/historian/spark/compactor/Compactor.scala b/historian-spark/src/main/scala/com/hurence/historian/spark/compactor/Compactor.scala index 139871e9..61c4c4cd 100644 --- a/historian-spark/src/main/scala/com/hurence/historian/spark/compactor/Compactor.scala +++ b/historian-spark/src/main/scala/com/hurence/historian/spark/compactor/Compactor.scala @@ -118,7 +118,6 @@ class Compactor(val options: CompactorConf) extends Serializable with Runnable { val measuresDS = convertChunksToMeasures(uncompactedChunks) val compactedChunksDS = convertMeasuresToChunks(measuresDS) - compactedChunksDS.show(10,false) writeCompactedChunksToSolr(compactedChunksDS) deleteOldChunks(day) diff --git a/historian-spark/src/test/java/com/hurence/historian/spark/compactor/CompactorTest.java b/historian-spark/src/test/java/com/hurence/historian/spark/compactor/CompactorTest.java index a73aa7e9..faa232c5 100644 --- a/historian-spark/src/test/java/com/hurence/historian/spark/compactor/CompactorTest.java +++ b/historian-spark/src/test/java/com/hurence/historian/spark/compactor/CompactorTest.java @@ -1147,7 +1147,7 @@ public void testCompactorHourly(SparkSession sparkSession) throws InterruptedExc SolrITHelper.COLLECTION_HISTORIAN, "", "compactor", - "yyyy-MM-dd.HH"); + "yyyy-MM-dd"); Compactor compactor = new Compactor(conf); compactor.setSolrClient(cloudClient); diff --git a/pom.xml b/pom.xml index 8bed060e..96824807 100644 --- a/pom.xml +++ b/pom.xml @@ -83,8 +83,8 @@ 2.3.2 3.6.6 - 4.13.1 - 1.2.0 + 4.13 + 1.5.2 5.5.2 3.8.1 From 7e493be41de3c389270ef82d4d5da38debb0ce91 Mon Sep 17 00:00:00 2001 From: oalam Date: Thu, 14 Oct 2021 16:37:53 +0200 Subject: [PATCH 02/32] add a new repo for org.restlet.jee --- pom.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pom.xml b/pom.xml index 96824807..3a05b742 100644 --- a/pom.xml +++ b/pom.xml @@ -110,6 +110,13 @@ historian-scrapper + + + spring plugins repo + https://repo.spring.io/plugins-release/ + + + From e6691dab7168c241cba5d43b758725e294cb6265 Mon Sep 17 00:00:00 2001 From: oalam Date: Thu, 14 Oct 2021 16:39:01 +0200 Subject: [PATCH 03/32] add a new repo for org.restlet.jee --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 3a05b742..1647fb33 100644 --- a/pom.xml +++ b/pom.xml @@ -112,6 +112,7 @@ + spring-plug-repo spring plugins repo https://repo.spring.io/plugins-release/ From ed922e8b9fb586010f053023fd11c72fa59bc16e Mon Sep 17 00:00:00 2001 From: oalam Date: Thu, 14 Oct 2021 16:51:06 +0200 Subject: [PATCH 04/32] add a new repo for org.restlet.jee --- integration-tests/pom.xml | 5 ++++- pom.xml | 7 ------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index 6ee6984e..ee9caad1 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -54,6 +54,10 @@ commons-codec commons-codec + + org.restlet.jee + * + @@ -93,7 +97,6 @@ com.hurence.historian historian-tools - 1.3.8 compile diff --git a/pom.xml b/pom.xml index 1647fb33..4ab374a5 100644 --- a/pom.xml +++ b/pom.xml @@ -110,13 +110,6 @@ historian-scrapper - - - spring-plug-repo - spring plugins repo - https://repo.spring.io/plugins-release/ - - From f56715905f435f7a8c3df04a585b436ebbbaf651 Mon Sep 17 00:00:00 2001 From: oalam Date: Thu, 14 Oct 2021 16:53:20 +0200 Subject: [PATCH 05/32] add a new repo for org.restlet.jee --- integration-tests/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index ee9caad1..cd9bab8b 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -97,6 +97,7 @@ com.hurence.historian historian-tools + ${project.version} compile From 09df908eab32d994be94d97aa58aacdc79ea1d7a Mon Sep 17 00:00:00 2001 From: oalam Date: Thu, 14 Oct 2021 17:01:54 +0200 Subject: [PATCH 06/32] remove dep to org.restlet.jee --- historian-server/pom.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/historian-server/pom.xml b/historian-server/pom.xml index 59377910..0ffd3df6 100644 --- a/historian-server/pom.xml +++ b/historian-server/pom.xml @@ -123,6 +123,10 @@ org.apache.hadoop * + + org.restlet.jee + * + From d047b5ddfc1c85e2084df265dd414632c5057899 Mon Sep 17 00:00:00 2001 From: oalam Date: Thu, 14 Oct 2021 17:07:44 +0200 Subject: [PATCH 07/32] remove dep to org.restlet.jee --- historian-spark/pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/historian-spark/pom.xml b/historian-spark/pom.xml index 92f02341..21cf1c13 100644 --- a/historian-spark/pom.xml +++ b/historian-spark/pom.xml @@ -174,10 +174,10 @@ org.apache.hadoop * - + com.google.guava * From ac073e5534b806b8f479f7dc0911d0fe592073b3 Mon Sep 17 00:00:00 2001 From: oalam Date: Thu, 14 Oct 2021 17:12:08 +0200 Subject: [PATCH 08/32] remove dep to org.restlet.jee --- historian-spark/pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/historian-spark/pom.xml b/historian-spark/pom.xml index 21cf1c13..b5078f52 100644 --- a/historian-spark/pom.xml +++ b/historian-spark/pom.xml @@ -174,10 +174,6 @@ org.apache.hadoop * - - org.restlet.jee - * - com.google.guava * @@ -224,6 +220,10 @@ com.google.guava * + + org.restlet.jee + * + From 8e006e278707646536fc26d61c88c3a10c7f170f Mon Sep 17 00:00:00 2001 From: oalam Date: Thu, 14 Oct 2021 17:15:39 +0200 Subject: [PATCH 09/32] remove dep to org.restlet.jee --- historian-spark/pom.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/historian-spark/pom.xml b/historian-spark/pom.xml index b5078f52..30e0d22f 100644 --- a/historian-spark/pom.xml +++ b/historian-spark/pom.xml @@ -178,6 +178,10 @@ com.google.guava * + + org.restlet.jee + * + From 41e9742d2abc60399448939c0d1e75cda1bf1cb2 Mon Sep 17 00:00:00 2001 From: oalam Date: Thu, 14 Oct 2021 17:22:34 +0200 Subject: [PATCH 10/32] remove dep to org.restlet.jee --- historian-spark/pom.xml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/historian-spark/pom.xml b/historian-spark/pom.xml index 30e0d22f..c40596f2 100644 --- a/historian-spark/pom.xml +++ b/historian-spark/pom.xml @@ -303,14 +303,10 @@ commons-cli commons-cli - - - - - - - - + + org.restlet.jee + * + com.google.guava * @@ -326,7 +322,7 @@ com.hurence.historian historian-tools - 1.3.8 + ${project.version} From 0d03b55cdd80d3644d474a5b41bfbcf1d843717e Mon Sep 17 00:00:00 2001 From: oalam Date: Mon, 18 Oct 2021 10:37:20 +0200 Subject: [PATCH 11/32] (re) add dep to org.restlet.jee --- historian-spark/pom.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/historian-spark/pom.xml b/historian-spark/pom.xml index c40596f2..a32ac610 100644 --- a/historian-spark/pom.xml +++ b/historian-spark/pom.xml @@ -303,10 +303,6 @@ commons-cli commons-cli - - org.restlet.jee - * - com.google.guava * From 73963d98b6f32c9a17e22c5d0ef5078e9ffcc8b3 Mon Sep 17 00:00:00 2001 From: oalam Date: Mon, 18 Oct 2021 10:44:17 +0200 Subject: [PATCH 12/32] add repo maven restlet --- pom.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pom.xml b/pom.xml index 4ab374a5..67901149 100644 --- a/pom.xml +++ b/pom.xml @@ -111,6 +111,14 @@ + + + maven-restlet + Public online Restlet repository + https://maven.restlet.talend.com + + + From 8d85d72eb5765affa7051248f1967de67a785ee6 Mon Sep 17 00:00:00 2001 From: oalam Date: Mon, 18 Oct 2021 11:00:00 +0200 Subject: [PATCH 13/32] setup it tests --- .github/workflows/integ-tests.yml | 2 +- .github/workflows/unit-tests.yml | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integ-tests.yml b/.github/workflows/integ-tests.yml index 82825ed7..904e8237 100644 --- a/.github/workflows/integ-tests.yml +++ b/.github/workflows/integ-tests.yml @@ -5,7 +5,7 @@ name: integration tests on: push: - branches: [ master, release-1.3.5 ] + branches: [ master, feature/it-tests ] pull_request: branches: [ master, release-1.3.5 ] workflow_dispatch: diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 77fc85ca..3a1670ed 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -1,6 +1,9 @@ name: build -on: [push] +on: + push: + branches-ignore: + - 'feature/it-test' jobs: build: From 21c343d8a0641b514d0079ae0eb83e2c23c44108 Mon Sep 17 00:00:00 2001 From: oalam Date: Mon, 18 Oct 2021 16:15:23 +0200 Subject: [PATCH 14/32] setup it tests --- .github/workflows/unit-tests.yml | 1 - historian-server/pom.xml | 3 +-- ...ntFocusSamplingReturnEnoughPointsCurrentVersionIT.java | 2 +- .../http/api/grafana/simplejson/SearchEndPointIT.java | 2 +- integration-tests/pom.xml | 5 ----- .../com/hurence/historian/solr/util/SolrITHelper.java | 2 +- .../java/com/hurence/unit5/extensions/SolrExtension.java | 8 ++++---- pom.xml | 2 +- 8 files changed, 9 insertions(+), 16 deletions(-) diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 3a1670ed..1c16e169 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -3,7 +3,6 @@ name: build on: push: branches-ignore: - - 'feature/it-test' jobs: build: diff --git a/historian-server/pom.xml b/historian-server/pom.xml index 0ffd3df6..f2f662b0 100644 --- a/historian-server/pom.xml +++ b/historian-server/pom.xml @@ -16,7 +16,6 @@ 3.8.1 1.5.0 8.2.0 - 1.12.2 @@ -185,7 +184,7 @@ org.testcontainers testcontainers - 1.12.2 + ${test.containers} test diff --git a/historian-server/src/integration-test/java/com/hurence/webapiservice/http/api/grafana/hurence/QueryEndPointFocusSamplingReturnEnoughPointsCurrentVersionIT.java b/historian-server/src/integration-test/java/com/hurence/webapiservice/http/api/grafana/hurence/QueryEndPointFocusSamplingReturnEnoughPointsCurrentVersionIT.java index f574695b..37801065 100644 --- a/historian-server/src/integration-test/java/com/hurence/webapiservice/http/api/grafana/hurence/QueryEndPointFocusSamplingReturnEnoughPointsCurrentVersionIT.java +++ b/historian-server/src/integration-test/java/com/hurence/webapiservice/http/api/grafana/hurence/QueryEndPointFocusSamplingReturnEnoughPointsCurrentVersionIT.java @@ -24,7 +24,6 @@ import io.vertx.reactivex.ext.web.codec.BodyCodec; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; -import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -33,6 +32,7 @@ import org.slf4j.LoggerFactory; import org.testcontainers.containers.DockerComposeContainer; +import javax.validation.constraints.NotNull; import java.io.IOException; import java.util.Arrays; import java.util.List; diff --git a/historian-server/src/integration-test/java/com/hurence/webapiservice/http/api/grafana/simplejson/SearchEndPointIT.java b/historian-server/src/integration-test/java/com/hurence/webapiservice/http/api/grafana/simplejson/SearchEndPointIT.java index 5b3703fc..0e04deef 100644 --- a/historian-server/src/integration-test/java/com/hurence/webapiservice/http/api/grafana/simplejson/SearchEndPointIT.java +++ b/historian-server/src/integration-test/java/com/hurence/webapiservice/http/api/grafana/simplejson/SearchEndPointIT.java @@ -24,13 +24,13 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.common.SolrInputDocument; -import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.*; import org.junit.jupiter.api.extension.ExtendWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testcontainers.containers.DockerComposeContainer; +import javax.validation.constraints.NotNull; import java.io.IOException; import java.util.HashSet; import java.util.List; diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index cd9bab8b..2794b382 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -11,11 +11,6 @@ integration-tests jar - - 2.11 - 8.2.0 - 1.12.2 - diff --git a/integration-tests/src/main/java/com/hurence/historian/solr/util/SolrITHelper.java b/integration-tests/src/main/java/com/hurence/historian/solr/util/SolrITHelper.java index 05207cc9..53e1ab99 100644 --- a/integration-tests/src/main/java/com/hurence/historian/solr/util/SolrITHelper.java +++ b/integration-tests/src/main/java/com/hurence/historian/solr/util/SolrITHelper.java @@ -16,12 +16,12 @@ import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrDocumentList; import org.apache.solr.common.params.SolrParams; -import org.jetbrains.annotations.NotNull; import org.noggit.JSONUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testcontainers.containers.DockerComposeContainer; +import javax.validation.constraints.NotNull; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; diff --git a/integration-tests/src/main/java/com/hurence/unit5/extensions/SolrExtension.java b/integration-tests/src/main/java/com/hurence/unit5/extensions/SolrExtension.java index 4ff04ca7..9b95e460 100644 --- a/integration-tests/src/main/java/com/hurence/unit5/extensions/SolrExtension.java +++ b/integration-tests/src/main/java/com/hurence/unit5/extensions/SolrExtension.java @@ -41,7 +41,7 @@ public class SolrExtension implements BeforeAllCallback, AfterAllCallback, Param public final static String SOLR1_SERVICE_NAME = "solr1_1"; public final static int SOLR_1_PORT = 8983; public final static int SOLR_2_PORT = 8983; - public final static String ZOOKEEPER_SERVICE_NAME = "zookeeper_1"; + public final static String ZOOKEEPER_SERVICE_NAME = "zoo1_1"; public final static int ZOOKEEPER_PORT = 2181; private final static String IMAGE = "solr:8"; public final static String SOLR_CONF_TEMPLATE_HISTORIAN_CURRENT = "historian-current"; @@ -77,11 +77,11 @@ public void afterAll(ExtensionContext extensionContext) throws Exception { @Override public void beforeAll(ExtensionContext extensionContext) throws Exception { this.dockerComposeContainer = new DockerComposeContainer( - new File(getClass().getResource("/shared-resources/docker-compose-test.yml").getFile()) + new File(getClass().getResource("/docker-compose-for-grafana-tests.yml").getFile()) ) - .withExposedService(ZOOKEEPER_SERVICE_NAME, ZOOKEEPER_PORT, Wait.forListeningPort()) + ;/* .withExposedService(ZOOKEEPER_SERVICE_NAME, ZOOKEEPER_PORT, Wait.forListeningPort()) .withExposedService(SOLR1_SERVICE_NAME, SOLR_1_PORT, Wait.forListeningPort()) - .waitingFor(SOLR2_SERVICE_NAME, Wait.forListeningPort()); + .waitingFor(SOLR2_SERVICE_NAME, Wait.forListeningPort());*/ logger.info("Starting docker compose"); this.dockerComposeContainer.start(); diff --git a/pom.xml b/pom.xml index 67901149..7a0164df 100644 --- a/pom.xml +++ b/pom.xml @@ -90,7 +90,7 @@ 3.8.1 1.5.0 - 1.12.2 + 1.16.0 1.18.12 1.18.12.0 From 70ba030304305c6ac993f80631065b9341a956d1 Mon Sep 17 00:00:00 2001 From: oalam Date: Mon, 18 Oct 2021 16:27:08 +0200 Subject: [PATCH 15/32] setup it tests --- .github/workflows/integ-tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/integ-tests.yml b/.github/workflows/integ-tests.yml index 904e8237..2d1b42dc 100644 --- a/.github/workflows/integ-tests.yml +++ b/.github/workflows/integ-tests.yml @@ -5,12 +5,12 @@ name: integration tests on: push: - branches: [ master, feature/it-tests ] + branches: [ master ] pull_request: - branches: [ master, release-1.3.5 ] + branches: [ master ] workflow_dispatch: inputs: - branches: [ master, release-1.3.5 ] + branches: [ master] jobs: From 1686d9b6f02a617ca1f79a80c273bb7c92630c4c Mon Sep 17 00:00:00 2001 From: oalam Date: Tue, 19 Oct 2021 12:11:37 +0200 Subject: [PATCH 16/32] fix chunk writer to store tags --- historian-spark/docker/README.md | 9 ----- .../sql/writer/solr/SolrChunksWriter.scala | 33 ++++++++----------- 2 files changed, 13 insertions(+), 29 deletions(-) diff --git a/historian-spark/docker/README.md b/historian-spark/docker/README.md index 349521cf..05028f3d 100644 --- a/historian-spark/docker/README.md +++ b/historian-spark/docker/README.md @@ -29,15 +29,6 @@ docker tag hurence/historian-spark:latest hurence/historian-spark:1.3.8 Deploy the image to Docker hub ------------------------------ -tag the image as latest - -verify image build : - -```shell script -docker images -docker tag latest -``` - then login and push the latest image ```shell script diff --git a/historian-spark/src/main/scala/com/hurence/historian/spark/sql/writer/solr/SolrChunksWriter.scala b/historian-spark/src/main/scala/com/hurence/historian/spark/sql/writer/solr/SolrChunksWriter.scala index 93003794..e17ae278 100644 --- a/historian-spark/src/main/scala/com/hurence/historian/spark/sql/writer/solr/SolrChunksWriter.scala +++ b/historian-spark/src/main/scala/com/hurence/historian/spark/sql/writer/solr/SolrChunksWriter.scala @@ -12,12 +12,12 @@ import com.hurence.timeseries.model.Definitions._ import scala.collection.JavaConverters._ /** - * val options.config = Map( - * "zkhost" -> options.zkHosts, - * "collection" -> options.collectionName - * ) - * - */ + * val options.config = Map( + * "zkhost" -> options.zkHosts, + * "collection" -> options.collectionName + * ) + * + */ class SolrChunksWriter extends Writer[Chunk] { @@ -32,22 +32,15 @@ class SolrChunksWriter extends Writer[Chunk] { else options.config - var someTags : Boolean = true - val tagCols : List[Column] = if (options.config.contains(TAG_NAMES)) { - options.config(TAG_NAMES).split(",").toList - .map(tag => col(FIELD_TAGS)(tag).as(tag)) - } else { - // No tags specified - someTags = false - List[Column]() - } + // build column names with tags + val mainCols = FIELDS.asScala.toList.map(name => col(name).as(getColumnFromField(name))) + val keysDF = ds.select(explode(map_keys(col(FIELD_TAGS)))).distinct() + val keys = keysDF.collect().map(f=>f.get(0)) + val tagCols = keys.map(f=> col(FIELD_TAGS).getItem(f).as(f.toString)).toList - val mainCols = FIELDS.asScala.toList - .map(name => col(name).as(getColumnFromField(name))) - - // todo manage dateFormatbucket and date interval + // write the dataset to SolR ds - .select(mainCols ::: tagCols: _*) + .select(mainCols ::: tagCols:_*) .withColumn(SOLR_COLUMN_VALUE, base64(col(SOLR_COLUMN_VALUE))) .write .format("solr") From 6f9f8c46d6c2e545f6e118843c7d98e0ee5fee46 Mon Sep 17 00:00:00 2001 From: oalam Date: Wed, 20 Oct 2021 16:05:21 +0200 Subject: [PATCH 17/32] update release number --- DEVELOPMENT.md | 14 +++++-- assembly/pom.xml | 2 +- historian-resources/pom.xml | 2 +- historian-scrapper/README.md | 38 ++++++++++++++++++- historian-scrapper/pom.xml | 4 +- .../src/main/resources/application.properties | 13 +------ historian-server/pom.xml | 4 +- historian-spark/pom.xml | 2 +- historian-timeseries/pom.xml | 4 +- historian-tools/pom.xml | 2 +- integration-tests/pom.xml | 2 +- logisland-timeseries/pom.xml | 2 +- pom.xml | 2 +- 13 files changed, 61 insertions(+), 30 deletions(-) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 44deb147..80456ebf 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -61,20 +61,28 @@ Run the following command in the root directory of historian source checkout. ## Release process -Ensure all tests are passing - Create release branch : ```bash -git checkout -b release-x.x.x +git hf release start vx.x.x ``` Update maven version : ```bash mvn versions:set -DnewVersion=x.x.x +# commit if ok +mvn versions:commit +``` + +Ensure all tests are passing (even integ ones) + +```bash +mvn clean install +mvn -Pintegration-tests -q clean verify ``` + verify modification and commit them. Test the standalone install in ./assembly/target/historian-X.X.X-install.tgz. diff --git a/assembly/pom.xml b/assembly/pom.xml index c57efb21..0cf4258e 100644 --- a/assembly/pom.xml +++ b/assembly/pom.xml @@ -5,7 +5,7 @@ historian com.hurence.historian - 1.3.8 + 1.3.9 4.0.0 diff --git a/historian-resources/pom.xml b/historian-resources/pom.xml index d4a42791..a0695fec 100644 --- a/historian-resources/pom.xml +++ b/historian-resources/pom.xml @@ -5,7 +5,7 @@ historian com.hurence.historian - 1.3.8 + 1.3.9 4.0.0 diff --git a/historian-scrapper/README.md b/historian-scrapper/README.md index b512cf59..cabec63a 100644 --- a/historian-scrapper/README.md +++ b/historian-scrapper/README.md @@ -1,13 +1,47 @@ # Getting Started +This tool is based on original source code from : [https://github.com/jmazzitelli/prometheus-scraper](https://github.com/jmazzitelli/prometheus-scraper) +This provides an API and a command line utility to scrape metrics from a Prometheus protocol endpoint. It supports both binary and text Prometheus data formats and send data into Historian + + +## Configuration + +The following properties can be set in `application.properties` file or passed at command line or docker env + +```properties +# interval time in ms between scrap calls +scraper.scheduledDelayMs=${SCRAPER_DELAY:15000} +# the prometheus metrics url +scraper.url=${SCRAPPER_URL:http://localhost:9854/metrics} +# historian zookeeper hosts quorum (without root) +historian.solr.zkHosts=${ZK_HOSTS:localhost:9983} +# historian zookeeper root +historian.solr.zkChroot=${ZK_CHROOT:} +# historian solr collection +historian.solr.collection=${COLLECTION:historian} +# solr batch udaters internal queue size +historian.solr.queueSize=${QUEUE_SIZE:10000} +# solr batch injection size +historian.solr.batchSize=${BATCH_SIZE:200} +# solr batch fluch interval in ms +historian.solr.flushIntervalMs=${FLUSH_INTERVAL:2000} +# historian chunk_origin field +historian.solr.chunkOrigin=${CHUNK_ORIGIN:prometheus-scrapper} +``` ## Docker +Use the following commands to build `hurence/historian-scrapper` container. + ```bash mvn clean install docker build --rm -t hurence/historian-scrapper . +docker tag hurence/historian-scrapper:latest hurence/historian-scrapper:x.x.x +docker push hurence/historian-scrapper:x.x.x +``` + +run a scrapper on a prometheus url +```bash docker run -p 8081:8081 --env SCRAPPER_URL=http://plouk:8080 hurence/historian-scrapper -docker tag hurence/historian-scrapper:latest hurence/historian-scrapper:1.3.8 -docker push hurence/historian-scrapper:1.3.8 ``` \ No newline at end of file diff --git a/historian-scrapper/pom.xml b/historian-scrapper/pom.xml index f7e0f237..1afc8911 100644 --- a/historian-scrapper/pom.xml +++ b/historian-scrapper/pom.xml @@ -55,7 +55,7 @@ com.hurence.historian historian-timeseries - 1.3.8 + 1.3.9 com.google.guava @@ -76,7 +76,7 @@ com.hurence.historian historian-tools - 1.3.8 + 1.3.9 compile diff --git a/historian-scrapper/src/main/resources/application.properties b/historian-scrapper/src/main/resources/application.properties index 023e08f9..de572621 100644 --- a/historian-scrapper/src/main/resources/application.properties +++ b/historian-scrapper/src/main/resources/application.properties @@ -8,15 +8,4 @@ historian.solr.collection=${COLLECTION:historian} historian.solr.queueSize=${QUEUE_SIZE:10000} historian.solr.batchSize=${BATCH_SIZE:200} historian.solr.flushIntervalMs=${FLUSH_INTERVAL:2000} -historian.solr.chunkOrigin=${CHUNK_ORIGIN:prometheus-scrapper} - - -"chunk_start":1632401137386, - - -"chunk_end":1632401137386, - - -chunk_start:[* TO 1632400890000] \ - \ - AND chunk_end:[1632399990000 TO *] \ No newline at end of file +historian.solr.chunkOrigin=${CHUNK_ORIGIN:prometheus-scrapper} \ No newline at end of file diff --git a/historian-server/pom.xml b/historian-server/pom.xml index f2f662b0..5feb3911 100644 --- a/historian-server/pom.xml +++ b/historian-server/pom.xml @@ -5,7 +5,7 @@ historian com.hurence.historian - 1.3.8 + 1.3.9 4.0.0 @@ -178,7 +178,7 @@ com.hurence.historian historian-tools - 1.3.8 + 1.3.9 compile diff --git a/historian-spark/pom.xml b/historian-spark/pom.xml index a32ac610..5881ebfb 100644 --- a/historian-spark/pom.xml +++ b/historian-spark/pom.xml @@ -4,7 +4,7 @@ historian com.hurence.historian - 1.3.8 + 1.3.9 historian-spark diff --git a/historian-timeseries/pom.xml b/historian-timeseries/pom.xml index 28a2a09d..86415597 100644 --- a/historian-timeseries/pom.xml +++ b/historian-timeseries/pom.xml @@ -6,7 +6,7 @@ historian com.hurence.historian - 1.3.8 + 1.3.9 4.0.0 @@ -141,7 +141,7 @@ com.hurence.historian historian-resources - 1.3.8 + 1.3.9 compile diff --git a/historian-tools/pom.xml b/historian-tools/pom.xml index b9e6394e..cae13c58 100644 --- a/historian-tools/pom.xml +++ b/historian-tools/pom.xml @@ -5,7 +5,7 @@ historian com.hurence.historian - 1.3.8 + 1.3.9 4.0.0 diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index 2794b382..f4c1d27b 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -5,7 +5,7 @@ historian com.hurence.historian - 1.3.8 + 1.3.9 4.0.0 integration-tests diff --git a/logisland-timeseries/pom.xml b/logisland-timeseries/pom.xml index a22c7967..48a59596 100644 --- a/logisland-timeseries/pom.xml +++ b/logisland-timeseries/pom.xml @@ -6,7 +6,7 @@ historian com.hurence.historian - 1.3.8 + 1.3.9 4.0.0 diff --git a/pom.xml b/pom.xml index 7a0164df..218f804c 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ 4.0.0 com.hurence.historian historian - 1.3.8 + 1.3.9 pom Historian in a time series graphic tool From 289e45b7b3c02abdb50238c3aa2b5d3ce317f40c Mon Sep 17 00:00:00 2001 From: oalam Date: Wed, 20 Oct 2021 18:30:27 +0200 Subject: [PATCH 18/32] add jekyll doc template --- docs/404.html | 10 + docs/CONTRIBUTING.md | 85 ++ docs/Gemfile | 16 + docs/LICENSE.md | 21 + docs/README.md | 27 +- docs/_config.yml | 50 +- docs/_includes/footer.html | 43 + docs/_includes/head.html | 10 + docs/_includes/header.html | 26 + docs/_layouts/default.html | 20 + docs/_layouts/home.html | 41 + docs/_layouts/page.html | 14 + docs/_layouts/post.html | 23 + docs/_sass/_bootstrap_customization.scss | 328 +++++ docs/_sass/_syntax-highlighting.scss | 74 ++ docs/_sass/_variables.scss | 111 ++ .../_bootstrap-4-jekyll.scss | 8 + docs/_sass/bootstrap/__DO_NOT_MODIFY | 0 docs/_sass/bootstrap/_alert.scss | 52 + docs/_sass/bootstrap/_badge.scss | 54 + docs/_sass/bootstrap/_breadcrumb.scss | 42 + docs/_sass/bootstrap/_button-group.scss | 163 +++ docs/_sass/bootstrap/_buttons.scss | 142 ++ docs/_sass/bootstrap/_card.scss | 286 ++++ docs/_sass/bootstrap/_carousel.scss | 197 +++ docs/_sass/bootstrap/_close.scss | 40 + docs/_sass/bootstrap/_code.scss | 48 + docs/_sass/bootstrap/_custom-forms.scss | 526 ++++++++ docs/_sass/bootstrap/_dropdown.scss | 192 +++ docs/_sass/bootstrap/_forms.scss | 347 +++++ docs/_sass/bootstrap/_functions.scss | 144 +++ docs/_sass/bootstrap/_grid.scss | 73 ++ docs/_sass/bootstrap/_images.scss | 42 + docs/_sass/bootstrap/_input-group.scss | 208 +++ docs/_sass/bootstrap/_jumbotron.scss | 17 + docs/_sass/bootstrap/_list-group.scss | 154 +++ docs/_sass/bootstrap/_media.scss | 8 + docs/_sass/bootstrap/_mixins.scss | 47 + docs/_sass/bootstrap/_modal.scss | 240 ++++ docs/_sass/bootstrap/_nav.scss | 120 ++ docs/_sass/bootstrap/_navbar.scss | 332 +++++ docs/_sass/bootstrap/_pagination.scss | 74 ++ docs/_sass/bootstrap/_popover.scss | 170 +++ docs/_sass/bootstrap/_print.scss | 141 ++ docs/_sass/bootstrap/_progress.scss | 47 + docs/_sass/bootstrap/_reboot.scss | 484 +++++++ docs/_sass/bootstrap/_root.scss | 19 + docs/_sass/bootstrap/_spinners.scss | 65 + docs/_sass/bootstrap/_tables.scss | 185 +++ docs/_sass/bootstrap/_toasts.scss | 46 + docs/_sass/bootstrap/_tooltip.scss | 115 ++ docs/_sass/bootstrap/_transitions.scss | 20 + docs/_sass/bootstrap/_type.scss | 125 ++ docs/_sass/bootstrap/_utilities.scss | 18 + docs/_sass/bootstrap/_variables.scss | 1146 +++++++++++++++++ docs/_sass/bootstrap/bootstrap-grid.scss | 30 + docs/_sass/bootstrap/bootstrap-reboot.scss | 12 + docs/_sass/bootstrap/bootstrap.scss | 44 + docs/_sass/bootstrap/mixins/_alert.scss | 13 + .../bootstrap/mixins/_background-variant.scss | 23 + docs/_sass/bootstrap/mixins/_badge.scss | 17 + .../bootstrap/mixins/_border-radius.scss | 76 ++ docs/_sass/bootstrap/mixins/_box-shadow.scss | 20 + docs/_sass/bootstrap/mixins/_breakpoints.scss | 123 ++ docs/_sass/bootstrap/mixins/_buttons.scss | 110 ++ docs/_sass/bootstrap/mixins/_caret.scss | 62 + docs/_sass/bootstrap/mixins/_clearfix.scss | 7 + docs/_sass/bootstrap/mixins/_deprecate.scss | 10 + docs/_sass/bootstrap/mixins/_float.scss | 14 + docs/_sass/bootstrap/mixins/_forms.scss | 185 +++ docs/_sass/bootstrap/mixins/_gradients.scss | 45 + .../bootstrap/mixins/_grid-framework.scss | 80 ++ docs/_sass/bootstrap/mixins/_grid.scss | 69 + docs/_sass/bootstrap/mixins/_hover.scss | 37 + docs/_sass/bootstrap/mixins/_image.scss | 36 + docs/_sass/bootstrap/mixins/_list-group.scss | 21 + docs/_sass/bootstrap/mixins/_lists.scss | 7 + docs/_sass/bootstrap/mixins/_nav-divider.scss | 11 + docs/_sass/bootstrap/mixins/_pagination.scss | 22 + docs/_sass/bootstrap/mixins/_reset-text.scss | 17 + docs/_sass/bootstrap/mixins/_resize.scss | 6 + .../bootstrap/mixins/_screen-reader.scss | 34 + docs/_sass/bootstrap/mixins/_size.scss | 7 + docs/_sass/bootstrap/mixins/_table-row.scss | 39 + .../bootstrap/mixins/_text-emphasis.scss | 17 + docs/_sass/bootstrap/mixins/_text-hide.scss | 11 + .../bootstrap/mixins/_text-truncate.scss | 8 + docs/_sass/bootstrap/mixins/_transition.scss | 26 + docs/_sass/bootstrap/mixins/_visibility.scss | 8 + docs/_sass/bootstrap/utilities/_align.scss | 8 + .../bootstrap/utilities/_background.scss | 19 + docs/_sass/bootstrap/utilities/_borders.scss | 75 ++ docs/_sass/bootstrap/utilities/_clearfix.scss | 3 + docs/_sass/bootstrap/utilities/_display.scss | 26 + docs/_sass/bootstrap/utilities/_embed.scss | 39 + docs/_sass/bootstrap/utilities/_flex.scss | 51 + docs/_sass/bootstrap/utilities/_float.scss | 11 + .../bootstrap/utilities/_interactions.scss | 5 + docs/_sass/bootstrap/utilities/_overflow.scss | 5 + docs/_sass/bootstrap/utilities/_position.scss | 32 + .../bootstrap/utilities/_screenreaders.scss | 11 + docs/_sass/bootstrap/utilities/_shadows.scss | 6 + docs/_sass/bootstrap/utilities/_sizing.scss | 20 + docs/_sass/bootstrap/utilities/_spacing.scss | 73 ++ .../bootstrap/utilities/_stretched-link.scss | 19 + docs/_sass/bootstrap/utilities/_text.scss | 72 ++ .../bootstrap/utilities/_visibility.scss | 13 + docs/_sass/bootstrap/vendor/_rfs.scss | 204 +++ .../javascript/bootstrap/__DO_NOT_MODIFY | 0 .../bootstrap/bootstrap.bundle.min.js | 7 + .../bootstrap/bootstrap.bundle.min.js.map | 1 + .../assets/javascript/bootstrap/jquery.min.js | 2 + .../javascript/bootstrap/jquery.min.map | 1 + docs/assets/main.scss | 9 + docs/index.md | 109 +- docs/package-lock.json | 61 + docs/package.json | 6 + docs/pdf/README.md | 24 + .../architecture.graffle/image1.tiff | Bin .../architecture.graffle/image11.tiff | Bin .../architecture.graffle/image13.tiff | Bin .../architecture.graffle/image14.tiff | Bin .../architecture.graffle/image15.tiff | Bin .../architecture.graffle/image20.tiff | Bin .../architecture.graffle/image23.tiff | Bin .../architecture.graffle/image24.tiff | Bin .../architecture.graffle/image25.tiff | Bin .../architecture.graffle/image26.tiff | Bin .../architecture.graffle/image27.tiff | Bin .../architecture.graffle/image29.png | Bin .../architecture.graffle/image30.png | Bin .../architecture.graffle/image31.png | Bin .../architecture.graffle/image34.png | Bin .../architecture.graffle/image35.png | Bin .../architecture.graffle/image4.tiff | Bin .../architecture.graffle/image5.tiff | Bin .../{ => pdf}/architecture.graffle/image6.png | Bin .../asciidoc/en/_description_modules.ad | 0 .../_description_gateway.ad | 0 ...escription_grafana-historian-datasource.ad | 0 .../_description_historian-modele.ad | 0 .../_description_integration-tests.ad | 0 .../_description_loader.ad | 0 .../_description_logisland-timeseries.ad | 0 .../_description_timeseries.ad | 0 .../architecture/asciidoc/en/architecture.ad | 0 .../asciidoc/fr/_description_modules.ad | 0 .../_description_gateway.ad | 0 ...escription_grafana-historian-datasource.ad | 0 .../_description_historian-modele.ad | 0 .../_description_integration-tests.ad | 0 .../_description_loader.ad | 0 .../_description_logisland-timeseries.ad | 0 .../_description_timeseries.ad | 0 .../architecture/asciidoc/fr/architecture.ad | 0 docs/{ => pdf}/data-historian.pdf | Bin .../generated-docs/html/en/architecture.html | 0 .../generated-docs/html/en/rest-api.html | 0 .../generated-docs/html/en/userguide.html | 0 .../generated-docs/html/fr/architecture.html | 0 .../generated-docs/html/fr/rest-api.html | 0 .../generated-docs/html/fr/userguide.html | 0 .../generated-docs/pdf/en/architecture.pdf | Bin .../generated-docs/pdf/en/rest-api.pdf | Bin .../generated-docs/pdf/en/userguide.pdf | Bin .../generated-docs/pdf/fr/architecture.pdf | Bin .../pdf/fr/exemple_spark_api.pdf | Bin .../generated-docs/pdf/fr/rest-api.pdf | Bin .../generated-docs/pdf/fr/spark-api.pdf | Bin .../generated-docs/pdf/fr/userguide.pdf | Bin docs/pdf/index.md | 24 + docs/{ => pdf}/plaquette-historian.pdf | Bin docs/{ => pdf}/plaquette.pages | Bin docs/{ => pdf}/plaquette.pdf | Bin .../images/CSV_before_transformations.png | Bin .../resources/images/chunkified_data.png | Bin .../images/data inejected in solr.png | Bin .../images/datasource_historian_setup.png | Bin .../images/grafana_dashboard_add_tag.png | Bin .../grafana_dashboard_all_happiness.png | Bin ...fana_dashboard_all_happiness_timerange.png | Bin .../grafana_dashboard_france_happiness.png | Bin .../images/grafana_graph_config_exemple.png | Bin .../images/grafana_ui_create_dashboard.png | Bin .../images/grafana_ui_datasource.png | Bin .../images/historian-3months-sampling.png | Bin .../images/historian-6hours-sampling.png | Bin .../images/historian-architecture.png | Bin .../resources/images/historian-live.png | Bin .../resources/images/historian-poster.png | Bin docs/{ => pdf}/resources/images/logo.png | Bin .../images/message-bus-it-incident.png | Bin .../resources/images/reader_transormation.png | Bin .../images/screenshot_install_mono_noeud.png | Bin .../images/screenshot_install_standalone.png | Bin .../images/screenshot_install_succeeded.png | Bin docs/{ => pdf}/resources/images/solr-gui.png | Bin docs/{ => pdf}/resources/themes/hurence.yml | 0 .../rest-api/asciidoc/en/_grafana-api.ad | 0 .../asciidoc/en/_grafana-hurence-api.ad | 0 .../_grafana-hurence-annotations-endpoint.ad | 0 .../_grafana-hurence-query-endpoint.ad | 0 .../_grafana-hurence-root-endpoint.ad | 0 .../_grafana-hurence-search-endpoint.ad | 0 .../_grafana-hurence-search-tags-endpoint.ad | 0 ..._grafana-hurence-search-values-endpoint.ad | 0 .../asciidoc/en/_grafana-simplejson-api.ad | 0 ...grafana-simplejson-annotations-endpoint.ad | 0 .../_grafana-simplejson-query-endpoint.ad | 0 .../_grafana-simplejson-root-endpoint.ad | 0 .../_grafana-simplejson-search-endpoint.ad | 0 .../_grafana-simplejson-tag-keys-endpoint.ad | 0 ..._grafana-simplejson-tag-values-endpoint.ad | 0 .../rest-api/asciidoc/en/_main-api.ad | 0 .../en/_main-endpoints/_analytics-endpoint.ad | 0 .../_main-endpoints/_export-csv-endpoint.ad | 0 .../_main-endpoints/_import-csv-endpoint.ad | 0 .../_main-endpoints/_import-json-endpoint.ad | 0 .../rest-api/asciidoc/en/rest-api.ad | 0 .../rest-api/asciidoc/fr/_grafana-api.ad | 0 .../asciidoc/fr/_grafana-hurence-api.ad | 0 .../_grafana-hurence-annotations-endpoint.ad | 0 .../_grafana-hurence-query-endpoint.ad | 0 .../_grafana-hurence-root-endpoint.ad | 0 .../_grafana-hurence-search-endpoint.ad | 0 .../_grafana-hurence-search-tags-endpoint.ad | 0 ..._grafana-hurence-search-values-endpoint.ad | 0 .../asciidoc/fr/_grafana-simplejson-api.ad | 0 ...grafana-simplejson-annotations-endpoint.ad | 0 .../_grafana-simplejson-query-endpoint.ad | 0 .../_grafana-simplejson-root-endpoint.ad | 0 .../_grafana-simplejson-search-endpoint.ad | 0 .../_grafana-simplejson-tag-keys-endpoint.ad | 0 ..._grafana-simplejson-tag-values-endpoint.ad | 0 .../rest-api/asciidoc/fr/_main-api.ad | 0 .../fr/_main-endpoints/_analytics-endpoint.ad | 0 .../_main-endpoints/_export-csv-endpoint.ad | 0 .../_main-endpoints/_import-csv-endpoint.ad | 0 .../_main-endpoints/_import-json-endpoint.ad | 0 .../rest-api/asciidoc/fr/rest-api.ad | 0 .../asciidoc/fr/exemple_spark_api.ad | 0 .../spark-api/asciidoc/fr/spark-api.ad | 0 ...based pattern discovery in time series.pdf | Bin ...ation Using SAX and Vector Space Model.pdf | Bin .../Motif-Based Period Detection.pdf | Bin .../Pattern Recognition in Time Series.pdf | Bin docs/{ => pdf}/stateofart/SAX.ppt | Bin docs/{ => pdf}/tutorials/getting-started.md | 0 .../userguide/asciidoc/en/_concepts.ad | 0 .../asciidoc/en/_description_conf_file.ad | 0 .../userguide/asciidoc/en/_installation.ad | 0 .../en/_installation_historian_part_1.ad | 0 .../en/_installation_historian_part_2.ad | 0 .../asciidoc/en/_installation_production.ad | 0 .../asciidoc/en/_installation_standalone.ad | 0 .../userguide/asciidoc/en/_introduction.ad | 0 .../userguide/asciidoc/en/_restart.ad | 0 docs/{ => pdf}/userguide/asciidoc/en/_stop.ad | 0 .../userguide/asciidoc/en/_utilisation.ad | 0 .../userguide/asciidoc/en/userguide.ad | 0 .../userguide/asciidoc/fr/_concepts.ad | 0 .../asciidoc/fr/_description_conf_file.ad | 0 .../userguide/asciidoc/fr/_installation.ad | 0 .../fr/_installation_historian_part_1.ad | 0 .../fr/_installation_historian_part_2.ad | 0 .../asciidoc/fr/_installation_production.ad | 0 .../asciidoc/fr/_installation_standalone.ad | 0 .../userguide/asciidoc/fr/_introduction.ad | 0 .../userguide/asciidoc/fr/_restart.ad | 0 docs/{ => pdf}/userguide/asciidoc/fr/_stop.ad | 0 .../userguide/asciidoc/fr/_utilisation.ad | 0 .../userguide/asciidoc/fr/userguide.ad | 0 docs/update_bootstrap.sh | 19 + 273 files changed, 9203 insertions(+), 35 deletions(-) create mode 100755 docs/404.html create mode 100755 docs/CONTRIBUTING.md create mode 100755 docs/Gemfile create mode 100755 docs/LICENSE.md mode change 100644 => 100755 docs/README.md mode change 100644 => 100755 docs/_config.yml create mode 100755 docs/_includes/footer.html create mode 100755 docs/_includes/head.html create mode 100755 docs/_includes/header.html create mode 100755 docs/_layouts/default.html create mode 100755 docs/_layouts/home.html create mode 100755 docs/_layouts/page.html create mode 100755 docs/_layouts/post.html create mode 100755 docs/_sass/_bootstrap_customization.scss create mode 100755 docs/_sass/_syntax-highlighting.scss create mode 100755 docs/_sass/_variables.scss create mode 100755 docs/_sass/bootstrap-4-jekyll/_bootstrap-4-jekyll.scss create mode 100755 docs/_sass/bootstrap/__DO_NOT_MODIFY create mode 100755 docs/_sass/bootstrap/_alert.scss create mode 100755 docs/_sass/bootstrap/_badge.scss create mode 100755 docs/_sass/bootstrap/_breadcrumb.scss create mode 100755 docs/_sass/bootstrap/_button-group.scss create mode 100755 docs/_sass/bootstrap/_buttons.scss create mode 100755 docs/_sass/bootstrap/_card.scss create mode 100755 docs/_sass/bootstrap/_carousel.scss create mode 100755 docs/_sass/bootstrap/_close.scss create mode 100755 docs/_sass/bootstrap/_code.scss create mode 100755 docs/_sass/bootstrap/_custom-forms.scss create mode 100755 docs/_sass/bootstrap/_dropdown.scss create mode 100755 docs/_sass/bootstrap/_forms.scss create mode 100755 docs/_sass/bootstrap/_functions.scss create mode 100755 docs/_sass/bootstrap/_grid.scss create mode 100755 docs/_sass/bootstrap/_images.scss create mode 100755 docs/_sass/bootstrap/_input-group.scss create mode 100755 docs/_sass/bootstrap/_jumbotron.scss create mode 100755 docs/_sass/bootstrap/_list-group.scss create mode 100755 docs/_sass/bootstrap/_media.scss create mode 100755 docs/_sass/bootstrap/_mixins.scss create mode 100755 docs/_sass/bootstrap/_modal.scss create mode 100755 docs/_sass/bootstrap/_nav.scss create mode 100755 docs/_sass/bootstrap/_navbar.scss create mode 100755 docs/_sass/bootstrap/_pagination.scss create mode 100755 docs/_sass/bootstrap/_popover.scss create mode 100755 docs/_sass/bootstrap/_print.scss create mode 100755 docs/_sass/bootstrap/_progress.scss create mode 100755 docs/_sass/bootstrap/_reboot.scss create mode 100755 docs/_sass/bootstrap/_root.scss create mode 100755 docs/_sass/bootstrap/_spinners.scss create mode 100755 docs/_sass/bootstrap/_tables.scss create mode 100755 docs/_sass/bootstrap/_toasts.scss create mode 100755 docs/_sass/bootstrap/_tooltip.scss create mode 100755 docs/_sass/bootstrap/_transitions.scss create mode 100755 docs/_sass/bootstrap/_type.scss create mode 100755 docs/_sass/bootstrap/_utilities.scss create mode 100755 docs/_sass/bootstrap/_variables.scss create mode 100755 docs/_sass/bootstrap/bootstrap-grid.scss create mode 100755 docs/_sass/bootstrap/bootstrap-reboot.scss create mode 100755 docs/_sass/bootstrap/bootstrap.scss create mode 100755 docs/_sass/bootstrap/mixins/_alert.scss create mode 100755 docs/_sass/bootstrap/mixins/_background-variant.scss create mode 100755 docs/_sass/bootstrap/mixins/_badge.scss create mode 100755 docs/_sass/bootstrap/mixins/_border-radius.scss create mode 100755 docs/_sass/bootstrap/mixins/_box-shadow.scss create mode 100755 docs/_sass/bootstrap/mixins/_breakpoints.scss create mode 100755 docs/_sass/bootstrap/mixins/_buttons.scss create mode 100755 docs/_sass/bootstrap/mixins/_caret.scss create mode 100755 docs/_sass/bootstrap/mixins/_clearfix.scss create mode 100755 docs/_sass/bootstrap/mixins/_deprecate.scss create mode 100755 docs/_sass/bootstrap/mixins/_float.scss create mode 100755 docs/_sass/bootstrap/mixins/_forms.scss create mode 100755 docs/_sass/bootstrap/mixins/_gradients.scss create mode 100755 docs/_sass/bootstrap/mixins/_grid-framework.scss create mode 100755 docs/_sass/bootstrap/mixins/_grid.scss create mode 100755 docs/_sass/bootstrap/mixins/_hover.scss create mode 100755 docs/_sass/bootstrap/mixins/_image.scss create mode 100755 docs/_sass/bootstrap/mixins/_list-group.scss create mode 100755 docs/_sass/bootstrap/mixins/_lists.scss create mode 100755 docs/_sass/bootstrap/mixins/_nav-divider.scss create mode 100755 docs/_sass/bootstrap/mixins/_pagination.scss create mode 100755 docs/_sass/bootstrap/mixins/_reset-text.scss create mode 100755 docs/_sass/bootstrap/mixins/_resize.scss create mode 100755 docs/_sass/bootstrap/mixins/_screen-reader.scss create mode 100755 docs/_sass/bootstrap/mixins/_size.scss create mode 100755 docs/_sass/bootstrap/mixins/_table-row.scss create mode 100755 docs/_sass/bootstrap/mixins/_text-emphasis.scss create mode 100755 docs/_sass/bootstrap/mixins/_text-hide.scss create mode 100755 docs/_sass/bootstrap/mixins/_text-truncate.scss create mode 100755 docs/_sass/bootstrap/mixins/_transition.scss create mode 100755 docs/_sass/bootstrap/mixins/_visibility.scss create mode 100755 docs/_sass/bootstrap/utilities/_align.scss create mode 100755 docs/_sass/bootstrap/utilities/_background.scss create mode 100755 docs/_sass/bootstrap/utilities/_borders.scss create mode 100755 docs/_sass/bootstrap/utilities/_clearfix.scss create mode 100755 docs/_sass/bootstrap/utilities/_display.scss create mode 100755 docs/_sass/bootstrap/utilities/_embed.scss create mode 100755 docs/_sass/bootstrap/utilities/_flex.scss create mode 100755 docs/_sass/bootstrap/utilities/_float.scss create mode 100755 docs/_sass/bootstrap/utilities/_interactions.scss create mode 100755 docs/_sass/bootstrap/utilities/_overflow.scss create mode 100755 docs/_sass/bootstrap/utilities/_position.scss create mode 100755 docs/_sass/bootstrap/utilities/_screenreaders.scss create mode 100755 docs/_sass/bootstrap/utilities/_shadows.scss create mode 100755 docs/_sass/bootstrap/utilities/_sizing.scss create mode 100755 docs/_sass/bootstrap/utilities/_spacing.scss create mode 100755 docs/_sass/bootstrap/utilities/_stretched-link.scss create mode 100755 docs/_sass/bootstrap/utilities/_text.scss create mode 100755 docs/_sass/bootstrap/utilities/_visibility.scss create mode 100755 docs/_sass/bootstrap/vendor/_rfs.scss create mode 100755 docs/assets/javascript/bootstrap/__DO_NOT_MODIFY create mode 100755 docs/assets/javascript/bootstrap/bootstrap.bundle.min.js create mode 100755 docs/assets/javascript/bootstrap/bootstrap.bundle.min.js.map create mode 100755 docs/assets/javascript/bootstrap/jquery.min.js create mode 100755 docs/assets/javascript/bootstrap/jquery.min.map create mode 100755 docs/assets/main.scss mode change 100644 => 100755 docs/index.md create mode 100755 docs/package-lock.json create mode 100755 docs/package.json create mode 100644 docs/pdf/README.md rename docs/{ => pdf}/architecture.graffle/image1.tiff (100%) rename docs/{ => pdf}/architecture.graffle/image11.tiff (100%) rename docs/{ => pdf}/architecture.graffle/image13.tiff (100%) rename docs/{ => pdf}/architecture.graffle/image14.tiff (100%) rename docs/{ => pdf}/architecture.graffle/image15.tiff (100%) rename docs/{ => pdf}/architecture.graffle/image20.tiff (100%) rename docs/{ => pdf}/architecture.graffle/image23.tiff (100%) rename docs/{ => pdf}/architecture.graffle/image24.tiff (100%) rename docs/{ => pdf}/architecture.graffle/image25.tiff (100%) rename docs/{ => pdf}/architecture.graffle/image26.tiff (100%) rename docs/{ => pdf}/architecture.graffle/image27.tiff (100%) rename docs/{ => pdf}/architecture.graffle/image29.png (100%) rename docs/{ => pdf}/architecture.graffle/image30.png (100%) rename docs/{ => pdf}/architecture.graffle/image31.png (100%) rename docs/{ => pdf}/architecture.graffle/image34.png (100%) rename docs/{ => pdf}/architecture.graffle/image35.png (100%) rename docs/{ => pdf}/architecture.graffle/image4.tiff (100%) rename docs/{ => pdf}/architecture.graffle/image5.tiff (100%) rename docs/{ => pdf}/architecture.graffle/image6.png (100%) rename docs/{ => pdf}/architecture/asciidoc/en/_description_modules.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/en/_modules-description/_description_gateway.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/en/_modules-description/_description_grafana-historian-datasource.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/en/_modules-description/_description_historian-modele.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/en/_modules-description/_description_integration-tests.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/en/_modules-description/_description_loader.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/en/_modules-description/_description_logisland-timeseries.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/en/_modules-description/_description_timeseries.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/en/architecture.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/fr/_description_modules.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/fr/_modules-description/_description_gateway.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/fr/_modules-description/_description_grafana-historian-datasource.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/fr/_modules-description/_description_historian-modele.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/fr/_modules-description/_description_integration-tests.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/fr/_modules-description/_description_loader.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/fr/_modules-description/_description_logisland-timeseries.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/fr/_modules-description/_description_timeseries.ad (100%) rename docs/{ => pdf}/architecture/asciidoc/fr/architecture.ad (100%) rename docs/{ => pdf}/data-historian.pdf (100%) rename docs/{ => pdf}/generated-docs/html/en/architecture.html (100%) rename docs/{ => pdf}/generated-docs/html/en/rest-api.html (100%) rename docs/{ => pdf}/generated-docs/html/en/userguide.html (100%) rename docs/{ => pdf}/generated-docs/html/fr/architecture.html (100%) rename docs/{ => pdf}/generated-docs/html/fr/rest-api.html (100%) rename docs/{ => pdf}/generated-docs/html/fr/userguide.html (100%) rename docs/{ => pdf}/generated-docs/pdf/en/architecture.pdf (100%) rename docs/{ => pdf}/generated-docs/pdf/en/rest-api.pdf (100%) rename docs/{ => pdf}/generated-docs/pdf/en/userguide.pdf (100%) rename docs/{ => pdf}/generated-docs/pdf/fr/architecture.pdf (100%) rename docs/{ => pdf}/generated-docs/pdf/fr/exemple_spark_api.pdf (100%) rename docs/{ => pdf}/generated-docs/pdf/fr/rest-api.pdf (100%) rename docs/{ => pdf}/generated-docs/pdf/fr/spark-api.pdf (100%) rename docs/{ => pdf}/generated-docs/pdf/fr/userguide.pdf (100%) create mode 100644 docs/pdf/index.md rename docs/{ => pdf}/plaquette-historian.pdf (100%) rename docs/{ => pdf}/plaquette.pages (100%) rename docs/{ => pdf}/plaquette.pdf (100%) rename docs/{ => pdf}/resources/images/CSV_before_transformations.png (100%) rename docs/{ => pdf}/resources/images/chunkified_data.png (100%) rename docs/{ => pdf}/resources/images/data inejected in solr.png (100%) rename docs/{ => pdf}/resources/images/datasource_historian_setup.png (100%) rename docs/{ => pdf}/resources/images/grafana_dashboard_add_tag.png (100%) rename docs/{ => pdf}/resources/images/grafana_dashboard_all_happiness.png (100%) rename docs/{ => pdf}/resources/images/grafana_dashboard_all_happiness_timerange.png (100%) rename docs/{ => pdf}/resources/images/grafana_dashboard_france_happiness.png (100%) rename docs/{ => pdf}/resources/images/grafana_graph_config_exemple.png (100%) rename docs/{ => pdf}/resources/images/grafana_ui_create_dashboard.png (100%) rename docs/{ => pdf}/resources/images/grafana_ui_datasource.png (100%) rename docs/{ => pdf}/resources/images/historian-3months-sampling.png (100%) rename docs/{ => pdf}/resources/images/historian-6hours-sampling.png (100%) rename docs/{ => pdf}/resources/images/historian-architecture.png (100%) rename docs/{ => pdf}/resources/images/historian-live.png (100%) rename docs/{ => pdf}/resources/images/historian-poster.png (100%) rename docs/{ => pdf}/resources/images/logo.png (100%) rename docs/{ => pdf}/resources/images/message-bus-it-incident.png (100%) rename docs/{ => pdf}/resources/images/reader_transormation.png (100%) rename docs/{ => pdf}/resources/images/screenshot_install_mono_noeud.png (100%) rename docs/{ => pdf}/resources/images/screenshot_install_standalone.png (100%) rename docs/{ => pdf}/resources/images/screenshot_install_succeeded.png (100%) rename docs/{ => pdf}/resources/images/solr-gui.png (100%) rename docs/{ => pdf}/resources/themes/hurence.yml (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-api.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-hurence-api.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-hurence-endpoints/_grafana-hurence-annotations-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-hurence-endpoints/_grafana-hurence-query-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-hurence-endpoints/_grafana-hurence-root-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-hurence-endpoints/_grafana-hurence-search-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-hurence-endpoints/_grafana-hurence-search-tags-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-hurence-endpoints/_grafana-hurence-search-values-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-simplejson-api.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-simplejson-endpoints/_grafana-simplejson-annotations-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-simplejson-endpoints/_grafana-simplejson-query-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-simplejson-endpoints/_grafana-simplejson-root-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-simplejson-endpoints/_grafana-simplejson-search-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-simplejson-endpoints/_grafana-simplejson-tag-keys-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_grafana-simplejson-endpoints/_grafana-simplejson-tag-values-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_main-api.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_main-endpoints/_analytics-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_main-endpoints/_export-csv-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_main-endpoints/_import-csv-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/_main-endpoints/_import-json-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/en/rest-api.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-api.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-hurence-api.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-hurence-endpoints/_grafana-hurence-annotations-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-hurence-endpoints/_grafana-hurence-query-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-hurence-endpoints/_grafana-hurence-root-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-hurence-endpoints/_grafana-hurence-search-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-hurence-endpoints/_grafana-hurence-search-tags-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-hurence-endpoints/_grafana-hurence-search-values-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-simplejson-api.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-simplejson-endpoints/_grafana-simplejson-annotations-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-simplejson-endpoints/_grafana-simplejson-query-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-simplejson-endpoints/_grafana-simplejson-root-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-simplejson-endpoints/_grafana-simplejson-search-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-simplejson-endpoints/_grafana-simplejson-tag-keys-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_grafana-simplejson-endpoints/_grafana-simplejson-tag-values-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_main-api.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_main-endpoints/_analytics-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_main-endpoints/_export-csv-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_main-endpoints/_import-csv-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/_main-endpoints/_import-json-endpoint.ad (100%) rename docs/{ => pdf}/rest-api/asciidoc/fr/rest-api.ad (100%) rename docs/{ => pdf}/spark-api/asciidoc/fr/exemple_spark_api.ad (100%) rename docs/{ => pdf}/spark-api/asciidoc/fr/spark-api.ad (100%) rename docs/{ => pdf}/stateofart/Grammar-based pattern discovery in time series.pdf (100%) rename docs/{ => pdf}/stateofart/Interpretable Time Series Classification Using SAX and Vector Space Model.pdf (100%) rename docs/{ => pdf}/stateofart/Motif-Based Period Detection.pdf (100%) rename docs/{ => pdf}/stateofart/Pattern Recognition in Time Series.pdf (100%) rename docs/{ => pdf}/stateofart/SAX.ppt (100%) rename docs/{ => pdf}/tutorials/getting-started.md (100%) rename docs/{ => pdf}/userguide/asciidoc/en/_concepts.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/en/_description_conf_file.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/en/_installation.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/en/_installation_historian_part_1.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/en/_installation_historian_part_2.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/en/_installation_production.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/en/_installation_standalone.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/en/_introduction.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/en/_restart.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/en/_stop.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/en/_utilisation.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/en/userguide.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/fr/_concepts.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/fr/_description_conf_file.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/fr/_installation.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/fr/_installation_historian_part_1.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/fr/_installation_historian_part_2.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/fr/_installation_production.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/fr/_installation_standalone.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/fr/_introduction.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/fr/_restart.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/fr/_stop.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/fr/_utilisation.ad (100%) rename docs/{ => pdf}/userguide/asciidoc/fr/userguide.ad (100%) create mode 100755 docs/update_bootstrap.sh diff --git a/docs/404.html b/docs/404.html new file mode 100755 index 00000000..f756ee68 --- /dev/null +++ b/docs/404.html @@ -0,0 +1,10 @@ +--- +layout: default +--- + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md new file mode 100755 index 00000000..fb6044c8 --- /dev/null +++ b/docs/CONTRIBUTING.md @@ -0,0 +1,85 @@ +# Contributing to this project + +* [Contributors Agreement](#user-content-contributors-agreement) +* [Introduction](#Introduction) + * [I don't want to read this whole thing I just have a question!!!](#user-content-i-dont-want-to-read-this-whole-thing-i-just-have-a-question) +* [How Can I Contribute?](#user-content-how-can-i-contribute) + * [Reporting Bugs](#user-content-reporting-bugs) + * [Suggesting Enhancements](#user-content-suggesting-enhancements) + * [Creating Pull Requests](#user-content-creating-pull-requests) + +## Contributors Agreement + +By submitting patches to this project you agree to allow them to be redistributed under the project's license, according to the normal forms and usages of the open-source community. + +## Introduction + +First off, thank you for considering contributing to this project. It's people like you that make it such a great tool. + +Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests. + +This is an open source project and we love to receive contributions from our community — you! There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into the main project itself. + +### I don't want to read this whole thing I just have a question!!! + +We currently allow our users to use the issue tracker for support questions. But please be wary that maintaining an open source project can take a lot of time from the maintainers. If asking for a support question, state it clearly and take the time to explain your problem properly. Also, if your problem is not strictly related to this project we recommend you to use Stack Overlow instead. + +## How Can I Contribute? + +### Reporting Bugs + +Before creating bug reports, please check the existing bug reports as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible. + +#### How Do I Submit A (Good) Bug Report? + +Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue on the project's repository and provide the following information. + +Explain the problem and include additional details to help maintainers reproduce the problem: + +* **Use a clear and descriptive title** for the issue to identify the problem. +* **Describe the exact steps which reproduce the problem** in as many details as possible. For example, start by explaining how you used the project. When listing steps, **don't just say what you did, but explain how you did it**. +* **Provide specific examples to demonstrate the steps**. It's always better to get more information. You can include links to files or GitHub projects, copy/pasteable snippets or even print screens or animated GIFS. If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). +* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior. +* **Explain which behavior you expected to see instead and why.** +* **If the problem wasn't triggered by a specific action**, describe what you were doing before the problem happened and share more information using the guidelines below. + +Provide more context by answering these questions: + +* **Did the problem start happening recently** (e.g. after updating to a new version) or was this always a problem? +* If the problem started happening recently, **can you reproduce the problem in an older version?** What's the most recent version in which the problem doesn't happen? +* **Can you reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens. + +Include details about your configuration and environment: + +* **Which version of the project are you using?** +* **What's the name and version of the OS you're using**? +* **Any other information that could be useful about you environment** + +### Suggesting Enhancements + +This section guides you through submitting an enhancement suggestion for this project, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion and find related suggestions. + +Before creating enhancement suggestions, please check the list of enhancements suggestions in the issue tracker as you might find out that you don't need to create one. When you are creating an enhancement suggestion, please include as many details as possible. + +#### How Do I Submit A (Good) Enhancement Suggestion? + +Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue on the project's repository and provide the following information: + +* **Use a clear and descriptive title** for the issue to identify the suggestion. +* **Provide a step-by-step description of the suggested enhancement** in as many details as possible. +* **Provide specific examples to demonstrate the steps**. It's always better to get more information. You can include links to files or GitHub projects, copy/pasteable snippets or even print screens or animated GIFS. If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). +* **Describe the current behavior** and **explain which behavior you expected to see instead** and why. +* **List some other similar projects where this enhancement exists.** +* **Specify which version of the project you're using.** +* **Specify the current environment you're using.** if this is a useful information. + +### Creating Pull Requests + +#### How Do I Submit A (Good) Pull Request? + +* **Be warned that the contributors agreement displayed on top of this document is applicable as soon as you create a pull request**. +* **Use a clear and descriptive title** for the pull request to state the improvement you made to the code or the bug you solved. +* **Provide a link to the related issue** if the pull request is a follow up of an existing bug report or enhancement suggestion. +* **Comment why this pull request represents an enhancement** and give a rationale explaining why you did it that way and not another way. +* **Use the same coding style than the one used in this project**. +* **Welcome suggestions from the maintainers to improve your pull request**. diff --git a/docs/Gemfile b/docs/Gemfile new file mode 100755 index 00000000..25ff3efe --- /dev/null +++ b/docs/Gemfile @@ -0,0 +1,16 @@ +source "https://rubygems.org" + +# Hello! This is where you manage which Jekyll version is used to run. +# When you want to use a different version, change it below, save the +# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: +# +# bundle exec jekyll serve +# +# This will help ensure the proper Jekyll version is running. +# Happy Jekylling! +#gem "jekyll", "~> 3.7.3" + + +# If you want to use GitHub Pages, remove the "gem "jekyll"" above and +# uncomment the line below. To upgrade, run `bundle update github-pages`. +gem "github-pages", group: :jekyll_plugins diff --git a/docs/LICENSE.md b/docs/LICENSE.md new file mode 100755 index 00000000..d28231d0 --- /dev/null +++ b/docs/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Nicolas Vanhoren + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/docs/README.md b/docs/README.md old mode 100644 new mode 100755 index 3706678f..cc976397 --- a/docs/README.md +++ b/docs/README.md @@ -1,24 +1,19 @@ -Building the documentation is simple. You must be in the docs folder and launch the maven process using this command: -``mvn process-resources`` +# Boostrap 4 Github Pages -Currently only the french and english documentation are built. +A [Bootstrap 4](https://getbootstrap.com/) template project for [Github Pages](https://pages.github.com/) and [Jekyll](https://jekyllrb.com/). -The process for editing is the following: the userguide is edited in asciidoc in all supported languages in a -sub-directory corresponding to the language locale. Asciidoctor processors are then used to take the asciidoc -files and generate the other formats. The maven process generates html5 and pdf versions at the moment. -Future versions will support other languages than French as well as the DocBook and EPub formats. +* A full Bootstrap 4 theme usable both on Github Pages and with a standalone Jekyll. +* Recompiles Bootstrap from SCSS files, which allows to customize Bootstrap's variables and use Bootstrap themes. +* Full support of Bootstrap's JavaScript plugins. +* Supports all features of Github Pages and Jekyll. -# Dev +[See the website for demonstration and documentation](https://nicolas-van.github.io/bootstrap-4-github-pages/). -If you are editing the doc and want to test if its work, you can run only your doc generation with this command +## Contribution -```shell script -mvn clean :@ -``` +[See the contribution guide.](CONTRIBUTING.md) -For example if you want to only generate the french user guide in pdf I would execute +## License -```shell script -mvn clean asciidoctor:process-asciidoc@fr-usermanual-to-pdf -``` +[See the license file.](LICENSE.md) diff --git a/docs/_config.yml b/docs/_config.yml old mode 100644 new mode 100755 index fb9f4745..12da324b --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,8 +1,42 @@ -theme: jekyll-theme-leap-day -title: Hurence Data Historian -description: big data timeseries storage and analytics -show_downloads: "true" -google_analytics: [Your Google Analytics tracking ID] -github: - zip_url: http://example.com/download.zip - hurence_url: http://www.hurence.com +# Welcome to Jekyll! +# +# This config file is meant for settings that affect your whole blog, values +# which you are expected to set up once and rarely edit after that. If you find +# yourself editing this file very often, consider using Jekyll's data files +# feature for the data you need to update frequently. +# +# For technical reasons, this file is *NOT* reloaded automatically when you use +# 'bundle exec jekyll serve'. If you change this file, please restart the server process. + +# Site settings +# These are used to personalize your new site. If you look in the HTML files, +# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. +# You can create any custom variable you would like, and they will be accessible +# in the templates via {{ site.myvariable }}. +title: Bootstrap 4 Github Pages +email: "" +description: >- # this means to ignore newlines until "baseurl:" + A Bootstrap 4 start up project for Jekyll and Github Pages +#baseurl: "" # the subpath of your site, e.g. /blog +#url: "" # the base hostname & protocol for your site, e.g. http://example.com +#twitter_username: jekyllrb +#github_username: jekyll + +repository: "nicolas-van/bootstrap-4-github-pages" + +# Build settings +plugins: + - jekyll-feed + - jekyll-sitemap + +# A list of the pages to display in the navigation bar +header_pages: + +# Exclude from processing. +# The following items will not be processed, by default. Create a custom list +# to override the default setting. +exclude: + - Gemfile + - Gemfile.lock + - node_modules + - update_boostrap.sh diff --git a/docs/_includes/footer.html b/docs/_includes/footer.html new file mode 100755 index 00000000..73c0a0c5 --- /dev/null +++ b/docs/_includes/footer.html @@ -0,0 +1,43 @@ + +
+
+ +

{{ site.title | escape }}

+ +
+ +
+
    +
  • + {%- if site.author -%} + {{ site.author | escape }} + {%- else -%} + {{ site.title | escape }} + {%- endif -%} +
  • + {%- if site.email -%} +
  • + + {{ site.email }} + +
  • + {%- endif -%} +
+
+ + +
+

{{- site.description | escape -}}

+ +

+ Powered by Bootstrap 4 Github Pages +

+

+ GitHub Repo stars +

+

+ +
+ +
+
diff --git a/docs/_includes/head.html b/docs/_includes/head.html new file mode 100755 index 00000000..1a800fbb --- /dev/null +++ b/docs/_includes/head.html @@ -0,0 +1,10 @@ + + + + + {%- seo -%} + + {%- feed_meta -%} + + + diff --git a/docs/_includes/header.html b/docs/_includes/header.html new file mode 100755 index 00000000..fcdb93dc --- /dev/null +++ b/docs/_includes/header.html @@ -0,0 +1,26 @@ + diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html new file mode 100755 index 00000000..d1e2f628 --- /dev/null +++ b/docs/_layouts/default.html @@ -0,0 +1,20 @@ + + + + {%- include head.html -%} + + + + {%- include header.html -%} + +
+
+ {{ content }} +
+
+ + {%- include footer.html -%} + + + + diff --git a/docs/_layouts/home.html b/docs/_layouts/home.html new file mode 100755 index 00000000..837ba0fb --- /dev/null +++ b/docs/_layouts/home.html @@ -0,0 +1,41 @@ +--- +layout: default +--- + +
+ + {%- if page.title -%} +
+

{{ page.title }}

+
+ {%- endif -%} + +
+ {{ content }} +
+ + {%- if site.posts.size > 0 -%} +

{{ page.list_title | default: "Posts" }}

+
    + {%- for post in site.posts -%} +
  • + + {%- assign date_format = "%b %-d, %Y" -%} + {{ post.date | date: date_format }} + +

    + + {{ post.title | escape }} + +

    + {%- if site.show_excerpts -%} + {{ post.excerpt }} + {%- endif -%} +
  • + {%- endfor -%} +
+ +

subscribe via RSS

+ {%- endif -%} + +
diff --git a/docs/_layouts/page.html b/docs/_layouts/page.html new file mode 100755 index 00000000..94cbc668 --- /dev/null +++ b/docs/_layouts/page.html @@ -0,0 +1,14 @@ +--- +layout: default +--- +
+ +
+

{{ page.title | escape }}

+
+ +
+ {{ content }} +
+ +
diff --git a/docs/_layouts/post.html b/docs/_layouts/post.html new file mode 100755 index 00000000..77ae73e8 --- /dev/null +++ b/docs/_layouts/post.html @@ -0,0 +1,23 @@ +--- +layout: default +--- +
+ +
+

{{ page.title | escape }}

+

+ + {%- if page.author -%} + • {{ page.author }} + {%- endif -%} +

+
+ +
+ {{ content }} +
+ +
diff --git a/docs/_sass/_bootstrap_customization.scss b/docs/_sass/_bootstrap_customization.scss new file mode 100755 index 00000000..3d5c3981 --- /dev/null +++ b/docs/_sass/_bootstrap_customization.scss @@ -0,0 +1,328 @@ +// This is the place to place Bootstrap-related CSS customizations. +// As example you can start by importing the _bootswatch.scss file from one of the +// theme provided by https://bootswatch.com . + +// Minty 4.3.1 +// Bootswatch + +// Variables =================================================================== + +$web-font-path: "https://fonts.googleapis.com/css?family=Montserrat" !default; +@import url($web-font-path); + +// Navbar ====================================================================== + +.navbar { + font-family: $headings-font-family; +} + +.bg-dark { + background-color: $secondary !important; +} + +.border-dark { + border-color: $secondary !important; +} + +// Buttons ===================================================================== + +.btn { + font-family: $headings-font-family; + + &, + &:hover { + color: $white; + } + + &-light, + &-light:hover { + color: $gray-700; + } + + &-link, + &-link:hover { + color: $primary; + } + + &-link.disabled:hover { + color: $gray-600; + } + + &-outline-primary { + color: $primary; + } + + &-outline-secondary { + color: $secondary; + } + + &-outline-success { + color: $success; + } + + &-outline-info { + color: $info; + } + + &-outline-warning { + color: $warning; + } + + &-outline-danger { + color: $danger; + } + + &-outline-dark { + color: $dark; + } + + &-outline-light { + color: $light; + } +} + +// Typography ================================================================== + +// Tables ====================================================================== + +.table { + + &-primary, + &-secondary, + &-success, + &-info, + &-warning, + &-danger { + color: #fff; + } + + &-primary { + &, > th, > td { + background-color: $primary; + } + } + + &-secondary { + &, > th, > td { + background-color: $secondary; + } + } + + &-light { + &, > th, > td { + background-color: $light; + } + } + + &-dark { + &, > th, > td { + background-color: $dark; + } + } + + &-success { + &, > th, > td { + background-color: $success; + } + } + + &-info { + &, > th, > td { + background-color: $info; + } + } + + &-danger { + &, > th, > td { + background-color: $danger; + } + } + + &-warning { + &, > th, > td { + background-color: $warning; + } + } + + &-active { + &, > th, > td { + background-color: $table-active-bg; + } + } + + &-hover { + + .table-primary:hover { + &, > th, > td { + background-color: darken($primary, 5%); + } + } + + .table-secondary:hover { + &, > th, > td { + background-color: darken($secondary, 5%); + } + } + + .table-light:hover { + &, > th, > td { + background-color: darken($light, 5%); + } + } + + .table-dark:hover { + &, > th, > td { + background-color: darken($dark, 5%); + } + } + + .table-success:hover { + &, > th, > td { + background-color: darken($success, 5%); + } + } + + .table-info:hover { + &, > th, > td { + background-color: darken($info, 5%); + } + } + + .table-danger:hover { + &, > th, > td { + background-color: darken($danger, 5%); + } + } + + .table-warning:hover { + &, > th, > td { + background-color: darken($warning, 5%); + } + } + + .table-active:hover { + &, > th, > td { + background-color: $table-active-bg; + } + } + } + + .thead-dark th { + background-color: $primary; + border-color: $table-border-color; + font-family: $headings-font-family; + } +} + +// Forms ======================================================================= + +legend { + font-family: $headings-font-family; +} + +// Navs ======================================================================== + +.dropdown-menu { + font-family: $font-family-sans-serif; +} + +.breadcrumb { + a { + color: $navbar-dark-color; + } + + a:hover { + color: $white; + text-decoration: none; + } +} + +// Indicators ================================================================== + +.alert { + color: $white; + + h1, h2, h3, h4, h5, h6 { + color: inherit; + } + + a, + .alert-link { + color: $white; + } + + &-primary { + &, > th, > td { + background-color: $primary; + } + } + + &-secondary { + &, > th, > td { + background-color: $secondary; + } + } + + &-success { + &, > th, > td { + background-color: $success; + } + } + + &-info { + &, > th, > td { + background-color: $info; + } + } + + &-danger { + &, > th, > td { + background-color: $danger; + } + } + + &-warning { + &, > th, > td { + background-color: $warning; + } + } + + &-dark { + &, > th, > td { + background-color: $dark; + } + } + + &-light { + &, > th, > td { + background-color: $light; + } + } + + &-light { + &, + & a:not(.btn), + & .alert-link { + color: $body-color; + } + } +} + +.badge { + color: $white; + + &-light { + color: $gray-700; + } +} + +// Progress bars =============================================================== + +// Containers ================================================================== + +.card, +.list-group-item { + h1, h2, h3, h4, h5, h6 { + color: inherit; + } +} \ No newline at end of file diff --git a/docs/_sass/_syntax-highlighting.scss b/docs/_sass/_syntax-highlighting.scss new file mode 100755 index 00000000..f34d8259 --- /dev/null +++ b/docs/_sass/_syntax-highlighting.scss @@ -0,0 +1,74 @@ +// Syntax highlighting styles, can be modified to match the theme + + +.highlight { + + color: #111; + + pre { + margin: 0; + padding: 8px 12px; + background: #eef; + border: 1px solid #e8e8e8; + } + + .c { color: #998; font-style: italic } // Comment + .err { color: #a61717; background-color: #e3d2d2 } // Error + .k { font-weight: bold } // Keyword + .o { font-weight: bold } // Operator + .cm { color: #998; font-style: italic } // Comment.Multiline + .cp { color: #999; font-weight: bold } // Comment.Preproc + .c1 { color: #998; font-style: italic } // Comment.Single + .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special + .gd { color: #000; background-color: #fdd } // Generic.Deleted + .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific + .ge { font-style: italic } // Generic.Emph + .gr { color: #a00 } // Generic.Error + .gh { color: #999 } // Generic.Heading + .gi { color: #000; background-color: #dfd } // Generic.Inserted + .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific + .go { color: #888 } // Generic.Output + .gp { color: #555 } // Generic.Prompt + .gs { font-weight: bold } // Generic.Strong + .gu { color: #aaa } // Generic.Subheading + .gt { color: #a00 } // Generic.Traceback + .kc { font-weight: bold } // Keyword.Constant + .kd { font-weight: bold } // Keyword.Declaration + .kp { font-weight: bold } // Keyword.Pseudo + .kr { font-weight: bold } // Keyword.Reserved + .kt { color: #458; font-weight: bold } // Keyword.Type + .m { color: #099 } // Literal.Number + .s { color: #d14 } // Literal.String + .na { color: #008080 } // Name.Attribute + .nb { color: #0086B3 } // Name.Builtin + .nc { color: #458; font-weight: bold } // Name.Class + .no { color: #008080 } // Name.Constant + .ni { color: #800080 } // Name.Entity + .ne { color: #900; font-weight: bold } // Name.Exception + .nf { color: #900; font-weight: bold } // Name.Function + .nn { color: #555 } // Name.Namespace + .nt { color: #000080 } // Name.Tag + .nv { color: #008080 } // Name.Variable + .ow { font-weight: bold } // Operator.Word + .w { color: #bbb } // Text.Whitespace + .mf { color: #099 } // Literal.Number.Float + .mh { color: #099 } // Literal.Number.Hex + .mi { color: #099 } // Literal.Number.Integer + .mo { color: #099 } // Literal.Number.Oct + .sb { color: #d14 } // Literal.String.Backtick + .sc { color: #d14 } // Literal.String.Char + .sd { color: #d14 } // Literal.String.Doc + .s2 { color: #d14 } // Literal.String.Double + .se { color: #d14 } // Literal.String.Escape + .sh { color: #d14 } // Literal.String.Heredoc + .si { color: #d14 } // Literal.String.Interpol + .sx { color: #d14 } // Literal.String.Other + .sr { color: #009926 } // Literal.String.Regex + .s1 { color: #d14 } // Literal.String.Single + .ss { color: #990073 } // Literal.String.Symbol + .bp { color: #999 } // Name.Builtin.Pseudo + .vc { color: #008080 } // Name.Variable.Class + .vg { color: #008080 } // Name.Variable.Global + .vi { color: #008080 } // Name.Variable.Instance + .il { color: #099 } // Literal.Number.Integer.Long +} diff --git a/docs/_sass/_variables.scss b/docs/_sass/_variables.scss new file mode 100755 index 00000000..6024e1ac --- /dev/null +++ b/docs/_sass/_variables.scss @@ -0,0 +1,111 @@ +// This is the place to place Bootstrap's variables overrides. +// As example you can start by importing the _variables.scss file from one of the +// theme provided by https://bootswatch.com . + + +// Some customization of the container class to have a better display in the guide. +// Don't hesitate to remove it to have a standard Bootstrap behavior +$container-max-widths: ( + sm: 540px, + md: 640px, + lg: 690px, + xl: 720px +) !default; + +// Minty 4.3.1 +// Bootswatch + +// +// Color system +// + +$white: #fff !default; +$gray-100: #f8f9fa !default; +$gray-200: #f7f7f9 !default; +$gray-300: #eceeef !default; +$gray-400: #ced4da !default; +$gray-500: #aaa !default; +$gray-600: #888 !default; +$gray-700: #5a5a5a !default; +$gray-800: #343a40 !default; +$gray-900: #212529 !default; +$black: #000 !default; + +$blue: #007bff !default; +$indigo: #6610f2 !default; +$purple: #6f42c1 !default; +$pink: #e83e8c !default; +$red: #FF7851 !default; +$orange: #fd7e14 !default; +$yellow: #FFCE67 !default; +$green: #56CC9D !default; +$teal: #20c997 !default; +$cyan: #6CC3D5 !default; + +$primary: #78C2AD !default; +$secondary: #F3969A !default; +$success: $green !default; +$info: $cyan !default; +$warning: $yellow !default; +$danger: $red !default; +$light: $gray-100 !default; +$dark: $gray-800 !default; + +$yiq-contrasted-threshold: 250 !default; + +// Body + +$body-color: $gray-600 !default; + +// Components + +$border-radius: .4rem !default; +$border-radius-lg: .6rem !default; +$border-radius-sm: .3rem !default; + +// Fonts + +$headings-font-family: "Montserrat", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default; +$headings-color: $gray-700 !default; + +// Tables + +$table-border-color: rgba(0,0,0,0.05) !default; + +// Dropdowns + +$dropdown-link-hover-color: $white !default; +$dropdown-link-hover-bg: $secondary !default; + +// Navbar + +$navbar-dark-color: rgba($white,.6) !default; +$navbar-dark-hover-color: $white !default; + +$navbar-light-color: rgba($black,.3) !default; +$navbar-light-hover-color: $gray-700 !default; +$navbar-light-active-color: $gray-700 !default; +$navbar-light-disabled-color: rgba($black,.1) !default; + +// Pagination + +$pagination-color: $white !default; +$pagination-bg: $primary !default; +$pagination-border-color: $primary !default; + +$pagination-hover-color: $white !default; +$pagination-hover-bg: $secondary !default; +$pagination-hover-border-color: $pagination-hover-bg !default; + +$pagination-active-bg: $secondary !default; +$pagination-active-border-color: $pagination-active-bg !default; + +$pagination-disabled-color: $white !default; +$pagination-disabled-bg: #CCE8E0 !default; +$pagination-disabled-border-color: $pagination-disabled-bg !default; + +// Breadcrumbs + +$breadcrumb-bg: $primary !default; +$breadcrumb-divider-color: $white !default; +$breadcrumb-active-color: $breadcrumb-divider-color !default; \ No newline at end of file diff --git a/docs/_sass/bootstrap-4-jekyll/_bootstrap-4-jekyll.scss b/docs/_sass/bootstrap-4-jekyll/_bootstrap-4-jekyll.scss new file mode 100755 index 00000000..74259777 --- /dev/null +++ b/docs/_sass/bootstrap-4-jekyll/_bootstrap-4-jekyll.scss @@ -0,0 +1,8 @@ +// Some CSS to ease the integration between Jekyll and Bootstrap 4. +// It is not recommended to edit this file. + +.page-content { + img { + max-width: 100%; + } +} diff --git a/docs/_sass/bootstrap/__DO_NOT_MODIFY b/docs/_sass/bootstrap/__DO_NOT_MODIFY new file mode 100755 index 00000000..e69de29b diff --git a/docs/_sass/bootstrap/_alert.scss b/docs/_sass/bootstrap/_alert.scss new file mode 100755 index 00000000..4aa1fc20 --- /dev/null +++ b/docs/_sass/bootstrap/_alert.scss @@ -0,0 +1,52 @@ +// +// Base styles +// + +.alert { + position: relative; + padding: $alert-padding-y $alert-padding-x; + margin-bottom: $alert-margin-bottom; + border: $alert-border-width solid transparent; + @include border-radius($alert-border-radius); +} + +// Headings for larger alerts +.alert-heading { + // Specified to prevent conflicts of changing $headings-color + color: inherit; +} + +// Provide class for links that match alerts +.alert-link { + font-weight: $alert-link-font-weight; +} + + +// Dismissible alerts +// +// Expand the right padding and account for the close button's positioning. + +.alert-dismissible { + padding-right: $close-font-size + $alert-padding-x * 2; + + // Adjust close link position + .close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: $alert-padding-y $alert-padding-x; + color: inherit; + } +} + + +// Alternate styles +// +// Generate contextual modifier classes for colorizing the alert. + +@each $color, $value in $theme-colors { + .alert-#{$color} { + @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level)); + } +} diff --git a/docs/_sass/bootstrap/_badge.scss b/docs/_sass/bootstrap/_badge.scss new file mode 100755 index 00000000..42c5d08d --- /dev/null +++ b/docs/_sass/bootstrap/_badge.scss @@ -0,0 +1,54 @@ +// Base class +// +// Requires one of the contextual, color modifier classes for `color` and +// `background-color`. + +.badge { + display: inline-block; + padding: $badge-padding-y $badge-padding-x; + @include font-size($badge-font-size); + font-weight: $badge-font-weight; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + @include border-radius($badge-border-radius); + @include transition($badge-transition); + + @at-root a#{&} { + @include hover-focus() { + text-decoration: none; + } + } + + // Empty badges collapse automatically + &:empty { + display: none; + } +} + +// Quick fix for badges in buttons +.btn .badge { + position: relative; + top: -1px; +} + +// Pill badges +// +// Make them extra rounded with a modifier to replace v3's badges. + +.badge-pill { + padding-right: $badge-pill-padding-x; + padding-left: $badge-pill-padding-x; + @include border-radius($badge-pill-border-radius); +} + +// Colors +// +// Contextual variations (linked badges get darker on :hover). + +@each $color, $value in $theme-colors { + .badge-#{$color} { + @include badge-variant($value); + } +} diff --git a/docs/_sass/bootstrap/_breadcrumb.scss b/docs/_sass/bootstrap/_breadcrumb.scss new file mode 100755 index 00000000..9c204c7d --- /dev/null +++ b/docs/_sass/bootstrap/_breadcrumb.scss @@ -0,0 +1,42 @@ +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: $breadcrumb-padding-y $breadcrumb-padding-x; + margin-bottom: $breadcrumb-margin-bottom; + @include font-size($breadcrumb-font-size); + list-style: none; + background-color: $breadcrumb-bg; + @include border-radius($breadcrumb-border-radius); +} + +.breadcrumb-item { + // The separator between breadcrumbs (by default, a forward-slash: "/") + + .breadcrumb-item { + padding-left: $breadcrumb-item-padding; + + &::before { + float: left; // Suppress inline spacings and underlining of the separator + padding-right: $breadcrumb-item-padding; + color: $breadcrumb-divider-color; + content: escape-svg($breadcrumb-divider); + } + } + + // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built + // without `