Support anyOf with primitive types and arrays

The current implementation only supports anyOf with schemas of type: object.
This proposal adds support for anyOf with the rest of the types (string, number, integer, boolean, array).
Considering the following spec (a very simplified version of the OpenAI API spec):
openapi: 3.0.0
info:
  title: OpenAI API
  version: "2.0.0"

paths:
  /completions:
    post:
      operationId: createCompletion
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateCompletionRequest"
      responses:
        "200":
          description: OK

components:
  schemas:
    CreateCompletionRequest:
      type: object
      properties:
        model:
          description: Model to use.
          anyOf:
            - $ref: "#/components/schemas/CustomModel"
            - $ref: "#/components/schemas/CatalogModel"
        prompt:
          description: The prompt(s) to generate completions for.
          oneOf:
            - $ref: "#/components/schemas/StringPrompt"
            - $ref: "#/components/schemas/StringListPrompt"
            - $ref: "#/components/schemas/IntListPrompt"
            - $ref: "#/components/schemas/IntListListPrompt"
      required:
        - model
        - prompt
    CustomModel:
      type: string
    CatalogModel:
      type: string
      enum:
        [
          "babbage-002",
          "davinci-002",
          "gpt-3.5-turbo-instruct",
          "text-davinci-003",
          "text-davinci-002",
          "text-davinci-001",
          "code-davinci-002",
          "text-curie-001",
          "text-babbage-001",
          "text-ada-001",
        ]
    StringPrompt:
      type: string
      default: ""
      example: "This is a test."
    StringListPrompt:
      type: array
      items:
        type: string
        default: ""
        example: "This is a test."
    IntListPrompt:
      type: array
      minItems: 1
      items:
        type: integer
      example: "[1212, 318, 257, 1332, 13]"
    IntListListPrompt:
      type: array
      minItems: 1
      items:
        type: array
        minItems: 1
        items:
          type: integer
      example: "[[1212, 318, 257, 1332, 13]]"

The ClientGenerator could generate the following code (simplified):
CreateCompletionRequest:
@freezed
class CreateCompletionRequest with _$CreateCompletionRequest {
  const CreateCompletionRequest._();

  const factory CreateCompletionRequest({
    @ModelConverter() required Model model,
    @PromptConverter() required Prompt prompt,
  }) = _CreateCompletionRequest;

  factory CreateCompletionRequest.fromJson(Map<String, dynamic> json) =>
      _$CreateCompletionRequestFromJson(json);
}

Model:
@freezed
sealed class Model with _$Model {
  const Model._();

  const factory Model.custom(String value) = UnionCustomModel;
  const factory Model.catalog(CatalogModel value) = UnionCatalogModel;

  factory Model.fromJson(Map<String, dynamic> json) => _$ModelFromJson(json);
}

enum CatalogModel {
  @JsonValue('babbage-002')
  babbage002,
  @JsonValue('davinci-002')
  davinci002,
  @JsonValue('gpt-3.5-turbo-instruct')
  gpt35TurboInstruct,
  @JsonValue('text-davinci-003')
  textDavinci003,
  @JsonValue('text-davinci-002')
  textDavinci002,
  @JsonValue('text-davinci-001')
  textDavinci001,
  @JsonValue('code-davinci-002')
  codeDavinci002,
  @JsonValue('text-curie-001')
  textCurie001,
  @JsonValue('text-babbage-001')
  textBabbage001,
  @JsonValue('text-ada-001')
  textAda001,
}

class ModelConverter implements JsonConverter<Model, Object> {
  const ModelConverter();

  @override
  Model fromJson(Object json) {
    throw UnimplementedError();
  }

  @override
  Object toJson(Model data) {
    return switch(data) {
      UnionCustomModel(value: final v) => v,
      UnionCatalogModel(value: final v) => _$CatalogModelEnumMap[v]!,
    };
  }
}

Prompt:
@freezed
sealed class Prompt with _$Prompt {
  const Prompt._();

  const factory Prompt.string(String value) = UnionStringPrompt;
  const factory Prompt.stringList(List<String> value) = UnionStringListPrompt;
  const factory Prompt.intList(List<int> value) = UnionIntListPrompt;
  const factory Prompt.intListList(List<List<int>> value) = UnionIntListListPrompt;

  factory Prompt.fromJson(Map<String, dynamic> json) => _$PromptFromJson(json);
}

class PromptConverter implements JsonConverter<Prompt, Object> {
  const PromptConverter();

  @override
  Prompt fromJson(Object json) {
    throw UnimplementedError();
  }

  @override
  Object toJson(Prompt data) {
    return switch(data) {
      UnionStringPrompt(value: final v) => v,
      UnionStringListPrompt(value: final v) => v,
      UnionIntListPrompt(value: final v) => v,
      UnionIntListListPrompt(value: final v) => v,
    };
  }
}

Usage example:
void main() async {
  const request1 = CreateCompletionRequest(
    model: Model.catalog(CatalogModel.textDavinci003),
    prompt: Prompt.string('My prompt'),
  );
  print(jsonEncode(request1.toJson()));
  // {"model":"text-davinci-003","prompt":"My prompt"}

  const request2 = CreateCompletionRequest(
    model: Model.custom('my-custom'),
    prompt: Prompt.stringList(['My prompt 1', 'My prompt 2']),
  );
  print(jsonEncode(request2.toJson()));
  // {"model":"my-custom","prompt":["My prompt 1","My prompt 2"]}

  const request3 = CreateCompletionRequest(
    model: Model.custom('my-custom'),
    prompt: Prompt.intListList([[1212, 318, 257, 1332, 13]]),
  );
  print(jsonEncode(request3.toJson()));
  // {"model":"my-custom","prompt":[[1212,318,257,1332,13]]}
}

Notes

The main addition is the generation of custom JsonConverters (e.g. ModelConverter and PromptConverter).

For a string, number, integer, boolean or an array of those, the converter only needs to extract the value
For an enum the converter needs to use the EnumMap class generated by json_serializable (e.g. CatalogModelEnumMap)
For an array of object, it needs to call the .toJson() for every item

The generator needs to add the custom JsonConverter annotation (e.g. @ModelConverter()) wherever the schema is used (e.g. CreateCompletionRequest)

Limitations

This proposal does not cover deserialization

@walsha2 let me know what you think

Might be a little tricky to implement, but seems like a reasonable add.
@davidmigloz can you provide the full OpenAPI spec that you provide above? I can take a stab at this and circle back in this issue on how that is looking.

I'm trying to generate a client for the OpenAI API (mainly focusing on Completions, Chat and Embeddings endpoints for now).
The snippet above is taken from the official openai/openai-openapi spec (with some refactoring of the schemas so that the generator generates proper class names).
I'm happy to help with the implementation.

I'm trying to generate a client for the OpenAI API (mainly focusing on Completions, Chat and Embeddings endpoints for now).

I have went ahead and added this as another test. That is a pretty comprehensive spec that should be supported out of the box, IMO. It actually did uncover some minor issues that I resolved and have an impact on this issue's feature request. So that's good.
Some robustness needed to be added to the core logic, but from what I can tell this is properly generating the types and not running into any errors (as of the latest changes). I didn't have any time to test against the OpenAI API, but the code looks good.
>>> make test

test/tmp/openai/
├── gen_client/
├── gen_schema/
├── gen_schema_single/
└── openai.json

with some refactoring of the schemas so that the generator generates proper class names

Without any refactoring, I am really curious to see how far we can get using just the information provided in the official spec. Mainly to see if there is enough information in there to robustly generate client/schema code on the fly.
Latest main
This was the first step! The resulting schema looks pretty good. Of course, the prompt is still dynamic and will need something like this issue in order to get that typed. Again, I want to see if we can take the original spec and do a little better than dynamic, then tackle your refactored version.
The model enum is reflected as a doc string at the moment and type hint denotes String - just as defined in the spec. What you show above with Model.custom/Model.catalog is entirely custom and would require a refactor like you did.
Will test with your sample spec next and see how things shake out!
// coverage:ignore-file
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint
// ignore_for_file: invalid_annotation_target
part of openai_schema;

// ==========================================
// CLASS: CreateCompletionRequest
// ==========================================

/// No Description
@freezed
class CreateCompletionRequest with _$CreateCompletionRequest {
  const CreateCompletionRequest._();

  /// Factory constructor for CreateCompletionRequest
  const factory CreateCompletionRequest({
    /// ID of the model to use. You can use the [List models](/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](/docs/models/overview) for descriptions of them.
    ///
    /// Possible values: [babbage-002, davinci-002, gpt-3.5-turbo-instruct, text-davinci-003, text-davinci-002, text-davinci-001, code-davinci-002, text-curie-001, text-babbage-001, text-ada-001]
    required String model,

    /// The prompt(s) to generate completions for, encoded as a string, array of strings, array of tokens, or array of token arrays.
    ///
    /// Note that <|endoftext|> is the document separator that the model sees during training, so if a prompt is not specified the model will generate as if from the beginning of a new document.
    required dynamic prompt,

    /// Generates `best_of` completions server-side and returns the "best" (the one with the highest log probability per token). Results cannot be streamed.
    ///
    /// When used with `n`, `best_of` controls the number of candidate completions and `n` specifies how many to return – `best_of` must be greater than `n`.
    ///
    /// **Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.
    @JsonKey(name: 'best_of') @Default(1) int? bestOf,

    /// Echo back the prompt in addition to the completion
    @Default(false) bool? echo,

    /// Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
    ///
    /// [See more information about frequency and presence penalties.](/docs/guides/gpt/parameter-details)
    @JsonKey(name: 'frequency_penalty') @Default(0.0) double? frequencyPenalty,

    /// Modify the likelihood of specified tokens appearing in the completion.
    ///
    /// Accepts a json object that maps tokens (specified by their token ID in the GPT tokenizer) to an associated bias value from -100 to 100. You can use this [tokenizer tool](/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.
    ///
    /// As an example, you can pass `{"50256": -100}` to prevent the <|endoftext|> token from being generated.
    @JsonKey(name: 'logit_bias') Map<String, int>? logitBias,

    /// Include the log probabilities on the `logprobs` most likely tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response.
    ///
    /// The maximum value for `logprobs` is 5.
    int? logprobs,

    /// The maximum number of [tokens](/tokenizer) to generate in the completion.
    ///
    /// The token count of your prompt plus `max_tokens` cannot exceed the model's context length. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.
    @JsonKey(name: 'max_tokens') @Default(16) int? maxTokens,

    /// How many completions to generate for each prompt.
    ///
    /// **Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.
    @Default(1) int? n,

    /// Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
    ///
    /// [See more information about frequency and presence penalties.](/docs/guides/gpt/parameter-details)
    @JsonKey(name: 'presence_penalty') @Default(0.0) double? presencePenalty,

    /// Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.
    dynamic stop,

    /// Whether to stream back partial progress. If set, tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions).
    @Default(false) bool? stream,

    /// The suffix that comes after a completion of inserted text.
    String? suffix,

    /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
    ///
    /// We generally recommend altering this or `top_p` but not both.
    @Default(1.0) double? temperature,

    /// An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
    ///
    /// We generally recommend altering this or `temperature` but not both.
    @JsonKey(name: 'top_p') @Default(1.0) double? topP,

    /// A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
    String? user,
  }) = _CreateCompletionRequest;

  /// Object construction from a JSON representation
  factory CreateCompletionRequest.fromJson(Map<String, dynamic> json) =>
      _$CreateCompletionRequestFromJson(json);

  /// List of all property names of schema
  static const List<String> propertyNames = [
    'model',
    'prompt',
    'best_of',
    'echo',
    'frequency_penalty',
    'logit_bias',
    'logprobs',
    'max_tokens',
    'n',
    'presence_penalty',
    'stop',
    'stream',
    'suffix',
    'temperature',
    'top_p',
    'user'
  ];

  /// Validation constants
  static const bestOfDefaultValue = 1;
  static const bestOfMinValue = 0;
  static const bestOfMaxValue = 20;
  static const frequencyPenaltyDefaultValue = 0.0;
  static const frequencyPenaltyMinValue = -2.0;
  static const frequencyPenaltyMaxValue = 2.0;
  static const logprobsMinValue = 0;
  static const logprobsMaxValue = 5;
  static const maxTokensDefaultValue = 16;
  static const maxTokensMinValue = 0;
  static const nDefaultValue = 1;
  static const nMinValue = 1;
  static const nMaxValue = 128;
  static const presencePenaltyDefaultValue = 0.0;
  static const presencePenaltyMinValue = -2.0;
  static const presencePenaltyMaxValue = 2.0;
  static const temperatureDefaultValue = 1.0;
  static const temperatureMinValue = 0.0;
  static const temperatureMaxValue = 2.0;
  static const topPDefaultValue = 1.0;
  static const topPMinValue = 0.0;
  static const topPMaxValue = 1.0;

  /// Perform validations on the schema property values
  String? validateSchema() {
    if (bestOf != null && bestOf! < bestOfMinValue) {
      return "The value of 'bestOf' cannot be < $bestOfMinValue";
    }
    if (bestOf != null && bestOf! > bestOfMaxValue) {
      return "The value of 'bestOf' cannot be > $bestOfMaxValue";
    }
    if (frequencyPenalty != null &&
        frequencyPenalty! < frequencyPenaltyMinValue) {
      return "The value of 'frequencyPenalty' cannot be < $frequencyPenaltyMinValue";
    }
    if (frequencyPenalty != null &&
        frequencyPenalty! > frequencyPenaltyMaxValue) {
      return "The value of 'frequencyPenalty' cannot be > $frequencyPenaltyMaxValue";
    }
    if (logprobs != null && logprobs! < logprobsMinValue) {
      return "The value of 'logprobs' cannot be < $logprobsMinValue";
    }
    if (logprobs != null && logprobs! > logprobsMaxValue) {
      return "The value of 'logprobs' cannot be > $logprobsMaxValue";
    }
    if (maxTokens != null && maxTokens! < maxTokensMinValue) {
      return "The value of 'maxTokens' cannot be < $maxTokensMinValue";
    }
    if (n != null && n! < nMinValue) {
      return "The value of 'n' cannot be < $nMinValue";
    }
    if (n != null && n! > nMaxValue) {
      return "The value of 'n' cannot be > $nMaxValue";
    }
    if (presencePenalty != null && presencePenalty! < presencePenaltyMinValue) {
      return "The value of 'presencePenalty' cannot be < $presencePenaltyMinValue";
    }
    if (presencePenalty != null && presencePenalty! > presencePenaltyMaxValue) {
      return "The value of 'presencePenalty' cannot be > $presencePenaltyMaxValue";
    }
    if (temperature != null && temperature! < temperatureMinValue) {
      return "The value of 'temperature' cannot be < $temperatureMinValue";
    }
    if (temperature != null && temperature! > temperatureMaxValue) {
      return "The value of 'temperature' cannot be > $temperatureMaxValue";
    }
    if (topP != null && topP! < topPMinValue) {
      return "The value of 'topP' cannot be < $topPMinValue";
    }
    if (topP != null && topP! > topPMaxValue) {
      return "The value of 'topP' cannot be > $topPMaxValue";
    }
    return null;
  }

  /// Map representation of object (not serialized)
  Map<String, dynamic> toMap() {
    return {
      'model': model,
      'prompt': prompt,
      'best_of': bestOf,
      'echo': echo,
      'frequency_penalty': frequencyPenalty,
      'logit_bias': logitBias,
      'logprobs': logprobs,
      'max_tokens': maxTokens,
      'n': n,
      'presence_penalty': presencePenalty,
      'stop': stop,
      'stream': stream,
      'suffix': suffix,
      'temperature': temperature,
      'top_p': topP,
      'user': user,
    };
  }
}

I have went ahead and added this as another test. That is a pretty comprehensive spec that should be supported out of the box, IMO. It actually did uncover some minor issues that I resolved and have an impact on this issue's feature request. So that's good.

Pretty good progress!

The model enum is reflected as a doc string at the moment and type hint denotes String - just as defined in the spec.

This is already a good improvement.

I didn't have any time to test against the OpenAI API, but the code looks good.

I've played a bit with the completions endpoint and these are the findings:
Server URL
Currently, the generator only takes the schema and host from the defined server. It ignores any defined path.
So for:
servers:
  - url: https://api.openai.com/v1

The generator generates:
final r = await _request(
  host: 'https://api.openai.com',
  path: '/completions',
  ...
);

(the v1 is not included)
CreateCompletionRequest
The generated class looks good. The only issue that I've encountered is that nulls are also serialized and OpenAI doesn't seem to like it.
Eg.
Calling:
final res = await client.createCompletion(
  request: CreateCompletionRequest(
    model: 'gpt-3.5-turbo-instruct',
    prompt: 'Repeat: This is a test',
  ),
);

Generates:
{
  "model": "gpt-3.5-turbo-instruct",
  "prompt": "Repeat: This is a test",
  "best_of": 1,
  "echo": false,
  "frequency_penalty": 0.0,
  "logit_bias": null,
  "logprobs": null,
  "max_tokens": 16,
  "n": 1,
  "presence_penalty": 0.0,
  "stop": null,
  "stream": false,
  "suffix": null,
  "temperature": 1.0,
  "top_p": 1.0,
  "user": null
}

But OpenAI replies with the following error:
OpenAIClientException({
  "uri": "https://api.openai.com/v1/completions",
  "method": "POST",
  "code": 400,
  "message": "Unsuccessful response",
  "body": {
    "error": {
      "message": "None is not of type 'object' - 'logit_bias'",
      "type": "invalid_request_error",
      "param": null,
      "code": null
    }
  }
})

I'm not sure what's the best default behaviour for the generator, should it include nulls or not?
I've checked dart-dio generator and it doesn't include them (it generates: @JsonKey(name: r'logit_bias', required: false, includeIfNull: false)).
Anyway, it's not a blocking issue as you can always configure include_if_null: false in the build.yaml file.
CreateCompletionResponse
The choices array is generated as List<Map<String, dynamic>> instead of a List of the inner object.
dart-dio generator creates a final List<CreateCompletionResponseChoicesInner> choices by default. So they concatenate the schema name (CreateCompletionResponse), plus the field (choices) plus Inner to create the class name of the inner object.

Published: https://pub.dev/packages/openapi_spec v0.6.0

Considering the following spec (a very simplified version of the OpenAI API spec):

The example you show above is very catered to trying to get this to work by manipulating the source schema.
I am more interested to see what can be done with the generic raw schema:
https://github.com/tazatechnology/openapi_spec/blob/46e1989944b7fdff6c2e9a579f2d609b6460a15a/test/openai/openai.yaml#L2452-L2473
Here, there is not much information to go off of, so along the same lines as #17 this could potentially result in the following. Where the union is just the union type if a title is not provided.
CreateCompletionRequestModel.string()
CreateCompletionRequestModel.enum()

Might be a little tricky to implement

Still feeling this out, but the comment above is holding true ha.
@davidmigloz Out of curiosity, how does dart-dio handle the code generation for the CreateCompletionRequest.model property? Just String? dynamic? Or does it create a union?

This means fully type-safe generated clients, great job! 🚀
I've tested most of the cases from the OpenAPI spec and it works properly (both on the schema generation and on the data serialization).
Some future improvements that may be worth considering:

As per the discussion in (https://github.com/tazatechnology/openapi_spec/issues/17#issuecomment-1785999020), it would be nice to use the title to be able to override the default union class name (e.g. from UnionCreateCompletionRequestModel to CompletionModel)
Option to customize the generated enum class (e.g. from CreateCompletionRequestModelEnum to CompletionModelCatalog)

With those two minor improvements, I should be able to generate a very fluent OpenAI client with very minor changes on their spec (basically by just adding some titles on their nested objects).
Let me know what you think, I can help out with the implementation.


DRAFT: gitlab-runner: 14.7.0 -> 14.8.0

Motivation for this change
https://gitlab.com/gitlab-org/gitlab-runner/blob/v14.8.0/CHANGELOG.md
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

/cc @bachp @zimbatm @globin @dlouzan

Ahh this seems to be the issue: https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/3314

Okay I've digged through all the errors slowly.
One thing, I can't find how to set environment variables during the build:

Any ideas? @bachp

@max-wittig See the commit I added on how to set the variable for tests. Unfortunatly I didn't figure out how to get all tests to pass as some expect to run in a git repo. For now I disabled the tests to get the build running, but I would like to have them enabled before merging.

@bachp You're commenting out of tests works. But I have no idea how to continue from here in this MR.


IPhone 4 doesn't work

IPhone 4 doesn't work (as advertized on the home page).
Using Safary on stock iOS 5.1
No errors in debug console, but the slide container is empty.
Maybe it's better to say smth like "works on Mobile Safary 7+", than ambiguous "iPhone 4".

Sure, I'll update the readme.


Save, read last saved time, loss for the model

Related to #270

:octocat: cibot: Thank you for posting issue #290. The person in charge will reply soon.

This should be done with changing model format file. so it is postphoned

Moved to #361


Add some basic unit tests using Jest.

Check each plugin provider can be loaded?
Check compiled lib can be loaded?

Done.


How to Integrate external python file

How to execute complex python script using this.

Hi, for using python scripts with TagUI -
If you just want to run a python file from TagUI without needing any integration, you can make use of the run step in TagUI to run the python file as part of the automation flow (e.g. run py D:\myfiles\sample.py).
If you need the python file to have outputs sent back to TagUI, then you will need to copy over the code and run them using the py step, and read the results back from the python script as needed via py_result.
I hope this helps.

@kensoh
I tried to run the the .py file from tagui but it didn't work can anyone please tell me what I am doing wrong
C:\Users\yash>C:\RPA\tagui\src\tagui C:\RPA\tagui\flows\samples\Mongo\testing.tag -n
START - automation started - Wed Apr 13 2022 14:04:15 GMT+0530 (India Standard Time)
run py C:\Users\yash\PycharmProjects\life_cycle Python_bots\democsv.py
FINISH - automation finished - 0.7s

If you are using run step, the syntax should be the following, because the Python command is python -
run python C:\Users\yash\PycharmProjects\life_cycle Python_bots\democsv.py

CC @ruthtxh

@kensoh  Sorry Sir but It is not working
C:\Users\yash>C:\RPA\tagui\src\tagui C:\RPA\tagui\flows\samples\Mongo\testing.tag -n
START - automation started - Wed Apr 13 2022 15:02:03 GMT+0530 (India Standard Time)
run python C:\Users\yash\PycharmProjects\life_cycle Python_bots\democsv.py
FINISH - automation finished - 0.4s

You can use the following to check on error message, and also try running the command directly from command prompt. My team-mate @ruthtxh will follow-up with you and assist this query because I've left AI Singapore.
run python C:\Users\yash\PycharmProjects\life_cycle Python_bots\democsv.py
echo `run_result`

@kensoh  okay Sir thank you

Hi @Shivang310 for me, due to how python was set up in my windows laptop I can launch python with the py command instead of python so this works for me:
run py filepath.py

As @kensoh pointed out, what is the error message you get when you echo the run result?

hi @ruthtxh actually my first error was solved and the file actually Started runing now I am working on the second error which is
File "C:\Users\yash\PycharmProjects\life_cycle_Python_bots\democsv.py", line 4, in
file = open("tabula-GradRight-test1.csv")
FileNotFoundError: [Errno 2] No such file or directory: 'tabula-GradRight-test1.csv'
while runing with tagui it is giving me this error but while I was runing it with pycharm it is working properly
So, can You please tell me what I am doing work it would be a great help

Hi @Shivang310 perhaps you can provide the absolute filepath instead of relative filepath. See if that works.

hi @ruthtxh my code started working properly as @kensoh pointed out I worked on the error and it is working now thank you for your help @kensoh

Also thank you @ruthtxh for your help

hi @ruthtxh my code started working properly as @kensoh pointed out I worked on the error and it is working now thank you for your help @kensoh

What error you find in your code.
Actually I tried to run by python code in tag flow But Its not working. Can you help me


Use bouncycastle for digital signing, to avoid requiring special windows permissions (Closes #88)

Closes #88


BD-903:Relicense OCDM-Nagra to Metrological Apache

Copyright scan failure
Commit: 1fac1e2e7588fec9999ddb7f53f9fdb173a2d02f
Report detail: https://gist.github.com/afa877c4b83019b1c30c0b84eb28be06

Blackduck scan failure details
Summary: 0 violations, 0 files pending approval, 3 files pending identification.

Protex Server Path: /home/blackduck/github/OCDM-Nagra/6/rdkcentral/OCDM-Nagra

Commit: 1fac1e2e7588fec9999ddb7f53f9fdb173a2d02f

Report detail: gist

WARNING: A Copyright scan failure has been waived
A prior failure has been upvoted

Upvote reason: Resolved in the tool

Commit: 1fac1e2e7588fec9999ddb7f53f9fdb173a2d02f

WARNING: A Blackduck scan failure has been waived
A prior failure has been upvoted

Upvote reason: Resolved in the tool

Commit: 1fac1e2e7588fec9999ddb7f53f9fdb173a2d02f

Hi Mallikarjuna - this is fine by me and I upvoted the checks.  Next up I suppose to ask Smariti to request Metrological to merge as it is their repo.

Hi @woutermeek
Please merge this PR if you are Happy!


eink: default state button text is not visible in light color

Is the bug present when using the default Obsidian theme?
No
Is the bug present when snippets and plugins are disabled?
Yes
Minimal theme version
7.3.5
Describe the bug

For some reason, I'm seeing default state's button text is not visible with eink + light color combination.
Debug info
SYSTEM INFO:
Obsidian version: v1.4.16
Installer version: v1.4.14
Operating system: Darwin Kernel Version 23.0.0: Fri Sep 15 14:41:43 PDT 2023; root:xnu-10002.1.13~1/RELEASE_ARM64_T6000 23.0.0
Login status: logged in
Catalyst license: none
Insider build toggle: off
Live preview: on
Legacy editor: off
Base theme: light
Community theme: Minimal v7.3.5
Snippets enabled: 0
Restricted mode: off
Plugins installed: 3
Plugins enabled: 3
1: Omnisearch v1.18.1
2: Natural Language Dates v0.6.1
3: Minimal Theme Settings v7.3.0
RECOMMENDATIONS:
Custom theme and snippets: for cosmetic issues, please first try updating your theme and disabling your snippets. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community theme and snippets.
Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.

I've found that removing button class solve that issue:

Closed in 7.6.2, note this requires Obsidian 1.6+


fix(ui): clarified select input padding to not overlap chevron

Closes #238.
Also refactored variables naming to take less space
https://github.com/user-attachments/assets/7ce96dcf-ea7e-48ee-ad20-9d2f6ac8d3b8

[x] I have reviewed my code in "Files changed" tab.
[x] I have re-read the issue and this PR fully resolves it.

@wrmk  Please resolve merge conflict.


Update PipeOptions once https://github.com/dotnet/corefx/issues/25427 is fixed

We will need to rely on the new setting introduced by https://github.com/dotnet/corefx/issues/25427 to provide a secure experience with the build server.
It's likely we'll need to use the constant value of this new enum to pass the correct value.

This should be unblocked now

Just checked and we have picked up a build of corefx that contains this fix. I'll work on this now.

This is now blocked on https://github.com/dotnet/corefx/issues/28371.


feat(components): add name prop to NavTab

Overview
Adds optional name prop to NavTab, and uses that prop in PD's nav to provide a selector for E2E tests.
Addresses part of #7384
Changelog
Review requests

Is name the best choice vs id vs data-test? TBH I would have gone with data-test but the kebab case makes it syntactically annoying to work with, cannot use object destructuring, etc

Risk assessment
Low, adds optional prop to NavTab, a component which is only used in PD anyway

My only concern about using name here is perhaps misusing what is intended for. I can't seem to get much of a clear answer on what the semantic meaning of name is, but I found this on the mdn docs: Name of the element. For example used by the server to identify the fields in form submits.
So I guess this technically works...? But the point of the name in our use case is that it's supposed to be unique right? With this information, doesn't it seem weird to have the same component have multiple names depending on the instance? name seems more generic than id in that sense.
I.e. if we have multiple StepItem instances, would they be:
 <StepItem name={'stepItem_1'} />
 <StepItem name={'stepItem_2'} />

?
Seems like in this case id is more semantically correct, but 🤷🏽♂

https://www.w3.org/TR/2011/WD-html5-20110525/association-of-controls-and-forms.html#attr-fe-name yeah I think name for button is only supposed to be for buttons of forms


Dragging of custom links and setup is broken

ERROR Error: cannot find factory for link of type: [default]
at DiagramEngine.push../node_modules/ngx-diagrams/fesm5/ngx-diagrams.js.DiagramEngine.getLinkFactory (ngx-diagrams.js:4042)

:tada: This issue has been resolved in version 2.6.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


No need to change IDs pMHC

for now we use pymol where it doesn't matter if we have different chain IDs do we want to still change them just to be safe or do we want to keep them te same since we don't really use data from pmhc except the initial placement and the end (which might need it that part i'm not sure about)

We need to change the chainIDs of pMHC, because of merge_pdb.py. We could remove it if we change gradpose but for now we need to change the chainIDs


kdebug_signpost* fns don't exist on macOS 10.11

Fixes #issue
Doesn't fix, but found during https://github.com/gfx-rs/gfx/issues/2563

PR checklist:

[ ] make succeeds (on *nix)
Yes.

[ ] make reftests succeeds
No, as it seems to be trying to compile with the feature this patch adds ('signpost') turned on?

[ ] tested examples with the following backends:
metal

[ ] rustfmt run on changed code
I don't know how, but I tried to copy the existing style.

Um, do I need to do anything else here? I agree that changes to warden/Cargo.toml are unnecessary, do I need to submit another commit undoing those?

@datadog23 the feature code is good, but we are missing the CI coverage for it. So here are the small steps left here:

remove the changes to Warden
add the following line to the end of .travis.yml
squash the commits together and update this PR

if [[ $TRAVIS_OS_NAME == "osx" ]]; then cd src/backend/metal && cargo check --all-features; fi

ping!

@datadog23 is anything unclear about the path forward?

@datadog23 without having a word from you for 3 weeks, I decided to step in and finish the PR. Sorry if that causes any inconvenience! Please feel free to visit our chat and talk about other possible contributions.
bors r+

Enabling all the features on CI reveals that we haven't tested some of them. This needs a bit more work.
bors r-

Had to update the dispatch code quite a bit...
bors r=compiler

Sorry, i panicked and fled, didn't dare come on github or the discord channel for a month, maybe don't ask utter beginners to submit Pull Requests when they just want to ask why things aren't working / if they could ever work?

Thanks for coming back! I'm surprised you panicked though. Did we treat you incorrectly? I thought we were responsive and giving you clear directions on how to finish this.

I freaked out about being asked to modify/repair the CI system, which i'd never heard of before: i thought the implication was that i'd broken it, when i only wanted to corroborate a bug report!
Sorry for causing you all extra work


package.sh error

ISSUE TYPE

Bug Report
COMPONENT NAME

CLOUDSTACK VERSION

cloudstack-<IP_ADDRESS>
CONFIGURATION

OS / ENVIRONMENT

export JAVA_HOME=/data/jdk-11.0.15
export M2=/data/apache-maven-3.0.5
export PATH=$JAVA_HOME/bin:$M2/bin:$PATH
SUMMARY

[root@dev-server packaging]# ./package.sh --distribution centos7
Packaging CloudStack...
version <IP_ADDRESS>-SNAPSHOT
Preparing to package Apache CloudStack <IP_ADDRESS>-SNAPSHOT
. preparing source tarball
. executing rpmbuild
RPMDIR /data/cloudstack/packaging/../dist/rpmbuild
error: Failed build dependencies:
maven >= 3.0.0 is needed by cloudstack-<IP_ADDRESS>-SNAPSHOT.el7.x86_64
RPM Build Done
but, maven installed and set env.

@jaspercloud can you verify the version of mvn:

check if mvn is installed, run: which mvn

$ which mvn
/usr/bin/mvn

check the version: mvn -version

$ mvn -version
OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
Listening for transport dt_socket at address: 8787
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.15, vendor: Private Build, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-110-generic", arch: "amd64", family: "unix"

@jaspercloud you can use these container images we use with BO/trillian to build packages - https://hub.docker.com/u/shapeblue or as Pearl suggested, ensure you've all the dependencies installed and using the right base distro to build pkgs (for ex. building rpm packages on Ubuntu may not work)

@jaspercloud
it looks you installed maven3 from a package (because the PATH is /data/apache-maven-3.0.5)
please install maven3 by yum and retry.

@jaspercloud I'm closing this issue as it seems resolved, in case the issue persists please reopen it


What happened to the recursive folder browse in the nightly?

Hi
It looks like the "Directory flattening" setting is not saved properly. I enable it, save it. Next time I open the setting it is again disabled. I am not sure what the issue isue.
This is what I use "bpatrik/pigallery2:edge-alpine"

I do not know if this is the same issue but I see that periodic scanning is not saved as well.


Basket get_price_breakdown calculate wrong when there's an offer

Oscar version: 2.1

By default, for deferred tax product, oscar will first apply the discount, then apply the tax.
However, in oscar/apps/basket/abstract_models.py:
    def get_price_breakdown(self):
        if not self.is_tax_known:
            raise RuntimeError("A price breakdown can only be determined "
                               "when taxes are known")
        prices = []
        if not self.discount_value:
            prices.append((self.unit_price_incl_tax, self.unit_price_excl_tax,
                           self.quantity))
        else:
            item_incl_tax_discount = (
                self.discount_value / int(self.consumer.consumed()))
            item_excl_tax_discount = item_incl_tax_discount * self._tax_ratio
            item_excl_tax_discount = round_half_up(item_excl_tax_discount)
            prices.append((self.unit_price_incl_tax - item_incl_tax_discount,
                           self.unit_price_excl_tax - item_excl_tax_discount,
                           self.consumer.consumed()))
            if self.quantity_without_discount:
                prices.append((self.unit_price_incl_tax,
                               self.unit_price_excl_tax,
                               self.quantity_without_discount))
        return prices

Here it treats self.discount_value as item_incl_tax_discount, which by default should be item_excl_tax_discount, which make the line_prices totally wrong. And it doesn't care about the OSCAR_OFFERS_INCL_TAX at well.

Duplicated due to network issue


Add notify_cb option to gatt! characteristics.

Being able to take action when a characteristic's notifications are enabled are disabled is useful when the data source needs some action to be taken to start or stop the data source like enabling interrupts or powering on a sensor.

Reworked that patch so that the notification is part of the AttData trait.

This is a useful addition - unfortunately CI is failing currently

Sorry about that, CI should be fixed now.

Thanks! I will be able to give it a proper review tomorrow

Mind adding a test to bleps-macros/tests/macro_test.rs? It's just a simple compile test but helpful to not break things in future. Something like this
#[test]
fn test6() {
    let mut my_read_function = |_offset: usize, data: &mut [u8]| {
        data[..5].copy_from_slice(&b"Hola!"[..]);
        5
    };
    let mut my_write_function = |_offset, data: &[u8]| {
        println!("{:?}", data);
    };
    let mut my_notify = |enabled: bool| {
        println!("enabled = {enabled}");
    };

    gatt!([service {
        uuid: "9e7312e0-2354-11eb-9f10-fbc30a62cf38",
        characteristics: [characteristic {
            uuid: "9e7312e0-2354-11eb-9f10-fbc30a62cf38",
            notify: true,
            notify_cb: my_notify,
            read: my_read_function,
            write: my_write_function,
        },],
    },]);

    println!("{:x?}", gatt_attributes);
}

Thanks for the review.  Removed vestigial notify_cb_call code and added suggested test code.


[camel-main] Kamelets require fix because of the ResourceSupport change in Camel

Bug description
Fix of https://issues.apache.org/jira/browse/CAMEL-19771 brought a reference to a resource into RouteDefinition instance.
Problem is caused by several aspects together:

Resource instance is loaded in Processor class (see https://github.com/apache/camel-quarkus/blob/main/extensions/kamelet/deployment/src/main/java/org/apache/camel/quarkus/component/kamelet/deployment/KameletProcessor.java#L81) and is represented by anonymous class (so no constructor is available)
RouteDefinition contains Resource
RouteDefinition is send to Recorder class (to customize Camel context)
Quarkus internally serializes all parameters going from Processor to a Recorder
Serialization fails on

[error]: Build step io.quarkus.deployment.steps.MainClassBuildStep#build threw an exception: java.lang.RuntimeException: Unable to serialize objects of type class org.apache.camel.impl.engine.DefaultResourceResolvers$ClasspathResolver$1 to bytecode as it has no default constructor

I introduced a small workaround and I removed resources from the RouteDefinition -> this only helps the CI to pass the issue -> proper solution has to be found.

Workaround is implemented in KameletProcessor

Better solution prepared in the last 2 commits of https://github.com/JiriOndrusek/camel-quarkus/commits/cq5232-kamelet-serialize-resources

default resource are re-created in the runtime, custom resources are skipped (if they are not serializable)

@JiriOndrusek I hacked up an alternate solution that can avoid resolving the Kamelet resources again at runtime:
https://github.com/jamesnetherton/camel-quarkus/commit/22ce18064f4269af3ccbc826aab289bf756ac186

Hi @jamesnetherton , nice solution!
TBH I tried to avoid serializing all of the resource as bytes. I was worried about the amount of data.
I hope that users does not uses sever MBs of data, which could affect the size of the jar...
Will you cherry-pick your solution to camel-nain or should I do it?

Fixed in camel-main. Thanks @jamesnetherton !

Reopening because we should try to find a better solution for this. Ideally in Camel.


Does not save values in the units used to create them

$ sbt console
scala> Kilowatts(1200)
res3: squants.energy.Power = 1.2 MW
scala> Microlitres(20000)
res2: squants.space.Volume = 2.0E-5 m³

This is causing havoc with serialization tests in my project (since things don't round-trip from JSON back to JSON).
The README claims that "Quantity values are based in the units used to create them", but this does not seem to be the case.

Hey Jeremy, sorry I missed this.  I'm some not getting the notifications I should from GitHub.
I will look into this ASAP and let you know what's going on.

Here is the output I get from the same calls as above:
scala> Kilowatts(1200)
res0: squants.energy.Power = 1200.0 kW
scala> Microlitres(20000)
res1: squants.space.Volume = 20000.0 µl

Which version of squants are you using?

Ah, looks like I was using an old version. I can't seem to test on current master though, because:
$ git clone https://github.com/garyKeorkunian/squants
$ cd squants
$ sbt console
scala> import squants._
<console>:10: error: not found: value squants
       import squants._

Yes, master includes a change that supports ScalaJS.
Unfortunately it broke the sbt.console and publish features.  I am working on fixing that now, though I expect I won't have anything ready until next week.
The most recent best code prior to that change is the 0.6.0-SNAPSHOT branch.  If you're pulling down the repo, use that.
If you are using an sbt dependency in another project, I would stick with that version for now, as well.  Also, the most recent pre-release (non-snapshot), 0.5.3, should also work OK for what you are doing.

@nornagon
You can make use of the master branch in the console by first changing to the squantsJVM project
project squantsJVM
console

Great, it's working now. Sorry for the noise!


remove “currently defined”

I removed "Currently defined" from the README labware docs, because no resource in the list is "currently undefined".
@BioCam, what do you think?

I think it depends on how we define "Currently defined".
I define it as "PLR-definition of the physical object + metadata needed to use it".
In that sense only the resources in the README docs are "currently defined", they are the only ones from the PLR Resource Library that people can use because they provide the necessary information for their use by providing at the very least the manufacturer catalogue number.

Agree with the definition.
Do you think we will ever document "undefined"/incomplete resources, or should we assume that all documented resources are 'currently defined'?

Do you think we will ever document "undefined"/incomplete resources, or should we assume that all documented resources are 'currently defined'?

Good question 😅
Yes, let's change the phrase as per your proposal...
...and start adding "To be deleted in 2 months." warning triggers to all resources which do not have a manufacturer catalogue number in their docstring, nor anywhere else in the PLR Resource Library?

Let's do that. It is unfortunate that venus resources appear unusable, but little we can do about that 🤷♂
A future we can 'guarantee' good "PLR-definition of the physical object + metadata needed to use it" for all Resources is worth a lot more than a bunch of vague methods that no one uses.


Update configuration.asciidoc

:grey_exclamation: Build Aborted

The PR is not allowed to run in the CI yet

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Build Cause: Pull request #1776 opened

Reason: The PR is not allowed to run in the CI yet

Start Time: 2021-04-19T20:35:55.618+0000

Duration: 5 min 58 sec

Commit: 6f28e9805fb36b817c5112f15ee172d82db409f4

Trends :test_tube:

Steps errors
Expand to view the steps failures

Load a resource file from a shared library

Took 0 min 0 sec . View more details on here
Description: approval-list/elastic/apm-agent-java.yml

Error signal

Took 0 min 0 sec . View more details on here
Description: githubPrCheckApproved: The PR is not allowed to run in the CI yet. (Only users with write permissions can do so.)

Log output
Expand to view the last 100 lines of log output

[2021-04-19T20:40:24.939Z]  > git fetch --no-tags --progress -- https://github.com/elastic/apm-agent-java.git +refs/heads/*:refs/remotes/origin/* # timeout=100
[2021-04-19T20:40:25.781Z] Pruning obsolete local branches
[2021-04-19T20:40:26.495Z] Merging remotes/origin/master commit a20664231402d34e1749119408fa25320b1d76ce into PR head commit 6f28e9805fb36b817c5112f15ee172d82db409f4
[2021-04-19T20:40:25.747Z]  > git config remote.origin.url https://github.com/elastic/apm-agent-java.git # timeout=10
[2021-04-19T20:40:25.756Z]  > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
[2021-04-19T20:40:25.769Z]  > git config remote.origin.url https://github.com/elastic/apm-agent-java.git # timeout=10
[2021-04-19T20:40:25.785Z] Fetching upstream changes from https://github.com/elastic/apm-agent-java.git
[2021-04-19T20:40:25.786Z] using GIT_ASKPASS to set credentials GitHub user @apmmachine User + Personal Access Token
[2021-04-19T20:40:25.787Z]  > git fetch --no-tags --progress --prune -- https://github.com/elastic/apm-agent-java.git +refs/pull/1776/head:refs/remotes/origin/PR-1776 +refs/heads/master:refs/remotes/origin/master # timeout=100
[2021-04-19T20:40:26.502Z]  > git config core.sparsecheckout # timeout=10
[2021-04-19T20:40:26.512Z]  > git checkout -f 6f28e9805fb36b817c5112f15ee172d82db409f4 # timeout=100
[2021-04-19T20:40:26.735Z]  > git remote # timeout=10
[2021-04-19T20:40:26.741Z]  > git config --get remote.origin.url # timeout=10
[2021-04-19T20:40:26.753Z] using GIT_ASKPASS to set credentials GitHub user @apmmachine User + Personal Access Token
[2021-04-19T20:40:26.754Z]  > git merge a20664231402d34e1749119408fa25320b1d76ce # timeout=10
[2021-04-19T20:40:27.211Z] Merge succeeded, producing da2eee615a1baa2055fe3ba2c01a94935fa57e23
[2021-04-19T20:40:27.211Z] Checking out Revision da2eee615a1baa2055fe3ba2c01a94935fa57e23 (PR-1776)
[2021-04-19T20:40:27.204Z]  > git rev-parse HEAD^{commit} # timeout=10
[2021-04-19T20:40:27.213Z]  > git config core.sparsecheckout # timeout=10
[2021-04-19T20:40:27.218Z]  > git checkout -f da2eee615a1baa2055fe3ba2c01a94935fa57e23 # timeout=100
[2021-04-19T20:40:30.891Z] Commit message: "Merge commit 'a20664231402d34e1749119408fa25320b1d76ce' into HEAD"
[2021-04-19T20:40:30.892Z] First time build. Skipping changelog.
[2021-04-19T20:40:30.913Z]  > git --version # timeout=10
[2021-04-19T20:40:30.917Z]  > git --version # 'git version 2.17.1'
[2021-04-19T20:40:30.935Z] fatal: bad object 8f48394fe31ae516841e25ea45b3faa94d147e96
[2021-04-19T20:40:31.660Z] Masking supported pattern matches of $JOB_GCS_BUCKET or $NOTIFY_TO
[2021-04-19T20:40:31.731Z] Timeout set to expire in 1 hr 0 min
[2021-04-19T20:40:31.759Z] The timestamps step is unnecessary when timestamps are enabled for all Pipeline builds.
[2021-04-19T20:40:32.060Z] [INFO] Number of builds to be searched 10
[2021-04-19T20:40:32.379Z] [INFO] 'shallow' is forced to be disabled when running on PullRequests
[2021-04-19T20:40:32.403Z] Running in /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1776/src/github.com/elastic/apm-agent-java
[2021-04-19T20:40:32.443Z] [INFO] gitCheckout: Checkout SCM PR-1776 with some customisation.
[2021-04-19T20:40:32.477Z] [INFO] Override default checkout
[2021-04-19T20:40:32.540Z] Sleeping for 10 sec
[2021-04-19T20:40:42.561Z] The recommended git tool is: git
[2021-04-19T20:40:42.677Z] using credential 2a9602aa-ab9f-4e52-baf3-b71ca88469c7-UserAndToken
[2021-04-19T20:40:42.784Z] Cloning the remote Git repository
[2021-04-19T20:40:42.796Z] Cloning repository https://github.com/elastic/apm-agent-java.git
[2021-04-19T20:40:42.826Z]  > git init /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1776/src/github.com/elastic/apm-agent-java # timeout=10
[2021-04-19T20:40:42.835Z] Using reference repository: /var/lib/jenkins/.git-references/apm-agent-java.git
[2021-04-19T20:40:42.835Z] Fetching upstream changes from https://github.com/elastic/apm-agent-java.git
[2021-04-19T20:40:42.835Z]  > git --version # timeout=10
[2021-04-19T20:40:42.842Z]  > git --version # 'git version 2.17.1'
[2021-04-19T20:40:42.842Z] using GIT_ASKPASS to set credentials GitHub user @apmmachine User + Personal Access Token
[2021-04-19T20:40:42.843Z]  > git fetch --tags --progress -- https://github.com/elastic/apm-agent-java.git +refs/heads/*:refs/remotes/origin/* # timeout=10
[2021-04-19T20:40:43.432Z]  > git config remote.origin.url https://github.com/elastic/apm-agent-java.git # timeout=10
[2021-04-19T20:40:43.435Z]  > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
[2021-04-19T20:40:43.442Z]  > git config remote.origin.url https://github.com/elastic/apm-agent-java.git # timeout=10
[2021-04-19T20:40:43.449Z] Fetching upstream changes from https://github.com/elastic/apm-agent-java.git
[2021-04-19T20:40:43.449Z] using GIT_ASKPASS to set credentials GitHub user @apmmachine User + Personal Access Token
[2021-04-19T20:40:43.450Z]  > git fetch --tags --progress -- https://github.com/elastic/apm-agent-java.git +refs/pull/1776/head:refs/remotes/origin/PR-1776 +refs/heads/master:refs/remotes/origin/master # timeout=10
[2021-04-19T20:40:44.142Z] Checking out Revision 6f28e9805fb36b817c5112f15ee172d82db409f4 (origin/PR-1776)
[2021-04-19T20:40:44.343Z] Commit message: "Update configuration.asciidoc"
[2021-04-19T20:40:44.344Z] First time build. Skipping changelog.
[2021-04-19T20:40:44.357Z]  > git --version # timeout=10
[2021-04-19T20:40:44.365Z]  > git --version # 'git version 2.17.1'
[2021-04-19T20:40:44.373Z] fatal: bad object 8f48394fe31ae516841e25ea45b3faa94d147e96
[2021-04-19T20:40:44.127Z]  > git rev-parse origin/PR-1776^{commit} # timeout=10
[2021-04-19T20:40:44.143Z]  > git config core.sparsecheckout # timeout=10
[2021-04-19T20:40:44.152Z]  > git checkout -f 6f28e9805fb36b817c5112f15ee172d82db409f4 # timeout=10
[2021-04-19T20:40:45.214Z] Masking supported pattern matches of $GIT_USERNAME or $GIT_PASSWORD
[2021-04-19T20:40:45.817Z] + git fetch<EMAIL_ADDRESS>+refs/pull/*/head:refs/remotes/origin/pr/*
[2021-04-19T20:40:47.281Z] Running in /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1776/src/github.com/elastic/apm-agent-java/.git
[2021-04-19T20:40:47.388Z] Archiving artifacts
[2021-04-19T20:40:48.150Z] + git rev-parse HEAD
[2021-04-19T20:40:48.493Z] + git rev-parse HEAD
[2021-04-19T20:40:48.807Z] + git rev-parse origin/pr/1776
[2021-04-19T20:40:48.860Z] [INFO] githubEnv: Found Git Build Cause: pr
[2021-04-19T20:40:49.163Z] Masking supported pattern matches of $GITHUB_TOKEN
[2021-04-19T20:40:50.063Z] [WARN] githubApiCall: The REST API call https://api.github.com/repos/elastic/apm-agent-java/pulls/1776/reviews return 0 elements
[2021-04-19T20:40:50.132Z] [INFO] githubPrCheckApproved: Title: Update configuration.asciidoc - User: leahleahy - Author Association: FIRST_TIME_CONTRIBUTOR
[2021-04-19T20:40:50.474Z] ERROR: githubPrCheckApproved: The PR is not allowed to run in the CI yet
[2021-04-19T20:40:50.474Z] ERROR: githubPrCheckApproved: The PR is not allowed to run in the CI yet. (Only users with write permissions can do so.)
[2021-04-19T20:40:50.557Z] [INFO] Let's stop build #1. The PR is not allowed to run in the CI yet
[2021-04-19T20:40:50.584Z] Sleeping for 5 sec
[2021-04-19T20:40:51.510Z] Stage "Build" skipped due to earlier failure(s)
[2021-04-19T20:40:51.687Z] Stage "Tests" skipped due to earlier failure(s)
[2021-04-19T20:40:51.861Z] Stage "Unit Tests" skipped due to earlier failure(s)
[2021-04-19T20:40:51.872Z] Stage "Smoke Tests 01" skipped due to earlier failure(s)
[2021-04-19T20:40:51.884Z] Stage "Smoke Tests 02" skipped due to earlier failure(s)
[2021-04-19T20:40:51.895Z] Stage "Benchmarks" skipped due to earlier failure(s)
[2021-04-19T20:40:51.906Z] Stage "Javadoc" skipped due to earlier failure(s)
[2021-04-19T20:40:52.059Z] Failed in branch Unit Tests
[2021-04-19T20:40:52.068Z] Failed in branch Smoke Tests 01
[2021-04-19T20:40:52.077Z] Failed in branch Smoke Tests 02
[2021-04-19T20:40:52.085Z] Failed in branch Benchmarks
[2021-04-19T20:40:52.094Z] Failed in branch Javadoc
[2021-04-19T20:40:52.316Z] Stage "Integration Tests" skipped due to earlier failure(s)
[2021-04-19T20:40:52.399Z] Stage "Stable" skipped due to earlier failure(s)
[2021-04-19T20:40:52.484Z] Stage "AfterRelease" skipped due to earlier failure(s)
[2021-04-19T20:40:52.521Z] Stage "AfterRelease" skipped due to earlier failure(s)
[2021-04-19T20:40:52.880Z] Running on Jenkins in /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1776
[2021-04-19T20:40:53.015Z] [INFO] getVaultSecret: Getting secrets
[2021-04-19T20:40:53.283Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2021-04-19T20:40:54.206Z] + chmod 755 generate-build-data.sh
[2021-04-19T20:40:54.206Z] + ./generate-build-data.sh https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1776/ https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1776/runs/1 ABORTED 298319
[2021-04-19T20:40:54.457Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1776/runs/1/steps/?limit=10000 -o steps-info.json
[2021-04-19T20:40:55.007Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1776/runs/1/tests/?status=FAILED -o tests-errors.json
[2021-04-19T20:40:55.007Z] Retry 1/3 exited 22, retrying in 1 seconds...
[2021-04-19T20:40:55.918Z] Retry 2/3 exited 22, retrying in 2 seconds...

Closing as this documentation is auto-generated.


opc publisher 2.4.1 leaves entries in node configuration file after unpublishing all nodes

Hello,
when unpublishing all nodes or a list of nodes that will finally result in no results being published, the opcpublishednodes.json still contains one entry.
This is the log snippet:
2019-07-26 17:26:35.830 +02:00 [DBG] HandleUnpublishNodesMethodAsync: called
2019-07-26 17:26:35.832 +02:00 [INF] HandleUnpublishNodesMethodAsync: Request to stop monitoring item with NodeId 'ns=5;s=PumpStatus1')
2019-07-26 17:26:35.834 +02:00 [INF] RequestMonitorItemRemoval: Node with id 'ns=5;s=PumpStatus1' tagged to stop monitoring.
2019-07-26 17:26:35.835 +02:00 [DBG] HandleUnpublishNodesMethodAsync: Id 'ns=5;s=PumpStatus1': tagged for removal
2019-07-26 17:26:35.837 +02:00 [INF] HandleUnpublishNodesMethodAsync: Request to stop monitoring item with NodeId 'ns=5;s=Temperature')
2019-07-26 17:26:35.839 +02:00 [INF] RequestMonitorItemRemoval: Node with id 'ns=5;s=Temperature' tagged to stop monitoring.
2019-07-26 17:26:35.840 +02:00 [DBG] HandleUnpublishNodesMethodAsync: Id 'ns=5;s=Temperature': tagged for removal
2019-07-26 17:26:35.840 +02:00 [INF] Remove nodes in subscription with id 19 on endpoint 'opc.tcp://xxx'
2019-07-26 17:26:35.841 +02:00 [INF] HandleUnpublishNodesMethodAsync: Request to stop monitoring item with NodeId 'ns=5;s=VentilationLevel1')
2019-07-26 17:26:35.842 +02:00 [INF] There are now 1 monitored items in this subscription.
2019-07-26 17:26:35.844 +02:00 [INF] There are now 1 items managed by publisher for this subscription. (version: 00000009)
2019-07-26 17:26:35.845 +02:00 [INF] RequestMonitorItemRemoval: Node with id 'ns=5;s=VentilationLevel1' tagged to stop monitoring.
2019-07-26 17:26:35.847 +02:00 [DBG] HandleUnpublishNodesMethodAsync: Id 'ns=5;s=VentilationLevel1': tagged for removal
2019-07-26 17:26:35.848 +02:00 [INF] HandleUnpublishNodesMethodAsync: completed with result OK
2019-07-26 17:26:35.858 +02:00 [INF] Remove nodes in subscription with id 19 on endpoint 'opc.tcp://xxx'
2019-07-26 17:26:35.861 +02:00 [INF] There are now 0 monitored items in this subscription.
2019-07-26 17:26:35.862 +02:00 [INF] There are now 0 items managed by publisher for this subscription. (version: 0000000A)
2019-07-26 17:26:35.863 +02:00 [INF] Remove unused subscriptions on endpoint 'opc.tcp://xxx'.
2019-07-26 17:26:35.872 +02:00 [INF] There are now 0 subscriptions in this session.
2019-07-26 17:26:35.873 +02:00 [DBG] OPC: EXCEPTION BadNoSubscription
2019-07-26 17:26:35.874 +02:00 [INF] Remove unused session on endpoint 'opc.tcp://xxx'.
2019-07-26 17:26:35.877 +02:00 [INF] Removing 0 subscriptions from session.
2019-07-26 17:26:35.878 +02:00 [INF] Closing session to endpoint URI 'opc.tcp://sba020163.sgr.com:53530/OPCUA/SimulationServer' closed successfully.
2019-07-26 17:26:35.899 +02:00 [INF] Session to endpoint URI 'opc.tcp://xxx' closed successfully.
But publishednodes.json still has one entry left for the corresponding endpointUrl. It is the last one that has been removed.
best regards
Hartmut

This issue has already been solved by my pull request in the publisher repo.
It was merged in commit be4bf5c6ae6f5be23a9e1edbbb2cf06b2a9ff7e0
"move final changes to publisher from publisher repo"

Thank you @anhame, I moved this over to align with a new release, but it looks like it was already part of 2.4.1 then.  I will close this then.


TypeScript definition: include schemaName in EnumOptions

This is addition to https://github.com/tgriesser/knex/pull/3413

@ivanovych666 Can you mark optional ones as optional, while we are at it, btw?

Awesome, thank you!


Turtlebot 3 navigation: erroneous movement

ISSUE TEMPLATE ver. 0.2.0

Which TurtleBot3 you have?

[ ] Burger
[ ] Waffle
[X] Waffle Pi

Which SBC(Single Board Computer) is working on TurtleBot3?

[X] Raspberry Pi 3
[ ] Intel Joule 570x
[ ] etc (PLEASE, WRITE DOWN YOUR SBC HERE)

Which OS you installed in SBC?

[X] Ubuntu MATE 16.04 or later
[ ] Raspbian
[ ] etc (PLEASE, WRITE DOWN YOUR OS)

Which OS you installed in Remote PC?

[X] Ubuntu 16.04 LTS (Xenial Xerus)
[ ] Ubuntu 18.04 LTS (Bionic Beaver)
[ ] Linux Mint 18.x
[ ] etc (PLEASE, WRITE DOWN YOUR OS)

Write down software version and firmware version

Software version: [x.x.x]
Firmware version: [x.x.x]

Write down the commands you used in order

HERE

Copy and Paste your error message on terminal

DWA planner failed to produce path.

Please, describe detailedly what difficulty you are in

First of all the TB3 (waffle pi) navigation works well using the following parameter set:
 https://github.com/ROBOTIS-GIT/turtlebot3/tree/master/turtlebot3_navigation/param

However there are sometimes errors in movement direction of the TB3 (real or simulated).
Best to see on point to point target movement in the same room axis.
On error TB3 doesn't change its direction if you change the targets when TB3 is still running (however RViz displays the correct path) . So TB3 runs (wrong path) to the next wall and then starts the correct path. Wall "contact" will cause the error massage "DWA planner failed to produce path.".

@master-chrise
Would you test below and let us know if you are having the same issue?
$ roscore
$ roslaunch turtlebot3_gazebo turtlebot3_world.launch
$ roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
(map.yaml file is in the turtlebot3_navigation package.)
Also, if you need help with your own work about our tutorial, can you let us know which tutorial (with what terminal commands) you tried & send error codes plus the screenshot of whatever that could help us figure out what issue you are having.
Regards,
Ryan

@RyanJaehyunShim
Thank you for your prompt reply.
Command history:
$ roscore
$ roslaunch turtlebot3_gazebo turtlebot3_house.launch
$ roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
The following pictures illustrate the problem:
- Set a new goal (green arrow):

TB3 doesn't navigate to the new goal:

Shortly before TB3 touches the wall, TB3 starts to follow the correct path

It looks like the problem has occurred since tag version 1.0.0 (see below)
https://github.com/ROBOTIS-GIT/turtlebot3/tree/1.0.0/turtlebot3_navigation/param
Previous versions work correctly...
Regards,
master-chrise

@master-chrise
I think the problem occurred because of incorrect parameter setting of the robot. Please refer to the link below and modify the related files in /.../turtlebot3_navigation/param folder.
(http://emanual.robotis.com/docs/en/platform/turtlebot3/navigation/#tuning-guide)
Let us know if it doesn't work,
Ryan

@RyanJaehyunShim
It looks like the problems are caused by the forward simulation parameter "controller_frequency" (default: 10 Hz, dwa_local_planner_params_waffle_pi.yaml). Setting the parameter to a lower value (e.g. 4 Hz) solves my problem.
However, I'm currently not sure regarding the difference meaning of the parameters "controller_frequency" in the "dwa_local_planner_params_waffle_pi.yaml" and "move_base_params.yaml" file...
Regards,
master-chrise

@master-chrise
You will only need to change parameters in the dwa_local_planner_params_waffle_pi.yaml file when it comes to navigation path planning. The controller frequency in the move_base_params.yaml is for the entire move_base controller (please refer to the following link if you have more questions about move_base. http://wiki.ros.org/move_base)
Also, the problem you mentioned regarding a turtlebot moving backward instead of following the path to a new goal can be solved by setting 'min_vel_x' value to zero.
Hope it helps you,
Ryan

This issue has been closed as there weren't recent activities. Please feel free to reopen this thread if you have any other questions. Thanks.


OSX Keybase Client won't start up : /Users/user-1/Library/Caches/Keybase/keybased.sock: connect: connection refused ERROR

Keybase isn't running. To start, you can run:
open /Applications/Keybase.app

▶ ERROR There were multiple errors: dial unix /Users/user01/Library/Group Containers/keybase/Library/Caches/Keybase/keybased.sock: connect: no such file or directory; dial unix /Users/user-1/Library/Caches/Keybase/keybased.sock: connect: connection refused
my log id: 0af154221d2e06a4002cb21c

The same issue #12552


[EPIC] Production Stable Gateway

This epic contains all the work that is needed to make EVM Gateway production stable code, with good tests, benchmarking and general reliability, as well as security hardening.
The remaining work is divided into multiple sub-lists.

Data Streaming sub-list covers all the tasks that are needed for the streaming of events and blocks to the clients over websockets.
API Completeness ensures we support all the APIs needed to comply with the JSON RPC API specification.
Security and testing makes sure we have implemented metrics, do sufficient benchmarking, implement validation and security checks as well as allow secure running of the gateway in production

### Data Streaming
- [ ] https://github.com/onflow/flow-evm-gateway/issues/7
- [ ] https://github.com/onflow/flow-evm-gateway/issues/127
- [ ] https://github.com/onflow/flow-evm-gateway/issues/142
- [ ] https://github.com/onflow/flow-evm-gateway/issues/141
- [ ] https://github.com/onflow/flow-evm-gateway/issues/140
- [ ] https://github.com/onflow/flow-evm-gateway/issues/139
- [ ] https://github.com/onflow/flow-evm-gateway/issues/163
- [ ] https://github.com/onflow/flow-evm-gateway/issues/164
- [ ] https://github.com/onflow/flow-evm-gateway/issues/172

### API Completeness
- [ ] https://github.com/onflow/flow-evm-gateway/issues/144
- [ ] https://github.com/onflow/flow-evm-gateway/issues/209
- [ ] https://github.com/onflow/flow-evm-gateway/issues/302
- [ ] https://github.com/onflow/flow-evm-gateway/issues/296
- [ ] https://github.com/onflow/flow-evm-gateway/issues/143
- [ ] https://github.com/onflow/flow-evm-gateway/issues/200
- [ ] https://github.com/onflow/flow-evm-gateway/issues/145
- [ ] https://github.com/onflow/flow-evm-gateway/issues/111
- [ ] https://github.com/onflow/flow-evm-gateway/issues/212
- [ ] https://github.com/onflow/flow-evm-gateway/issues/214
- [ ] https://github.com/onflow/flow-evm-gateway/issues/187
- [ ] https://github.com/onflow/flow-evm-gateway/issues/208
- [ ] https://github.com/onflow/flow-evm-gateway/issues/80
- [ ] https://github.com/onflow/flow-evm-gateway/issues/199
- [ ] https://github.com/onflow/flow-evm-gateway/issues/188
- [ ] https://github.com/onflow/flow-evm-gateway/issues/87
- [ ] https://github.com/onflow/flow-evm-gateway/issues/161
- [ ] https://github.com/onflow/flow-evm-gateway/issues/83
- [ ] https://github.com/onflow/flow-evm-gateway/issues/160
- [ ] https://github.com/onflow/flow-evm-gateway/issues/159
- [ ] https://github.com/onflow/flow-evm-gateway/issues/112
- [ ] https://github.com/onflow/flow-evm-gateway/issues/115
- [ ] https://github.com/onflow/flow-evm-gateway/issues/113
- [ ] https://github.com/onflow/flow-evm-gateway/issues/109

### Security and Stability
- [ ] https://github.com/onflow/flow-evm-gateway/issues/125
- [ ] https://github.com/onflow/flow-evm-gateway/issues/19
- [ ] https://github.com/onflow/flow-evm-gateway/issues/169
- [ ] https://github.com/onflow/flow-evm-gateway/issues/278
- [ ] https://github.com/onflow/flow-evm-gateway/issues/117
- [ ] https://github.com/onflow/flow-evm-gateway/issues/193
- [ ] https://github.com/onflow/flow-evm-gateway/issues/250
- [ ] https://github.com/onflow/flow-evm-gateway/issues/211
- [ ] https://github.com/onflow/flow-evm-gateway/issues/101
- [ ] https://github.com/onflow/flow-evm-gateway/issues/236
- [ ] https://github.com/onflow/flow-evm-gateway/issues/204
- [ ] https://github.com/onflow/flow-evm-gateway/issues/82
- [ ] https://github.com/onflow/flow-evm-gateway/issues/116
- [ ] https://github.com/onflow/flow-evm-gateway/issues/85
- [ ] https://github.com/onflow/flow-evm-gateway/issues/122
- [ ] https://github.com/onflow/flow-evm-gateway/issues/123
- [ ] https://github.com/onflow/flow-evm-gateway/issues/119
- [ ] https://github.com/onflow/flow-evm-gateway/issues/183
- [ ] https://github.com/onflow/flow-evm-gateway/issues/197

Remaining issue is benchmarking - keeping that separate, closing the EPIC


Table joins

Subtasks:

table aliases
join parameter on QueryEngine.select probably
updated signature of the closure in the where method

probably the best way to keep type safety is to write Join2 ... Join10 classes manually?

figuring out a good data structure for return values

Needs some more docs, but done on development


activerecord-jdbcmysql-adapter causing error for truncation

We have an application that needs to support multiple database engines, so our Gemfile contains multiple JDBC adapters as so:
gem 'activerecord-jdbcpostgresql-adapter', '~>1.3.7'
gem 'activerecord-jdbcmssql-adapter', '~>1.3.7'
gem 'activerecord-jdbcmysql-adapter', '~>1.3.7'

The app works as we expect, and each setup with a different database works well, however we've just introduced the mysql adapter, and have now found that the database cleaner is failing to truncate the database.
On my machine, I have a postgres database running. If I open up a rails console, and attempt to clean the database with :truncation I get the following error
TypeError: superclass mismatch for class Mysql2Adapter

We haven't changed any code in our app, and if I comment out the mysql JDBC adapter from the Gemfile and bundle install again, I am once again able to clean the database.
This is the stack trace that I get with the error
from /Users/adrianh/.rvm/gems/jruby-1.7.12/gems/database_cleaner-1.0.1/lib/database_cleaner/active_record/truncation.rb:209:in `ConnectionAdapters'
from /Users/adrianh/.rvm/gems/jruby-1.7.12/gems/database_cleaner-1.0.1/lib/database_cleaner/active_record/truncation.rb:176:in `ActiveRecord'
from /Users/adrianh/.rvm/gems/jruby-1.7.12/gems/database_cleaner-1.0.1/lib/database_cleaner/active_record/truncation.rb:175:in `(root)'
from org/jruby/RubyKernel.java:1065:in `require'
from /Users/adrianh/.rvm/gems/jruby-1.7.12/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in `require'
from /Users/adrianh/.rvm/gems/jruby-1.7.12/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:232:in `load_dependency'
from /Users/adrianh/.rvm/gems/jruby-1.7.12/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in `require'
from /Users/adrianh/.rvm/gems/jruby-1.7.12/gems/database_cleaner-1.0.1/lib/database_cleaner/base.rb:1:in `(root)'
from /Users/adrianh/.rvm/gems/jruby-1.7.12/gems/database_cleaner-1.0.1/lib/database_cleaner/base.rb:108:in `orm_strategy'
from /Users/adrianh/.rvm/gems/jruby-1.7.12/gems/database_cleaner-1.0.1/lib/database_cleaner/base.rb:34:in `create_strategy'
from /Users/adrianh/.rvm/gems/jruby-1.7.12/gems/database_cleaner-1.0.1/lib/database_cleaner/base.rb:38:in `clean_with'
from org/jruby/RubyArray.java:1613:in `each'
from /Users/adrianh/.rvm/gems/jruby-1.7.12/gems/database_cleaner-1.0.1/lib/database_cleaner/configuration.rb:85:in `clean_with'
from /Users/adrianh/.rvm/gems/jruby-1.7.12/gems/database_cleaner-1.0.1/lib/database_cleaner/configuration.rb:85:in `clean_with'

It's very similar (exact same error message) to other issues I've found here, however the line numbers are different so I'm assuming the issue is something different, given that the others have also been resolved and this is still appearing.

@pareeohnos Unfortunately at the moment database_cleaner-active_record doesn't support JDBC adapters. I'd love it if someone took the time to add support.

@etagwerker I'd have loved to have helped, but I no longer work on this project nor use jruby so wouldn't be of much help I'm afraid


Add onBeforeUnlink and onAfterUnlink method support to the GridFieldDeleteAction Component

Description
I propose that we use invokeWithExtensions() to add onBeforeUnlink() and onAfterUnlink() support to objects that are going to be unlinked using the GridFieldDeleteAction
If this is added to the core, it will mean that all DataObjects (or any other Gridfield managed object) will be able to optionally define these methods to run code before or after that object has been unlinked
Additional context or points of discussion
A few extra thoughts on the matter:
This is something that I have found useful in my own development. In my case I only used it in a few places, so I just subclassed the GridFieldDeleteAction and used my subclass in Gridfields that I needed to support the feature. But I can see this as being a simple (I think?) but useful addition to the core.
Support for non-Extensible objects - With recent updates it is safe to say that going forward not all Gridfields will manage DataObjects and so its plausible that some of the objects may not support the invokeWithExtensions() method that is apart of the Extensible trait. I propose that we add a conditional check around the hooks to ensure that either the method exists, or that the class uses the Extensible trait (perhaps with class_uses)?
Documentation - I would also add some documentation relating to this new feature. I'm thinking adding it to the Extending DataObject models (as invokeWithExtensions() allows for extension support), and Introduction to the data model and ORM pages would be best. But what do you all think?
Validations

[X] You intend to implement the feature yourself
[X] You have read the contributing guide
[X] You strongly believe this feature should be in core, rather than being its own community module
[X] You have checked for existing issues or pull requests related to this feature (and didn't find any)

Proposed Code:
public function handleAction(GridField $gridField, $actionName, $arguments, $data)
    {
        //...
        if ($actionName == 'deleterecord' || $actionName == 'unlinkrelation') {
            //...
            if ($actionName == 'deleterecord') {
                //...
            } else {
                //...
                $hookSupport = $item->hasMethod("invokeWithExtensions");
                if ($hookSupport) {
                    $item->invokeWithExtensions("onBeforeUnlink", $gridField, $this);
                }
                $list->remove($item);
                if ($hookSupport) {
                    $item->invokeWithExtensions("onAfterUnlink", $gridField, $this);
                }
            }
        }
    }

I am not sure what parameters would be most useful, so I just added the Gridfield and the component itself. But let me know if other parameters should be used instead

I wouldn't tie this to GridFieldDeleteAction, because you may want the same thing to happen when removing records from a relation list programatically as well.
I've seen similar requests for adding hooks for when adding records to a relation list too, so it's starting to feel like something along these lines is necessary.
The main problem with that would be that adding/removing records to relation lists is a very high traffic piece of code, so before I merge anything new extension hooks in that area I'd want to see some profiling that shows it won't cause performance issues at scale.

I was thinking the same. Perhaps better suited for (Has|Many)ManyList - the subclass of RelationList (classnames recalled from memory - may differ).

Oh. Well. That makes sense. And I see your point, it would be more useful at a lower level. But alas I don't have any ideas for how that might be done.
I don't suppose it could be a progressive enhancement that's transparent to the end user? Like implementing in the component first, then later removing it and replacing it with the lower level version, but keeping the API the same?

I don't suppose it could be a progressive enhancement that's transparent to the end user? Like implementing in the component first, then later removing it and replacing it with the lower level version, but keeping the API the same?

It could, but I don't see the value in adding an extension hook we intend to remove. If we're going to do this, IMO it should be done at the lower level from the start.

You could try Injector override, but I don't think the components are created via Injector to override the GridField Delete button component. Best workaround for now would be to implement your change where you want it, then use a combination of removeByType and addComponent with your GridFieldConfig (or via an Extension if a dependency) before using it.


2.x Fix hint about Co-Authors Plus in Upgrade Guide

We still support Co-Authors Plus, see https://github.com/timber/timber/blob/2.x/src/Integration/CoAuthorsPlusIntegration.php
I initially added the hint to the Upgrade Guide before we added back support.
Let’s remove this from the Upgrade Guide.

Note that I'm about to add Authorship support ;)

Note that I'm about to add Authorship support ;)

Didn’t know that, looks great!


winPB: Update OpenSSL to use OpenSSL1.1.1e

Ref: #1205
^ Don't think it closes the issue as the existing build machines will need to be updated.
Changes the OpenSSL version to OpenSSL 1.1.1e. Includes building 32 and 64 bit with VS2013, and 64 bit with VS2017.
Testing with vagrantPlaybookCheck:
https://ci.adoptopenjdk.net/view/Tooling/job/VagrantPlaybookCheck/409/
https://ci.adoptopenjdk.net/view/Tooling/job/VagrantPlaybookCheck/410/

How much longer will it take to build all the variants instead of extracting from a pre-built tarball?

It's about 5 minutes per build, according to vagrantPlaybookCheck

Looks like if this playbook was run before for a previous version of OpenSSL, a file pax_global_header may exist in C:\temp that will cause the task OpenSSL : Unpack OpenSSL-1.1.1e for installation to fail as 7-zip is asking to over-write the pax_global_header file.
7-Zip 18.05 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2018-04-30

Scanning the drive for archives:
1 file, 9792634 bytes (9564 KiB)

Extracting archive: C:\temp\openssl-1.1.1e.tar.gz
--
Path = C:\temp\openssl-1.1.1e.tar.gz
Type = gzip
Headers Size = 10

Everything is Ok

Size:       43694080
Compressed: 9792634

7-Zip 18.05 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2018-04-30

Scanning the drive for archives:
1 file, 43694080 bytes (42 MiB)

Extracting archive: C:\temp\openssl-1.1.1e.tar
--
Path = C:\temp\openssl-1.1.1e.tar
Type = tar
Physical Size = 43694080
Headers Size = 1651200
Code Page = UTF-8

Would you like to replace the existing file:
  Path:     .\pax_global_header
  Size:     52 bytes (1 KiB)
  Modified: 2019-09-10 09:13:07
with the file from archive:
  Path:     pax_global_header
  Size:     52 bytes (1 KiB)
  Modified: 2020-03-17 10:31:17
? (Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit?
Archives with Errors: 1

I guess you could either force overwrite or have a cleanup task beforehand that would delete that file to prevent the 7zip conflict.

Adding it to the stuff to clean-up would be sensible if that's where it's coming from

I've been able to successfully build JDK11/J9 w/OpenSSL1.1.1e. The latest commit has added pax_global_header to the removal list- thanks @olvap377 for spotting that :-)

fixes: #1205
Also, I'm holding off until I can get a clear working run of the playbook in VagrantPlaybookCheck, and the build configuration lists the correct directory - I don't believe the build will complete as there are other issues that have been fixed, but aren't included in this branch

@Willsparker so we should hold off merging?

I think this is ready now :-) we know it works for builds because it worked for the nightlies after I put them on the machines yesterday
https://ci.adoptopenjdk.net/view/Tooling/job/VagrantPlaybookCheck/457/OS=Win2012,label=infra-vagrant-1/console


Playhouse support

Now peewee_async.PostgresqlDatabase inherits from peewee.PostgresqlDatabase so we cannot use async-peewee and playhouse extensions for PostgreSql (it requires PostgresqlExtDatabase from playhouse.postgres_ext) together.

@horpto I'll reopen this issue, as It still needs clear solution :)
As I see aiopg library has support for both hstore and json features out of box, and all we need is pass connection parameters. This needs to be documented and tested, and code by itself should be just a little bit adjusted.

Oh, we'll still need factory method for providing field overrides to generate proper SQL with JSON and Hstore fields support. Anyway, current code doesn't take care of it when creating async connection, but it should!

@horpto Please take a look at new peewee_asyncext module. Tests are passing, docs need to be updated.

@rudyryk I glanced at the module and it's good work in my view. There are 4 similar classes instead of 2 or even 1 generic classes, is it ok? I mean I tried to avoid reasonless growth of classes and save interfaces as possibly.
What do you assumes by "roviding field overrides to generate proper SQL with JSON and Hstore fields support"? I don't understand that.

Docs are updated: http://peewee-async.readthedocs.org/en/latest/peewee_async/api.html
I think that mimics original peewee's hierarchy is cleaner was, it will be easier to migrate code from sync to async when needed.


Re-tune ETCD performance params

Reduce election timeout to 5000ms (was 10000ms)
Raise heartbeat interval to 250ms (was 100ms)
Remove etcd cpu share (was 300)
Make etcd_cpu_limit and etcd_memory_limit optional.

ci check this


Did you just Rick-roll me?

Asshole

AGAIN!

That's why we made sure you really wanted to click it!


non-DMA-copy attempted of tensor type: string error when trying to run roberta-base example from tfhub

Click to expand!
Issue Type
Documentation Bug
Source
source
Tensorflow Version
2.5
Custom Code
No
OS Platform and Distribution
Ubuntu 18.04.5
Mobile device
No response
Python version
3.7
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
I am trying to run the following example for roberta-base, copied from the documentation on tfhub. However, it seems unhappy with how the input is being fed into the model. I am getting Invalid argument: During Variant Host->Device Copy: non-DMA-copy attempted of tensor type: string.
# define a text embedding model
text_input = tf.keras.layers.Input(shape=(), dtype=tf.string)
preprocessor = hub.KerasLayer("https://tfhub.dev/jeongukjae/roberta_en_cased_preprocess/1")
encoder_inputs = preprocessor(text_input)

encoder = hub.KerasLayer("https://tfhub.dev/jeongukjae/roberta_en_cased_L-12_H-768_A-12/1", trainable=True)
encoder_outputs = encoder(encoder_inputs)
pooled_output = encoder_outputs["pooled_output"]      # [batch_size, 768].
sequence_output = encoder_outputs["sequence_output"]  # [batch_size, seq_length, 768].

model = tf.keras.Model(text_input, pooled_output)

# You can embed your sentences as follows
sentences = tf.constant(["(your text here)"])
print(model(sentences))

If I instead use the preprocessor and encoder from BERT instead of RoBERTa, the code above works.
preprocessor = hub.KerasLayer("https://tfhub.dev/tensorflow/bert_en_uncased_preprocess/3")
encoder = hub.KerasLayer("https://tfhub.dev/tensorflow/bert_en_uncased_L-12_H-768_A-12/4", trainable=True)

In addition, the code above with the RoBERTa preprocessor/encoder seems to work if I use CPU instead of GPU (adding with tf.device('/cpu:0')), but this is not feasible because I need to fine-tune a model on lots of data.
Standalone code to reproduce the issue
I am using tensorflow version 2.5 and tensoflow_hub version 0.12. Here is a link to the model on tfhub: https://tfhub.dev/jeongukjae/roberta_en_cased_L-12_H-768_A-12/1.
Relevant log output
InvalidArgumentError: 2 root error(s) found.
  (0) Invalid argument:  2 root error(s) found.
  (0) Invalid argument: During Variant Host->Device Copy: non-DMA-copy attempted of tensor type: string
  (1) Invalid argument: During Variant Host->Device Copy: non-DMA-copy attempted of tensor type: string
0 successful operations.
0 derived errors ignored.
	 [[{{node StatefulPartitionedCall/StatefulPartitionedCall/bpe_sentencepiece_tokenizer/StatefulPartitionedCall/map/TensorArrayUnstack/TensorListFromTensor/_100}}]]
  (1) Invalid argument:  2 root error(s) found.
  (0) Invalid argument: During Variant Host->Device Copy: non-DMA-copy attempted of tensor type: string
  (1) Invalid argument: During Variant Host->Device Copy: non-DMA-copy attempted of tensor type: string
0 successful operations.
0 derived errors ignored.
	 [[{{node StatefulPartitionedCall/StatefulPartitionedCall/bpe_sentencepiece_tokenizer/StatefulPartitionedCall/map/TensorArrayUnstack/TensorListFromTensor/_100}}]]
	 [[StatefulPartitionedCall/StatefulPartitionedCall/bpe_sentencepiece_tokenizer/StatefulPartitionedCall/RaggedFromRowSplits_1/RowPartitionFromRowSplits/control_dependency/_157]]
0 successful operations.
0 derived errors ignored. [Op:__inference_restored_function_body_376768]

Function call stack:
restored_function_body -> restored_function_body

@preethiseshadri518 I was able to replicate the issue on cpu and gpu runtime. Please find the attached gists and for any further queries kindly post this issue on hub  repo to get the right help there. Thank you!

Thank you, will post there.


Lexer optimizations using the next charCode in the remaining text.

If we know which characters can start each tokenType match.
We can drastically reduce the number of of regExp we need to attempt after every token has been matched.
This can be done by building a map between the start characters and an array of allowed tokenTypes.

Benefits
Full flow benchmark has improved by 25% for a simple grammar (JSON),
60% for a medium sized grammar (CSS) and 400% for a grammar with a very large lexer (JDL).
In general the more TokenTypes there are the greater the benefit.
When can optimization be applied?
In general the Lexer always attempts to apply the optimization.
However, in some cases it cannot and will silently revert back to the old (slower) behavior.
See section 2 in How do I Maximize my parser's performance? FAQ. For details how to ensure a Lexer enjoys these optimizations.
How can the optimization be disabled?
As with every new logic there may be bugs, If there exists a suspision that the
optimization has caused incorrect behavior, simply enable "safeMode"  to disable it and re-check.
     const { Lexer } = require("chevrotain")
     const myLexer = new Lexer([/* tokens */], { safeMode : true })

Released in 3.1.0


Backport 2.7: Suport clang version 3.8

Backport of #1075 to mbedtls-2.7

Tested with clang versions 3.4.2, 4.0.1 and 6.0.0 to ensure it works as expected.
Approved for merge.


Deprecate bem techs

[x] bemdecl-from-bemjson
[x] bemdecl-from-deps-by-tech
[x] bemdecl-merge
[x] bemdecl-provider
[x] bemdecl-test
[x] deps-merge
[x] deps-old
[x] deps-provider
[x] deps-subtract
[x] deps
[x] files
[x] levels

I use bemdecl-test tech for my unit tests. What should I use instead of  bemdecl-test` tech?

The bemdecl-test tech has not been transferred to other packages. I do not have a good implementation that I would recommend.
You can use your own implementation at the level of their projects or create package for these tasks.
I know of packages to build and run tests:

enb-bem-specs
enb-bem-tmpl-specs
enb-bem-node-specs

Ok. Thank you. I'll take a look at these packages.


Update indicator in help menu could be more descriptive

Maybe Update: Download Now?

fyi @sbatten

(Assuming this is Windows because I cant figure out how I even ought to be able to get into this state on mac or linux)
I can't seem to get into this state. Even when I have "update.mode": "manual" and "update.enableWindowsBackgroundUpdates": false, when I click "check for updates" it instantly converts to the "downloading update"/"restart to update" state.
Is it a separate bug that "update.enableWindowsBackgroundUpdates": false isn't being respected?

Download the Linux ZIP
Extract it and change the commit field in product.json to outdated
Launch it and trigger Check for Updates


MWPW-121476 call interlinks

Fixes the interlinks. The issue was that we were importing the interlink module, but not calling its init method.
Resolves: MWPW-121476
Test URLs:

Before: https://main--milo--adobecom.hlx.page/drafts/amauchley/interlinks
After: https://vhargrave-interlinks--milo--adobecom.hlx.page/?martech=off

@vhargrave you have merge conflicts.

@vhargrave you have merge conflicts.

@auniverseaway fixed!


[New Internship/Hackathon]: Student Intern - Intel Corporation

Is there an existing issue for this?

[X] I have searched the existing issues

Description
I want to add the intel student internship to this.
please assign @pa
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

Adding the new internship is just adding the data. You can also do it by solving some real issues.
Ping me for assigning the one.


insurance

is there an insurance section in CCDA's my coworker believes it to be under the "Payers". the title being Insurance Providers.

From a quick look, it does look like the CCDA spec supports an optional Payers section to hold insurance info. The CCDA spec is huge and the BB JS library has evolved to parse/generate sections that various users have had a need for (in large part, the parts required by meaningful use), so there are many spec-ed sections that we don't have support for (yet – always open to pull requests). Are you running into files in the wild with this section or looking to generate CCDAs containing it?

my company needs to include insurance information and that seems to be the section they will be including, my boss has a running server of this and may be adding the section but i'm sure he will do a pull request once he completes the section. At the very least he will provide a starting point for you on the section.
note: my coworker kept refering to it as payers and claimed it was part of the CCDA spec. i'll provide any info i can asap


Use a custom post policy to force clients to use TIKI proxy

We want to create our own simplified version of the S3 post policy to force all clients to use TIKI's proxy to write to the buckets so we can accurately log utilization.

Before this ticket is worked on an API std. needs to be drafted.

return a signed jwt
we need to sync pub-key with workers (Cloudflare vars will be more performant than a hosted jwks file)
jwt needs the following claims: [sub, exp, iat, iss] where sub= B64URL(SHA256(customerId))/B64URL(SHA256(pubKey))

done. final tests will be completed in tiki-sdk-dart #160


Error when using multiple draggable component. X and Y of element becomes NaN

There is an error when you are dragging an element (element 1) on bottom of another element (element 2) then you right click element 2 while dragging element 1. Element 1's x and y becomes NaN and cannot be moved.

Can you provide some code please? I'm not able to recreate the issue.

Hello! I am very sorry for the late reply. I got tangled on my work. Here is my code and a video of its behavoir
<template>

    <VueDraggableResizable
      class-name-active="my-active-class"
      v-for="element in elements"
      :key="element.id"
      :x="element.x"
      :y="element.y"
      :w="200"
      :h="200"
      :resizable="false"
      @dragging="(left, top) => dragging(element.id, left, top)"
      @dragstop="(left, top) => dragstop(element.id, left, top)"
      style="border: solid 1px black"
    >

{{ element.text }}

    </VueDraggableResizable>

</template>

It only happens when you right click another element while still holding an element.
Thank you!

I also have the same issue and I really need this to be fixed asap. Btw thanks for this awesome library.


Enable context namespace for ruby

see: https://github.com/rcarriga/vim-ultest/issues/81#issuecomment-979809704 for detail.
Make sure these boxes are checked before submitting your pull request:

[ ] Add fixtures and spec when implementing or updating a test runner
[ ] Update the README accordingly
[ ] Update the Vim documentation in doc/test.txt

There is no previous test for rspec describe, but I'll try it on this weekend.


Bayesian optimization result on MICHALEWICZ FUNCTION

I applied Bayesian optimization to Michalewicz function,
and the hyperparameters I choose as following:
bo.maximize(init_points=5, n_iter=1000, acq='ucb', kappa=2.5, xi=0.01, alpha=1e-5)
Here is the link about Michalewicz function, it can have different dimensions:
https://www.sfu.ca/~ssurjano/michal.html
In this web page, they give us the minimum of Michalewicz function when
dimension d = 1, d = 5, d= 10, and range of parameters space is [0, pi]
I put a negative sign before Michalewicz function and maximize this function
The optimization result of d = 5:

The optimization result of d = 10:

The optimization result of d = 30:

In theory, Bayesian optimization should work at least d = 20, do you have any suggestion on tuning
parameters or do you have similar result on Michalewicz function?

With the ucb acquisition the higher the kappa the more exploration if favoured over exploitation. So I suggest you increasing kappa and seeing what you get. Also, by increasing init_points you also help with exploration, so you might consider changing that to 10, 20, or maybe 50.
That's a great function for benchmarking by the way. I might put together an example using it.


Faster Paulis to Matrix method

Summary
Faster Paulis to Matrix calculation using bit-wise operations. Since we are only dealing with (2x2) Pauli matrices, we can utilize some relations between their different representations.
Details and comments
The most important relation is, that if a Pauli matrix has a value at (x,y) [Where x,y are positions in a 2x2 matrix], then the same matrix also has a value at (1,1)^(x,y) where [^] is the xor operator. For example, for a X gate, we have values at (1,0) and at (1,1)^(1,0)=(0,1). Taking into account the Kronecker product, we can use this relationship to calculate the spmatrix faster.
A Pauli-Product matrix has values in each column, and the corresponding row is just the result of converting the series of X gates to a binary number (xs), and taking row=column^xs (this is again the xor operator). A similar calculation finds the appropriate phase.
My tests showed this runs, for up to 10 Qubit Hamiltonians, about 4 times faster.

Hi @yotamvakninibm , as this shows some substantial runtime improvement on possibly important problems, can you open an issue which shows some explicit results / graphs so we know exactly what problems it improves? If most problems are Aqua/VQE-like, I think best to open the issue in Aqua

Sure, I'll do it.

@yotamvakninibm I didn't mean for you to close... I think the PR is in place, just need in addition an exhibition/discussion of the runtime improvement results - see where it's relevant etc.

Opened an Issue in Aqua:
https://github.com/Qiskit/qiskit-aqua/issues/636

this LGTM.


Fix typo in content/logs/reference/log-fields/account/gateway_network.md

sesion -> session
Overriden -> Overridden

Some backgrounds on how theses typos are found & fixed, I've wrote a (Chinese) blog about this: https://nova.moe/fast-typo-fix/ (English version: https://nova.moe/fast-typo-fix-en/) 😇

Howdy @n0vad3v, this has to be addressed via an internal PR (as these docs are generated from a different source of truth).
cc: @angelampcosta

Howdy @n0vad3v, this has to be addressed via an internal PR (as these docs are generated from a different source of truth).
cc: @angelampcosta

Internal changes were made, we can merge the PR. @n0vad3v for pointing this out.


interventions templates

Interventions should come from API and create a dynamic sentence depending on the intervention type. This PR adds different templates for the three intervention types

When you move the cursorr over an intervention, we don't have any UI feedback, a cursoir pointer and background change will be nice.


Table of content becomes a code block.

The auto toc adds a tab before the toc content which will result in a code block in the preview mode.

@joezhouchenye I'm not able to reproduce this bug. Can you give me an example?

Thanks for replying. After a few attempts, I have found what causes this bug. If the file has a first-level heading, the auto toc works well. However, in a file that starts from a second-level heading, the bug appears.
Without H1

With H1

Fixed in version 1.9.0