[Retiarii] support hypermodule: autoactivation

hypermodule is a (PyTorch) module which contains many architecture/hyperparameter candidates for this module. By using hypermodule, NNI will automatically find the best architecture/hyperparameter for this module. This follows the design philosophy of Retiarii that users write DNN model as a space.
This pr is implementing AutoActivation from the paper "Search for activation Functions"

[x] AutoActivation with one core unit
[ ] AutoActivation with two core units
[ ] add document and docstring
[ ] add test

@QuanluZhang do you have a minimal example that shows how to use this one?

@QuanluZhang do you have a minimal example that shows how to use this one?

I have not added the example in this pr. you can refer to the following example:
import random

from nni.retiarii import model_wrapper
import nni.retiarii.nn.pytorch as nn
import nni.retiarii.strategy as strategy
import nni.retiarii.evaluator.pytorch.lightning as pl
import torch.nn.functional as F
from nni.retiarii import serialize
from nni.retiarii.experiment.pytorch import RetiariiExeConfig, RetiariiExperiment, debug_mutated_model
from torch.utils.data import DataLoader
from torchvision import transforms
from torchvision.datasets import MNIST
#import nni

@model_wrapper
class Net(nn.Module):
    def __init__(self, hidden_size):
        #super(Net, self).__init__()
        super().__init__()
        self.conv1 = nn.Conv2d(1, 20, 5, 1)
        self.conv2 = nn.Conv2d(20, 50, 5, 1)
        self.fc1 = nn.Linear(4*4*50, hidden_size)
        #self.fc1 = nn.LayerChoice([
        #    nn.Linear(4*4*50, hidden_size),
        #    nn.Linear(4*4*50, hidden_size, bias=False)
        #])
        #repeat = nn.Linear(hidden_size, hidden_size)
        #self.repeat = nn.Repeat(repeat, [1, 4])
        #self.act_cell = nn.Cell([nn.ReLU(), nn.Dropout(), nn.Linear(hidden_size, hidden_size)], 3, 3)
        #self.fc2 = nn.Linear(hidden_size*3, 10)
        self.fc2 = nn.Linear(hidden_size, 10)
        self.act = nn.AutoActivation()

    def forward(self, x):
        x = F.relu(self.conv1(x))
        x = F.max_pool2d(x, 2, 2)
        x = F.relu(self.conv2(x))
        x = F.max_pool2d(x, 2, 2)
        x = x.view(-1, 4*4*50)
        x = F.relu(self.fc1(x))
        #x = self.repeat(x)
        #x = self.act_cell([x])
        x = self.act(self.fc2(x))
        return F.log_softmax(x, dim=1)

if __name__ == '__main__':
    base_model = Net(128)
    transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))])
    train_dataset = serialize(MNIST, root='data/mnist', train=True, download=True, transform=transform)
    test_dataset = serialize(MNIST, root='data/mnist', train=False, download=True, transform=transform)
    trainer = pl.Classification(train_dataloader=pl.DataLoader(train_dataset, batch_size=100),
                                val_dataloaders=pl.DataLoader(test_dataset, batch_size=100),
                                max_epochs=1, gpus=1)

    # uncomment the following two lines to debug a generated model
    #debug_mutated_model(base_model, trainer, [])
    #exit(0)

    #simple_strategy = strategy.PolicyBasedRL()
    simple_strategy = strategy.GridSearch()

    exp = RetiariiExperiment(base_model, trainer, [], simple_strategy)

    exp_config = RetiariiExeConfig('local')
    exp_config.experiment_name = 'mnist_search'
    exp_config.trial_concurrency = 3
    exp_config.max_trial_number = 250
    exp_config.trial_gpu_number = 1
    exp_config.training_service.use_active_gpu = False
    exp_config.execution_engine = 'py'

    exp.run(exp_config, 8081 + random.randint(0, 100))
    print('Final model:')
    for model_code in exp.export_top_models(formatter='dict'):
        print(model_code)

Sure. Will give it a try. Would you folks prefer to have Colab Notebooks as they don't require any non-trivial setups and might be easier for anyone to get started?


[1.13] DCOS-47608 fix race condition when rewriting resolv.conf

High-level description

What features does this change enable? What bugs does this change fix?
The bug was caused by a race condition that resulted in an empty
resolv.conf that has been picked up by DC/OS Diagnostics and then
Diagnostics was not able to resolve any hostname.
This bug only appears in Docker enviroments (i.e. dcos-e2e) causing
flaky tests.
Corresponding DC/OS tickets (required)

DCOS-47608 Error executing DC/OS components health check: unable to create HTTP client: dial tcp: lookup master.mesos on [::1]:53: dial udp [::1]:53: connect: network is unreachable

Related tickets (optional)

DCOS-ID JIRA title / short description.

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[x] Change log from the last version integrated (this should be a link to commits for easy verification and review): no user-facing change
[x] Test Results: [link to CI job test results for component]
[x] Code Coverage (if available): [link to code coverage report]

@mesosphere-mergebot label Ready For Review

I think is a user-facing bug fix and I am going to edit CHANGES.md in hindsight.

I think is a user-facing bug fix and I am going to edit CHANGES.md in hindsight.

Thanks, @jgehrcke.


[Bug] LICENSE should have PingCap copyright

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Search before asking

[X] I have searched in the issues and found no similar issues.

Describe the bug
https://github.com/tikv/raft-engine?tab=readme-ov-file#license includes
Copyright (c) 2017-present, PingCAP, Inc. Released under the Apache 2.0 license. See LICENSE for details.
Affects Version(s)
master & 0.9.2-rc1
Uniffle Server Log Output
No response
Uniffle Engine Log Output
No response
Uniffle Server Configurations
No response
Uniffle Engine Configurations
No response
Additional context
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Thanks for your advice. But for this rust implementation, I'm considering use another implementaion to replace current code


deprecating the current usage, and make it follow official CSS Module spec

Here's how the standardized CSS Module spec works:
https://web.dev/css-module-scripts
The import does not return CSS class names, but a CSS style sheet.
It could be possible to provide a utility that gets the class names from the sheet, and even modified the class names in the CSS OM, and it could also be possible to do at build time. With this idea, the default behavior would be as the CSS Module spec, but then some options could be specified to opt into the non-standard behavior.
The standard behavior would be more useful for vanilla custom elements and aligned with future direction of web, but the opt-in CSS name handling could be more useful for systems like React, Preact, Solid.js, etc.

WOW~ It's a cool idea, I will have a try, thanks @trusktr  !

@trusktr after some investigation I found that import assertion has been deprecated and there's another propsal using with instead of assert https://github.com/tc39/proposal-import-attributes and esbuild hasn't implemented this feature.


Allow overriding of app name in manifest

I have a need to decide, in the pipeline, what the cf app name needs to be. It would be handy to be able to override the name value in the manifest.yml from the cf-resource thusly:
- put: cf-resource
  inputs:
  - name: release
  params:
    new_app_name: my-app-12345
    manifest: release/manifest.yml
    path: release

What is your use case?


Add code health measure to output

@David-Pena what do you think calculating a code health?
Something like all warnings collected by the analyzer divided by the number of lines of all vue files?
Or something similiar but defendable ratio?
Maybe some scientific measure already exists..

Interesting..
Something like number of offenses per file divided by the number of files? There can be a ratio here

I like that also.
Or the number of rule violations per 1000 lines of code?

We need to do a sample implementation using one of those formulas and try it again a different codebases and check which formula is better

Nice idea.
Non of the implementations is difficult, so we can do them and check what numbers we get.
I have quite a few project to test on.
I am off computer till Tuesday, we organize a wedding on Monday.

Got it.
If I code today, I'll do this first and we can decide
Good luck with the wedding planning 🫡

You take whatever issue you want. We have quite a few and I am ok with any of them.
Just assign it to yourself so we do not step on each other toes.

Just to clarify.
It should be calculated only on the applied rules, skipping the ignored ones.

@David-Pena what doyou think about this one?

I just fixed the calculation.
I was suprised why I get so low scores for my vue projects... And the calculation was wrong. Now they are in the OK zone - what sounds much realistic.

@rrd108 , I would lean towards the first approach (errors per lines of code) as it provides a more detailed and size-aware measure of code health.
Also mine was giving me super low values and comparing both approaches, yours is better.
I think we should improve the first approach in the future to assign differents weights to some rules, because the warning/error levels should affect this score.

Ok.
What about using a weight to these? Like 1 for warnings at 1.5 to errors?

What about using a weight to these? Like 1 for warnings at 1.5 to errors?

Let's try it and we will decide


Inheritance for model object(Complex object)

Can you please let me know what am I doing wrong?
@ApiModel(value = "ContainerSearchResultV2")
public class earchApiResultV2 extends SearchApiResult {
private Set<Journal> journals = new HashSet<>();
}

public class Journal extends Entity<Journal> {
private String name;
private Optional<String> url;

Getter and setter methods

}

public abstract class Entity<T> implements Serializable {
protected Set<EntityIdentifier> identifiers = new HashSet<>();
protected Optional<String> source = Optional.empty();
protected Set<T> mergedWith = new HashSet<>();

Getter and setter methods
}

In swagger documentation , I am getting Journal model as below
Journal{
name string
url string
}

I am not getting inherited field from Entity in swagger docs

Hmm not sure, those should totally get picked up.

@dilipkrish is there any way to mark fields are deprecated ?


 But there is some GHA feature, that it treats as 1.2. This can be seen in the Dependabot PR - https://github.com/scalyr/dataset-go/actions/runs/5960922153/job/16169141080?pr=49#step:4:31 - which has failed because some tools cannot be installed with Go 1.2.
But when I check the same action in the PR #53 - it has failed - https://github.com/scalyr/dataset-go/actions/runs/5952594475/job/16144912841. I have enabled auto merge, but I haven't expected, that it will be merged, when there is some failing action.

🛠 Solution
Fix the notation so that Go 1.20 is used instead of 1.2
🏫 Testing
Check that the pipeline succeeds.

After the PR is created it takes some time before the pipelines are triggered. And based on the UI it looks that it's possible to merge it when approved even without successful GHA.


Accessing Model Methods

I have used simple-history to generate a long list of historical objects for a number of objects and made great use of the admin interface. However, as part of a manual compare process, I'd like to use some of the model methods that exist on my model. However, when I try to access them on the HistoricalModel it of course reports the functions don't exist.
Is there a way to make use of model methods on Historical objects? The process for turning a HistrocialModel into a Model isn't stated/clear (unless I've missed something which is certainly possible).

You have two options currently:

Extend the historical model to have the methods you would like. This can be done with a custom base class.
Use the (apparently undocumented?) instance attribute. On any HistoricalModelproper instance, there is a instance attribute which will make a equivalent Model with the data from that point in time. Be very careful though, as saving it will override anything matching that primary key in your Model table.

I believe the second approach is what you were looking for.

Great, thanks @macro1. instance did the trick for my need.
Now just to sort out m2m fields and skipping duplicate saves (I had misinterpreted 'excluded_fields' as not saving when there are only changes to those fields).


Add kredis_boolean attribute with default argument

Add kredis_boolean. Follows in the same vein of existing attributes (e.g. kredis_integer). The only difference being I added default as an argument:
kredis_boolean :noodling, default: false

What's the use case? This is generally what the flag type is meant to support, so the boolean aspect is whether or not the key has a value in Redis.

I didn't realise that flag was meant for this use case.
I'm happy to close this PR if it adds no value.
Thanks for the feedback. I'm a big fan of your work.

Hi,
Thanks for this great encapsulation :) Had to build a custom framework for this kind of things before.
I can actually see a use case for booleans with defaults:

we can have several user settings to enable / disable certain features, e.g. reports_enabled, api_enabled, notifications_enabled
For consistency, we want to keep all naming to have _enabled suffix
By default, we want to keep certain features enabled and others disabled

Right now, we could do it by raising flags in an after_craete callback, but a default option would be nicer.
Also, flags seem to be great for 'flagging' things. E.g. crossed_the_finish_line, invitation_sent. It feels that settings like above are a kind of different category. But this is a minot thing :)
Maybe you can see a better place for settings like those?
Best,
Adam


elixir-ls fails to start

Whether I use the built-in version of elixir-ls or I build it on my own, the :CocInfo after opening an .exs or .ex file shows the following:
## versions

vim version: NVIM v0.4.3
node version: v13.7.0
coc.nvim version: 0.0.78-3478962539
coc.nvim directory: /home/justinian/.local/share/nvim/plugged/coc.nvim
term: xterm-256color
platform: linux

## Output channel: elixir

15:10:52.292 [info]  Application elixir_ls_utils exited: :stopped
Started ElixirLS v0.4.0

15:10:52.292 [info]  Application erl2ex exited: :stopped

15:10:52.292 [info]  Application forms exited: :stopped
Elixir version: "1.10.3 (compiled with Erlang/OTP 21)"
Erlang version: "23"
[Warn  - 3:10:52 PM] ** (exit) exited in: GenServer.call(ElixirLS.LanguageServer.JsonRpc, {:packet, %{"id" => 0, "jsonrpc" => "2.0", "method" => "initialize", "params" => %{"capabilities" => %{"textDocument" => %{"codeAction" => %{"codeActionLiteralSupport" => %{"codeActionKind" => %{"valueSet" => ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"]}}, "dynamicRegistration" => true, "isPreferredSupport" => true}, "codeLens" => %{"dynamicRegistration" => true}, "colorProvider" => %{"dynamicRegistration" => true}, "completion" => %{"completionItem" => %{"commitCharactersSupport" => true, "deprecatedSupport" => true, "documentationFormat" => ["markdown", "plaintext"], "preselectSupport" => true, "snippetSupport" => true}, "completionItemKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]}, "contextSupport" => true, "dynamicRegistration" => true}, "declaration" => %{"dynamicRegistration" => true}, "definition" => %{"dynamicRegistration" => true}, "documentHighlight" => %{"dynamicRegistration" => true}, "documentLink" => %{"dynamicRegistration" => true, "tooltipSupport" => true}, "documentSymbol" => %{"dynamicRegistration" => true, "hierarchicalDocumentSymbolSupport" => true, "symbolKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, "tagSupport" => %{"valueSet" => [1]}}, "foldingRange" => %{"dynamicRegistration" => true, "lineFoldingOnly" => true, "rangeLimit" => 5000}, "formatting" => %{"dynamicRegistration" => true}, "hover" => %{"contentFormat" => ["markdown", "plaintext"], "dynamicRegistration" => true}, "implementation" => %{"dynamicRegistration" => true}, "onTypeFormatting" => %{"dynamicRegistration" => true}, "publishDiagnostics" => %{"relatedInformation" => true, "tagSupport" => %{"valueSet" => [1, 2]}, "versionSupport" => false}, "rangeFormatting" => %{"dynamicRegistration" => true}, "references" => %{"dynamicRegistration" => true}, "rename" => %{"dynamicRegistration" => true, "prepareSupport" => true}, "selectionRange" => %{"dynamicRegistration" => true}, "signatureHelp" => %{"dynamicRegistration" => true, "signatureInformation" => %{"documentationFormat" => ["markdown", "plaintext"], "parameterInformation" => %{"labelOffsetSupport" => true}}}, "synchronization" => %{"didSave" => true, "dynamicRegistration" => true, "willSave" => true, "willSaveWaitUntil" => true}, "typeDefinition" => %{"dynamicRegistration" => true}}, "window" => %{"workDoneProgress" => true}, "workspace" => %{"applyEdit" => true, "configuration" => true, "didChangeConfiguration" => %{"dynamicRegistration" => true}, "didChangeWatchedFiles" => %{"dynamicRegistration" => true}, "executeCommand" => %{"dynamicRegistration" => true}, "symbol" => %{"dynamicRegistration" => true, "symbolKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, "tagSupport" => %{"valueSet" => [1]}}, "workspaceEdit" => %{"documentChanges" => true, "failureHandling" => "textOnlyTransactional", "resourceOperations" => ["create", "rename", "delete"]}, "workspaceFolders" => true}}, "clientInfo" => %{"name" => "coc.nvim", "version" => "0.0.78"}, "processId" => 32234, "rootPath" => "/home/justinian/elixir/pragprog", "rootUri" => "file:///home/justinian/elixir/pragprog", "trace" => "off", "workspaceFolders" => [%{"name" => "pragprog", "uri" => "file:///home/justinian/elixir/pragprog"}]}}}, 5000)
    ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started
    (elixir 1.10.3) lib/gen_server.ex:1013: GenServer.call/3
    (elixir 1.10.3) lib/stream.ex:441: anonymous fn/4 in Stream.each/2
    (elixir 1.10.3) lib/stream.ex:1449: Stream.do_element_resource/6
    (elixir 1.10.3) lib/stream.ex:1609: Enumerable.Stream.do_each/4
    (elixir 1.10.3) lib/stream.ex:649: Stream.run/1
    (stdlib 3.13) erl_eval.erl:680: :erl_eval.do_apply/6
[Error  - 3:10:52 PM] ~/git/elixir-ls/release/language_server.sh exited with code: 1
[Info  - 3:10:52 PM] Connection to server got closed. Server will restart.

15:10:52.489 [info]  Application elixir_ls_utils exited: :stopped
Started ElixirLS v0.4.0

15:10:52.490 [info]  Application erl2ex exited: :stopped

15:10:52.490 [info]  Application forms exited: :stopped
Elixir version: "1.10.3 (compiled with Erlang/OTP 21)"
Erlang version: "23"
[Warn  - 3:10:52 PM] ** (exit) exited in: GenServer.call(ElixirLS.LanguageServer.JsonRpc, {:packet, %{"id" => 0, "jsonrpc" => "2.0", "method" => "initialize", "params" => %{"capabilities" => %{"textDocument" => %{"codeAction" => %{"codeActionLiteralSupport" => %{"codeActionKind" => %{"valueSet" => ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"]}}, "dynamicRegistration" => true, "isPreferredSupport" => true}, "codeLens" => %{"dynamicRegistration" => true}, "colorProvider" => %{"dynamicRegistration" => true}, "completion" => %{"completionItem" => %{"commitCharactersSupport" => true, "deprecatedSupport" => true, "documentationFormat" => ["markdown", "plaintext"], "preselectSupport" => true, "snippetSupport" => true}, "completionItemKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]}, "contextSupport" => true, "dynamicRegistration" => true}, "declaration" => %{"dynamicRegistration" => true}, "definition" => %{"dynamicRegistration" => true}, "documentHighlight" => %{"dynamicRegistration" => true}, "documentLink" => %{"dynamicRegistration" => true, "tooltipSupport" => true}, "documentSymbol" => %{"dynamicRegistration" => true, "hierarchicalDocumentSymbolSupport" => true, "symbolKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, "tagSupport" => %{"valueSet" => [1]}}, "foldingRange" => %{"dynamicRegistration" => true, "lineFoldingOnly" => true, "rangeLimit" => 5000}, "formatting" => %{"dynamicRegistration" => true}, "hover" => %{"contentFormat" => ["markdown", "plaintext"], "dynamicRegistration" => true}, "implementation" => %{"dynamicRegistration" => true}, "onTypeFormatting" => %{"dynamicRegistration" => true}, "publishDiagnostics" => %{"relatedInformation" => true, "tagSupport" => %{"valueSet" => [1, 2]}, "versionSupport" => false}, "rangeFormatting" => %{"dynamicRegistration" => true}, "references" => %{"dynamicRegistration" => true}, "rename" => %{"dynamicRegistration" => true, "prepareSupport" => true}, "selectionRange" => %{"dynamicRegistration" => true}, "signatureHelp" => %{"dynamicRegistration" => true, "signatureInformation" => %{"documentationFormat" => ["markdown", "plaintext"], "parameterInformation" => %{"labelOffsetSupport" => true}}}, "synchronization" => %{"didSave" => true, "dynamicRegistration" => true, "willSave" => true, "willSaveWaitUntil" => true}, "typeDefinition" => %{"dynamicRegistration" => true}}, "window" => %{"workDoneProgress" => true}, "workspace" => %{"applyEdit" => true, "configuration" => true, "didChangeConfiguration" => %{"dynamicRegistration" => true}, "didChangeWatchedFiles" => %{"dynamicRegistration" => true}, "executeCommand" => %{"dynamicRegistration" => true}, "symbol" => %{"dynamicRegistration" => true, "symbolKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, "tagSupport" => %{"valueSet" => [1]}}, "workspaceEdit" => %{"documentChanges" => true, "failureHandling" => "textOnlyTransactional", "resourceOperations" => ["create", "rename", "delete"]}, "workspaceFolders" => true}}, "clientInfo" => %{"name" => "coc.nvim", "version" => "0.0.78"}, "processId" => 32234, "rootPath" => "/home/justinian/elixir/pragprog", "rootUri" => "file:///home/justinian/elixir/pragprog", "trace" => "off", "workspaceFolders" => [%{"name" => "pragprog", "uri" => "file:///home/justinian/elixir/pragprog"}]}}}, 5000)
    ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started
    (elixir 1.10.3) lib/gen_server.ex:1013: GenServer.call/3
    (elixir 1.10.3) lib/stream.ex:441: anonymous fn/4 in Stream.each/2
    (elixir 1.10.3) lib/stream.ex:1449: Stream.do_element_resource/6
    (elixir 1.10.3) lib/stream.ex:1609: Enumerable.Stream.do_each/4
    (elixir 1.10.3) lib/stream.ex:649: Stream.run/1
    (stdlib 3.13) erl_eval.erl:680: :erl_eval.do_apply/6
[Error  - 3:10:52 PM] ~/git/elixir-ls/release/language_server.sh exited with code: 1
[Info  - 3:10:52 PM] Connection to server got closed. Server will restart.

15:10:52.687 [info]  Application elixir_ls_utils exited: :stopped
Started ElixirLS v0.4.0

15:10:52.688 [info]  Application erl2ex exited: :stopped

15:10:52.688 [info]  Application forms exited: :stopped
Elixir version: "1.10.3 (compiled with Erlang/OTP 21)"
Erlang version: "23"
[Warn  - 3:10:52 PM] ** (exit) exited in: GenServer.call(ElixirLS.LanguageServer.JsonRpc, {:packet, %{"id" => 0, "jsonrpc" => "2.0", "method" => "initialize", "params" => %{"capabilities" => %{"textDocument" => %{"codeAction" => %{"codeActionLiteralSupport" => %{"codeActionKind" => %{"valueSet" => ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"]}}, "dynamicRegistration" => true, "isPreferredSupport" => true}, "codeLens" => %{"dynamicRegistration" => true}, "colorProvider" => %{"dynamicRegistration" => true}, "completion" => %{"completionItem" => %{"commitCharactersSupport" => true, "deprecatedSupport" => true, "documentationFormat" => ["markdown", "plaintext"], "preselectSupport" => true, "snippetSupport" => true}, "completionItemKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]}, "contextSupport" => true, "dynamicRegistration" => true}, "declaration" => %{"dynamicRegistration" => true}, "definition" => %{"dynamicRegistration" => true}, "documentHighlight" => %{"dynamicRegistration" => true}, "documentLink" => %{"dynamicRegistration" => true, "tooltipSupport" => true}, "documentSymbol" => %{"dynamicRegistration" => true, "hierarchicalDocumentSymbolSupport" => true, "symbolKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, "tagSupport" => %{"valueSet" => [1]}}, "foldingRange" => %{"dynamicRegistration" => true, "lineFoldingOnly" => true, "rangeLimit" => 5000}, "formatting" => %{"dynamicRegistration" => true}, "hover" => %{"contentFormat" => ["markdown", "plaintext"], "dynamicRegistration" => true}, "implementation" => %{"dynamicRegistration" => true}, "onTypeFormatting" => %{"dynamicRegistration" => true}, "publishDiagnostics" => %{"relatedInformation" => true, "tagSupport" => %{"valueSet" => [1, 2]}, "versionSupport" => false}, "rangeFormatting" => %{"dynamicRegistration" => true}, "references" => %{"dynamicRegistration" => true}, "rename" => %{"dynamicRegistration" => true, "prepareSupport" => true}, "selectionRange" => %{"dynamicRegistration" => true}, "signatureHelp" => %{"dynamicRegistration" => true, "signatureInformation" => %{"documentationFormat" => ["markdown", "plaintext"], "parameterInformation" => %{"labelOffsetSupport" => true}}}, "synchronization" => %{"didSave" => true, "dynamicRegistration" => true, "willSave" => true, "willSaveWaitUntil" => true}, "typeDefinition" => %{"dynamicRegistration" => true}}, "window" => %{"workDoneProgress" => true}, "workspace" => %{"applyEdit" => true, "configuration" => true, "didChangeConfiguration" => %{"dynamicRegistration" => true}, "didChangeWatchedFiles" => %{"dynamicRegistration" => true}, "executeCommand" => %{"dynamicRegistration" => true}, "symbol" => %{"dynamicRegistration" => true, "symbolKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, "tagSupport" => %{"valueSet" => [1]}}, "workspaceEdit" => %{"documentChanges" => true, "failureHandling" => "textOnlyTransactional", "resourceOperations" => ["create", "rename", "delete"]}, "workspaceFolders" => true}}, "clientInfo" => %{"name" => "coc.nvim", "version" => "0.0.78"}, "processId" => 32234, "rootPath" => "/home/justinian/elixir/pragprog", "rootUri" => "file:///home/justinian/elixir/pragprog", "trace" => "off", "workspaceFolders" => [%{"name" => "pragprog", "uri" => "file:///home/justinian/elixir/pragprog"}]}}}, 5000)
    ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started
    (elixir 1.10.3) lib/gen_server.ex:1013: GenServer.call/3
    (elixir 1.10.3) lib/stream.ex:441: anonymous fn/4 in Stream.each/2
    (elixir 1.10.3) lib/stream.ex:1449: Stream.do_element_resource/6
    (elixir 1.10.3) lib/stream.ex:1609: Enumerable.Stream.do_each/4
    (elixir 1.10.3) lib/stream.ex:649: Stream.run/1
    (stdlib 3.13) erl_eval.erl:680: :erl_eval.do_apply/6
[Error  - 3:10:52 PM] ~/git/elixir-ls/release/language_server.sh exited with code: 1
[Info  - 3:10:52 PM] Connection to server got closed. Server will restart.

15:10:52.855 [info]  Application elixir_ls_utils exited: :stopped
Started ElixirLS v0.4.0

15:10:52.855 [info]  Application erl2ex exited: :stopped

15:10:52.855 [info]  Application forms exited: :stopped
Elixir version: "1.10.3 (compiled with Erlang/OTP 21)"
Erlang version: "23"
[Warn  - 3:10:52 PM] ** (exit) exited in: GenServer.call(ElixirLS.LanguageServer.JsonRpc, {:packet, %{"id" => 0, "jsonrpc" => "2.0", "method" => "initialize", "params" => %{"capabilities" => %{"textDocument" => %{"codeAction" => %{"codeActionLiteralSupport" => %{"codeActionKind" => %{"valueSet" => ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"]}}, "dynamicRegistration" => true, "isPreferredSupport" => true}, "codeLens" => %{"dynamicRegistration" => true}, "colorProvider" => %{"dynamicRegistration" => true}, "completion" => %{"completionItem" => %{"commitCharactersSupport" => true, "deprecatedSupport" => true, "documentationFormat" => ["markdown", "plaintext"], "preselectSupport" => true, "snippetSupport" => true}, "completionItemKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]}, "contextSupport" => true, "dynamicRegistration" => true}, "declaration" => %{"dynamicRegistration" => true}, "definition" => %{"dynamicRegistration" => true}, "documentHighlight" => %{"dynamicRegistration" => true}, "documentLink" => %{"dynamicRegistration" => true, "tooltipSupport" => true}, "documentSymbol" => %{"dynamicRegistration" => true, "hierarchicalDocumentSymbolSupport" => true, "symbolKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, "tagSupport" => %{"valueSet" => [1]}}, "foldingRange" => %{"dynamicRegistration" => true, "lineFoldingOnly" => true, "rangeLimit" => 5000}, "formatting" => %{"dynamicRegistration" => true}, "hover" => %{"contentFormat" => ["markdown", "plaintext"], "dynamicRegistration" => true}, "implementation" => %{"dynamicRegistration" => true}, "onTypeFormatting" => %{"dynamicRegistration" => true}, "publishDiagnostics" => %{"relatedInformation" => true, "tagSupport" => %{"valueSet" => [1, 2]}, "versionSupport" => false}, "rangeFormatting" => %{"dynamicRegistration" => true}, "references" => %{"dynamicRegistration" => true}, "rename" => %{"dynamicRegistration" => true, "prepareSupport" => true}, "selectionRange" => %{"dynamicRegistration" => true}, "signatureHelp" => %{"dynamicRegistration" => true, "signatureInformation" => %{"documentationFormat" => ["markdown", "plaintext"], "parameterInformation" => %{"labelOffsetSupport" => true}}}, "synchronization" => %{"didSave" => true, "dynamicRegistration" => true, "willSave" => true, "willSaveWaitUntil" => true}, "typeDefinition" => %{"dynamicRegistration" => true}}, "window" => %{"workDoneProgress" => true}, "workspace" => %{"applyEdit" => true, "configuration" => true, "didChangeConfiguration" => %{"dynamicRegistration" => true}, "didChangeWatchedFiles" => %{"dynamicRegistration" => true}, "executeCommand" => %{"dynamicRegistration" => true}, "symbol" => %{"dynamicRegistration" => true, "symbolKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, "tagSupport" => %{"valueSet" => [1]}}, "workspaceEdit" => %{"documentChanges" => true, "failureHandling" => "textOnlyTransactional", "resourceOperations" => ["create", "rename", "delete"]}, "workspaceFolders" => true}}, "clientInfo" => %{"name" => "coc.nvim", "version" => "0.0.78"}, "processId" => 32234, "rootPath" => "/home/justinian/elixir/pragprog", "rootUri" => "file:///home/justinian/elixir/pragprog", "trace" => "off", "workspaceFolders" => [%{"name" => "pragprog", "uri" => "file:///home/justinian/elixir/pragprog"}]}}}, 5000)
    ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started
    (elixir 1.10.3) lib/gen_server.ex:1013: GenServer.call/3
    (elixir 1.10.3) lib/stream.ex:441: anonymous fn/4 in Stream.each/2
    (elixir 1.10.3) lib/stream.ex:1449: Stream.do_element_resource/6
    (elixir 1.10.3) lib/stream.ex:1609: Enumerable.Stream.do_each/4
    (elixir 1.10.3) lib/stream.ex:649: Stream.run/1
    (stdlib 3.13) erl_eval.erl:680: :erl_eval.do_apply/6
[Error  - 3:10:52 PM] ~/git/elixir-ls/release/language_server.sh exited with code: 1
[Info  - 3:10:52 PM] Connection to server got closed. Server will restart.

15:10:53.029 [info]  Application elixir_ls_utils exited: :stopped
Started ElixirLS v0.4.0

15:10:53.029 [info]  Application erl2ex exited: :stopped

15:10:53.029 [info]  Application forms exited: :stopped
Elixir version: "1.10.3 (compiled with Erlang/OTP 21)"
Erlang version: "23"
[Warn  - 3:10:53 PM] ** (exit) exited in: GenServer.call(ElixirLS.LanguageServer.JsonRpc, {:packet, %{"id" => 0, "jsonrpc" => "2.0", "method" => "initialize", "params" => %{"capabilities" => %{"textDocument" => %{"codeAction" => %{"codeActionLiteralSupport" => %{"codeActionKind" => %{"valueSet" => ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"]}}, "dynamicRegistration" => true, "isPreferredSupport" => true}, "codeLens" => %{"dynamicRegistration" => true}, "colorProvider" => %{"dynamicRegistration" => true}, "completion" => %{"completionItem" => %{"commitCharactersSupport" => true, "deprecatedSupport" => true, "documentationFormat" => ["markdown", "plaintext"], "preselectSupport" => true, "snippetSupport" => true}, "completionItemKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]}, "contextSupport" => true, "dynamicRegistration" => true}, "declaration" => %{"dynamicRegistration" => true}, "definition" => %{"dynamicRegistration" => true}, "documentHighlight" => %{"dynamicRegistration" => true}, "documentLink" => %{"dynamicRegistration" => true, "tooltipSupport" => true}, "documentSymbol" => %{"dynamicRegistration" => true, "hierarchicalDocumentSymbolSupport" => true, "symbolKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, "tagSupport" => %{"valueSet" => [1]}}, "foldingRange" => %{"dynamicRegistration" => true, "lineFoldingOnly" => true, "rangeLimit" => 5000}, "formatting" => %{"dynamicRegistration" => true}, "hover" => %{"contentFormat" => ["markdown", "plaintext"], "dynamicRegistration" => true}, "implementation" => %{"dynamicRegistration" => true}, "onTypeFormatting" => %{"dynamicRegistration" => true}, "publishDiagnostics" => %{"relatedInformation" => true, "tagSupport" => %{"valueSet" => [1, 2]}, "versionSupport" => false}, "rangeFormatting" => %{"dynamicRegistration" => true}, "references" => %{"dynamicRegistration" => true}, "rename" => %{"dynamicRegistration" => true, "prepareSupport" => true}, "selectionRange" => %{"dynamicRegistration" => true}, "signatureHelp" => %{"dynamicRegistration" => true, "signatureInformation" => %{"documentationFormat" => ["markdown", "plaintext"], "parameterInformation" => %{"labelOffsetSupport" => true}}}, "synchronization" => %{"didSave" => true, "dynamicRegistration" => true, "willSave" => true, "willSaveWaitUntil" => true}, "typeDefinition" => %{"dynamicRegistration" => true}}, "window" => %{"workDoneProgress" => true}, "workspace" => %{"applyEdit" => true, "configuration" => true, "didChangeConfiguration" => %{"dynamicRegistration" => true}, "didChangeWatchedFiles" => %{"dynamicRegistration" => true}, "executeCommand" => %{"dynamicRegistration" => true}, "symbol" => %{"dynamicRegistration" => true, "symbolKind" => %{"valueSet" => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, "tagSupport" => %{"valueSet" => [1]}}, "workspaceEdit" => %{"documentChanges" => true, "failureHandling" => "textOnlyTransactional", "resourceOperations" => ["create", "rename", "delete"]}, "workspaceFolders" => true}}, "clientInfo" => %{"name" => "coc.nvim", "version" => "0.0.78"}, "processId" => 32234, "rootPath" => "/home/justinian/elixir/pragprog", "rootUri" => "file:///home/justinian/elixir/pragprog", "trace" => "off", "workspaceFolders" => [%{"name" => "pragprog", "uri" => "file:///home/justinian/elixir/pragprog"}]}}}, 5000)
    ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started
    (elixir 1.10.3) lib/gen_server.ex:1013: GenServer.call/3
    (elixir 1.10.3) lib/stream.ex:441: anonymous fn/4 in Stream.each/2
    (elixir 1.10.3) lib/stream.ex:1449: Stream.do_element_resource/6
    (elixir 1.10.3) lib/stream.ex:1609: Enumerable.Stream.do_each/4
    (elixir 1.10.3) lib/stream.ex:649: Stream.run/1
    (stdlib 3.13) erl_eval.erl:680: :erl_eval.do_apply/6
[Error  - 3:10:53 PM] ~/git/elixir-ls/release/language_server.sh exited with code: 1
[Error  - 3:10:53 PM] Connection to server got closed. Server will not be restarted.

Whether I use the built-in version of elixir-ls or I build it on my own, the :CocInfo after opening an .exs or .ex file shows the following:
15:10:53.029 [info]  Application forms exited: :stopped
Elixir version: "1.10.3 (compiled with Erlang/OTP 21)"
Erlang version: "23"

I just fixed my coc-elixir today after upgrading to 0.5.0, I had an error similar to yours.
Turns out the ElixirLS release files were all compiled with OTP 23, but my current workspace is set to use OTP 22.
So I had to re-compile ElixirLS using my env. Maybe the same will work for you.

I seem to have solved it by recompiling everything under OTP 20, installing the correct versions with asdf. Not ideal, but for a beginner doesn't really mean much.
Thanks for your help!


docker node tasks --filter service does not match any service

@vdemeester pointed me to a currently undocumented filter: https://github.com/docker/docker/issues/24108#issuecomment-229405837.
Now I'm trying to figure out how the service filter works in order to include it in bash completion.
I would expect it to filter on service names, maybe service IDs. Both do not work, see below.
# We have two tasks for the service "willi" running on the current node.
$ docker node tasks self
ID                         NAME     SERVICE  IMAGE    LAST STATE              DESIRED STATE  NODE
5kdt0xrzx6uzwf8tnlymbzoji  hugo.1   hugo     busybox  Running About a minute  Running        b43ea0e7607b
97ykmhi9nmu3zzif0tm14xdab  willi.2  willi    busybox  Running About a minute  Running        b43ea0e7607b
11d6bk78beytptwyxv14rgtki  willi.3  willi    busybox  Running About a minute  Running        b43ea0e7607b

# Unexpected: Filtering on the service name does not find them.
$ docker node tasks --filter service=willi self
ID  NAME  SERVICE  IMAGE  LAST STATE  DESIRED STATE  NODE

# The service has the ID "ad13314uq9zg"
$ docker service ls --filter name=willi
ID            NAME   REPLICAS  IMAGE    COMMAND
ad13314uq9zg  willi  3/3       busybox  top
# (Expected?): The service filter does not work for the ID as well.
$ docker node tasks --filter service=ad13314uq9zg self
ID  NAME  SERVICE  IMAGE  LAST STATE  DESIRED STATE  NODE

# Just to be sure: using an exact _task_ name does not work es well (expected)
$ docker node tasks --filter service=willi.2 self
ID  NAME  SERVICE  IMAGE  LAST STATE  DESIRED STATE  NODE

$ docker version
Client:
 Version:      1.12.0-dev
 API version:  1.25
 Go version:   go1.6.2
 Git commit:   3d231c7
 Built:        Wed Jun 29 14:55:18 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.0-dev
 API version:  1.25
 Go version:   go1.6.2
 Git commit:   3d231c7
 Built:        Wed Jun 29 14:55:18 2016
 OS/Arch:      linux/amd64

@albers it works only with long ids, like this :
$ docker service create --name=myservice busybox top
6v9ya0tpjy33uubcq6mvqlc7x
$ docker service create --name=myservice2 busybox top
6emh1x2mjzmvsky2stzyceltf

# Service in ls is truncated
$ docker service ls
ID            NAME       REPLICAS  IMAGE    COMMAND
6v9ya0tpjy33  myservice  1/1       busybox  top

$ docker service tasks myservice
ID                         NAME         SERVICE    IMAGE    LAST STATE              DESIRED STATE  NODE
bq71p1jiirb5nbnx8tdn97fef  myservice.1  myservice  busybox  Running About a minute  Running        c8ff21de55b0

$ docker node tasks self
ID                         NAME          SERVICE     IMAGE    LAST STATE              DESIRED STATE  NODE
9cxkgyqqd9valzaiwhtpabpu9  myservice2.1  myservice2  busybox  Running About a minute  Running        c8ff21de55b0
bq71p1jiirb5nbnx8tdn97fef  myservice.1   myservice   busybox  Running 4 minutes       Running        c8ff21de55b0

# Filtering by service
$ docker node tasks --filter=service=6v9ya0tpjy33uubcq6mvqlc7x self
ID                         NAME         SERVICE    IMAGE    LAST STATE         DESIRED STATE  NODE
bq71p1jiirb5nbnx8tdn97fef  myservice.1  myservice  busybox  Running 5 minutes  Running        c8ff21de55b0

$ docker node tasks --filter=service=6emh1x2mjzmvsky2stzyceltf self
ID                         NAME          SERVICE     IMAGE    LAST STATE         DESIRED STATE  NODE
9cxkgyqqd9valzaiwhtpabpu9  myservice2.1  myservice2  busybox  Running 3 minutes  Running        c8ff21de55b0

Note that you can also do the other way around:
# Listening only services on a node
$ docker node inspect --format {{.ID}} self
aglrdd79rq3dsj8fgaei69z13
$ docker service tasks --filter=node=aglrdd79rq3dsj8fgaei69z13 myservice
ID                         NAME         SERVICE    IMAGE    LAST STATE         DESIRED STATE  NODE
bq71p1jiirb5nbnx8tdn97fef  myservice.1  myservice  busybox  Running 9 minutes  Running        c8ff21de55b0

I'm not sure if --filter=service was meant to be exposed or documented (same for node for that matter) — and that would be why they are only working by full id :sweat_smile:.
There is a few solution here :

Nothing (:joy:), not documenting it, not doing completion on it and let the current behaviour
Hiding it : making it cli side not possible to use
Enhancing it : updating it so they could take names for example

/cc @icecrime @thaJeztah @dnephin @tiborvass @stevvooe WDYT ? :angel:

@vdemeester Thanks for carifying this.
I think this filter is quite useful and should be enhanced.

I'll take a look at both filters to make name work, will open a PR and we'll discuss there :angel:


Implement terashuf for shuffling subsampled reads

Hi Katie,
I looked into it to see how we could implement it into the subsampling pipeline, and we could simply plug in a tool called "terashuf" before the "head" command to shuffle the reads:
https://github.com/alexandres/terashuf
Specifically, recall that this is the general structure for how we currently do the subsampling:
minimap2 -t THREADS -a -x sr REFERENCE.MMI READ1.FASTQ.GZ READ2.FASTQ.GZ | samtools view -h -F 4 | head -NUM_READS_PLUS_3 | samtools sort --threads THREADS -o SORTED.BAM
What we would do is not output the SAM header in the first samtools view call (so all lines are just read alignments) by omitting the -h flag, then piping that to terashuf to shuffle the read alignments, then piping that to head, and then piping that to samtools view again but with the -h flag to add the header. In other words, we would do the following:
minimap2 -t THREADS -a -x sr REFERENCE.MMI READ1.FASTQ.GZ READ2.FASTQ.GZ | samtools view -F 4 | terashuf | samtools view -h | head -NUM_READS_PLUS_3 | samtools sort --threads THREADS -o SORTED.BAM
So the CCBB folks would be able to install terashuf on the instances that are running the subsampling workflow, and then rerun the 10M and 2M subsampling runs, and I could interpret the results given their output files.
Rob, thoughts? @rob-knight
-Niema

We will do this once for research, does not need to be added to pipeline

On Apr 21, 2021, at 10:39 AM, Kathleen Fisch @.***> wrote:
Hi Katie,
I looked into it to see how we could implement it into the subsampling pipeline, and we could simply plug in a tool called "terashuf" before the "head" command to shuffle the reads:
https://github.com/alexandres/terashuf https://urldefense.com/v3/__https://github.com/alexandres/terashuf__;!!Mih3wA!WVwgI3WWqfnnsA3DsZl_JT6wQ8YlmOWaUEfR57e7F1HYRjvRJWxk8OYuyTj2akWdHg$
Specifically, recall that this is the general structure for how we currently do the subsampling:
minimap2 -t THREADS -a -x sr REFERENCE.MMI READ1.FASTQ.GZ READ2.FASTQ.GZ | samtools view -h -F 4 | head -NUM_READS_PLUS_3 | samtools sort --threads THREADS -o SORTED.BAM
What we would do is not output the SAM header in the first samtools view call (so all lines are just read alignments) by omitting the -h flag, then piping that to terashuf to shuffle the read alignments, then piping that to head, and then piping that to samtools view again but with the -h flag to add the header. In other words, we would do the following:
minimap2 -t THREADS -a -x sr REFERENCE.MMI READ1.FASTQ.GZ READ2.FASTQ.GZ | samtools view -F 4 | terashuf | samtools view -h | head -NUM_READS_PLUS_3 | samtools sort --threads THREADS -o SORTED.BAM
So the CCBB folks would be able to install terashuf on the instances that are running the subsampling workflow, and then rerun the 10M and 2M subsampling runs, and I could interpret the results given their output files.
Rob, thoughts? @rob-knight https://urldefense.com/v3/__https://github.com/rob-knight__;!!Mih3wA!WVwgI3WWqfnnsA3DsZl_JT6wQ8YlmOWaUEfR57e7F1HYRjvRJWxk8OYuyTgXUV7bxw$
-Niema
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://urldefense.com/v3/__https://github.com/ucsd-ccbb/covid_sequencing_analysis_pipeline/issues/96__;!!Mih3wA!WVwgI3WWqfnnsA3DsZl_JT6wQ8YlmOWaUEfR57e7F1HYRjvRJWxk8OYuyTg50xdmOQ$, or unsubscribe https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AAPL2KOULJOP4QNJ45A42XTTJ4EU3ANCNFSM43KZZQRQ__;!!Mih3wA!WVwgI3WWqfnnsA3DsZl_JT6wQ8YlmOWaUEfR57e7F1HYRjvRJWxk8OYuyTiwvITt8A$.


add geospatial team to maintainers for geospatial packages where I'm a maintainer

Description of changes

add geospatial team to meta.maintainers for geospatial packages (and dependencies of geospatial packages) where I (@das-g) am a maintainer

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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/)
24.05 Release Notes (or backporting 23.05 and 23.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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

This shouldn't be merged before #288118 is merged, as otherwise I'd appear twice in the expanded lists of maintainers of these packages.
Appending "draft: " to the title didn't mark this PR as a draft (I guess that works only on GitLab, not GitHub?), thus temporarily closing this PR here, until #288118 is merged.

@das-g there is a conflict in pkgs/applications/misc/osmium-tool/default.nix

@das-g there is a conflict in pkgs/applications/misc/osmium-tool/default.nix

I'll look into it and will rebase.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/week-in-geospatial-team/37035/8


Problems opening a local file

When opening a local file, the total duration often contains incorrect data and there is no possibility of interactive scrolling (only with hot keys)

Please test the file with plugin disabled first in sandbox vault, and provide sample media file that can reproduce the issue.

Close due to inactivity


fixes EXDEV error on rename

Attempt at fixing #170

Hm, instead of doing this recursive copy and delete, why can't I just defer to mv since that handles EXDEV? My problem now (haven't thought about it properly) is how to make  this LD_PRELOAD trick to be very transparent to the user? Or if there might even be a better approach...

cc @mgree PTAL :)

I agree LD_PRELOAD is tacky.
I don't think fixing this is try's job. If an application calls rename directly without anticipating EXDEV, that's on the application to fix. It's only safe to call rename within a single directory---anything else requires checking the fs and having a fallback. Doing anything else may fail not just in try, but on any exotic mount arrangement.

Agree. Was a fun exercise though. Feel free to close this PR & corresponding issue :)


Support for Python 3.11

Description
If I create an environment with python version 3.11 and I try to install the smartnoise-synth package, I got an ERROR: no versions available for that package.
Command Line Example
conda create -n venv-ss-prova python=3.11 --yes
conda activate venv-ss-prova
pip install smartnoise-synth

then I got
ERROR: Ignored the following versions that require a different python version: 0.2.0 Requires-Python >=3.7.1,<=3.11; 0.2.1 Requires-Python >=3.7.1,<=3.11; 0.2.2 Requires-Python >=3.6.8,<3.9; 0.2.3 Requires-Python >=3.6.8,<3.9; 0.2.4 Requires-Python >=3.6.8,<3.9; 0.2.5 Requires-Python >=3.6.8,<3.9; 0.2.6 Requires-Python >=3.6.8,<3.9; 0.2.7 Requires-Python >=3.6.8,<3.9; 0.2.7.dev1 Requires-Python >=3.6.8,<3.9; 0.2.8 Requires-Python >=3.7,<3.9; <IP_ADDRESS> Requires-Python >=3.7,<3.9; 0.3.0 Requires-Python >=3.7,<3.11; <IP_ADDRESS> Requires-Python >=3.7,<3.11; <IP_ADDRESS> Requires-Python >=3.7,<3.11; 0.3.1 Requires-Python >=3.7,<3.11; 0.3.2 Requires-Python >=3.7,<3.11; 0.3.3 Requires-Python >=3.7,<3.11; 0.3.4 Requires-Python >=3.7,<3.11; 0.3.5 Requires-Python >=3.7,<3.11; <IP_ADDRESS> Requires-Python >=3.7,<3.11; 0.3.6 Requires-Python >=3.7,<3.11; <IP_ADDRESS> Requires-Python >=3.7,<3.11; <IP_ADDRESS> Requires-Python >=3.7,<=3.11; 0.3.7 Requires-Python >=3.7,<=3.11; 1.0.0 Requires-Python >=3.7,<=3.11; 1.0.1 Requires-Python >=3.7,<=3.11; 1.0.2 Requires-Python >=3.7,<=3.11; 1.0.3 Requires-Python >=3.7,<=3.11
ERROR: Could not find a version that satisfies the requirement smartnoise-synth (from versions: none)

I have a similar issue.
In setup.py, it states that the latest possible python version is 3.11. Would it be possible to support until 3.11.9 (or more)?

OK, version 1.0.4 is published to PyPi and should support Python 3.11. Please report back if you encounter any issues

That's great! Thank you

It works with python 3.11.9 but just FYI in one of my environment I had to do pip install packaging first for Synthesizer.create("dpctgan") to run properly.

Hello, thanks, now I can work on python 3.11.
I close the issue then.


option to set flag true to be used in subtenant

https://d.pr/i/5z1eUj by adding the true flag the cypher can be used with tasks whih are attached to workflow used in subtenants.

I thought I would drop a comment to say this is possible without using this Python module.
Use <%=cypher.read('secret/myuserpassword')%> as a command argument within your Morpheus task. Then within your Python code use cypher = sys.argv[1] which will have the value. It will call/use the secret/myuserpassword Cypher stored in the master tenant 👍


Orders API 2013-09-01

Hi,
I added some missing keywords to the mws.Orders() calls. Most of them are Japan only.
I renamed the deprecated 2011-01-01 version to mws.Orders_Deprecated()
I couldn't test the new keywords, because i have no access to an JP Seller Account, default value for those keywords is None.
See here for more information: http://docs.developer.amazonservices.com/en_US/orders/2013-09-01/Orders_Overview.html

It is probably past time to merge this branch, since 2011-01-01 will be deprecated one month from now (see issue #58).

Thanks for the pr.
Closing as this project is no longer maintained.
Please head over to https://github.com/python-amazon-mws/python-amazon-mws.


HeaderProvider reference is lost during ServiceOptions.toBuilder

serviceOptions.toBuilder().build() should not cause field values to be unset.

Thanks Burke! How did you notice this issue?

Working through specific requirements for https://github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/2906 by creating a test for it. I found I couldn't modify LoggingOptions via toBuilder without erasing its header provider.
https://github.com/GoogleCloudPlatform/spring-cloud-gcp/blob/d8d7168e57683adf76b1e56b1a3e7d87fb7d8bdf/spring-cloud-gcp-logging/src/main/java/com/google/cloud/spring/logging/LoggingAppender.java#L43


Get data of specific zoom time range

Summary
I want to make a function as shown in the picture. Is it possible to get the data of the specific time range?
Expected result
Action: Drag and zoom to a certain range.
Result: the data changed with the time range.
Intended Use Case
Show the total number of the specific zoom time range

already found solution here :)
https://apexcharts.com/javascript-chart-demos/area-charts/github-style/


Make Jaap Sahib Paragraphs look like v4.2.2

looks like we have no owner for this - its been over 2 years - going to close this in a week unless we have an owner

I can own this. @ManjotS I think you sent me a spreadsheet a while back that needed the paragraph IDs updated. If you can send that to me again I can go through and update it

pinged on slack

Got the spreadsheet. I need to work on this.


Update pom.xml

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/3180263425

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/3180263425
Status: success


Error message 'Source path does not exist' when Source is a unc path on a remote machine

I want to copy files from a remote folder to a remote folder, both on the same machine. However this produces an error 'Source path {0} does not exist' whereas the path does indeed exist. This contradicts the doc above about argument Source. Digging a bit further, this comes from the function Validate-SourcePath that the agent executes (see \path\to\agent\_work\_tasks\WindowsMachineFileCopy_731004d4-1d66-4f70-8c05-638018b22210\1.0.36\WindowsMachineFileCopy.ps1 lines 114-117). If, as a workaround, the check performed at those lines is commented, the task does proceed as expected. I believe this is a bug and that should be fixed.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 5e0ef2cf-ed52-6ded-bf14-4820d73b4ed0
Version Independent ID: 7781e0f0-43aa-9008-abda-c03a37e2d7b4
Content
Content Source
Service: unspecified

I have passed your feedback onto the development team and they are looking into the issue. I understand that they intend to update the task to fix this issue.
Thank you
Alex
From: Nicolas Destrez<EMAIL_ADDRESS>Sent: 02 March 2018 10:30
To: MicrosoftDocs/vsts-docs<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [MicrosoftDocs/vsts-docs] Error message 'Source path does not exist' when Source is a unc path on a remote machine (#240)
I want to copy files from a remote folder to a remote folder, both on the same machine. However this produces an error 'Source path {0} does not exist' whereas the path does indeed exist. This contradicts the doc above about argument Source. Digging a bit further, this comes from the function Validate-SourcePath that the agent executes (see \path\to\agent_work_tasks\WindowsMachineFileCopy_731004d4-1d66-4f70-8c05-638018b22210\1.0.36\WindowsMachineFileCopy.ps1 lines 114-117). If this check is removed, the task does proceed as expected. I believe this is a bug and that should be fixed.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 5e0ef2cf-ed52-6ded-bf14-4820d73b4ed0
Version Independent ID: 7781e0f0-43aa-9008-abda-c03a37e2d7b4
Contenthttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fvsts%2Fbuild-release%2Ftasks%2Fdeploy%2Fwindows-machine-file-copy&data=04|01|ahomer%40microsoft.com|e3b4df0ff349402d255008d580289217|72f988bf86f141af91ab2d7cd011db47|1|0|636555834091684653|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D|-1&sdata=4IcuR28DqoLybNoczjlLFCoXSYbIW%2F7IEH2vSC%2B0Nus%3D&reserved=0
Content Sourcehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fvsts-docs%2Fblob%2Flive%2Fdocs%2Fbuild-release%2Ftasks%2Fdeploy%2Fwindows-machine-file-copy.md&data=04|01|ahomer%40microsoft.com|e3b4df0ff349402d255008d580289217|72f988bf86f141af91ab2d7cd011db47|1|0|636555834091684653|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D|-1&sdata=13tanycGWYH53fee6pwPJtS6DyfxVLQ24ttOkvKDkgE%3D&reserved=0
Service: unspecified

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fvsts-docs%2Fissues%2F240&data=04|01|ahomer%40microsoft.com|e3b4df0ff349402d255008d580289217|72f988bf86f141af91ab2d7cd011db47|1|0|636555834091684653|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D|-1&sdata=aUBUGxTyVBSPq6e3IyW863spBHwmVluc39w%2B9QtZh6A%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FASZPh69_JZ2yqIZ_zbRQbSEVvYj0JmTGks5taR8tgaJpZM4SZsjQ&data=04|01|ahomer%40microsoft.com|e3b4df0ff349402d255008d580289217|72f988bf86f141af91ab2d7cd011db47|1|0|636555834091694661|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D|-1&sdata=muEs0UGmiXST%2BTVnjjUFL4%2BvHccefnKalZbUa3Ungjc%3D&reserved=0.

I have nearly the same problem. my source is using $(Build.Repository.LocalPath) and the final result looks like: C:\agent02_work\r1\a$(Build.Repository.LocalPath)

@GITGW I just tried copying from file share and it worked.
I noticed the log states that the source path '\<IP_ADDRESS>\d$\REPO' does not exist.
You might be missing a backslash at the beginning there.

I use 'Windows Machine File Copy' task (Description  : Copy files to remote machine(s); Version      : 1.0.41) in TFS Version 15.117.27024.0 and I have the same problem:

Executing the powershell script: C:\BuildAgent_work_tasks\WindowsMachineFileCopy_731004d4-1d66-4f70-8c05-638018b22210\1.0.41\WindowsMachineFileCopy.ps1
System.Management.Automation.RuntimeException: Source path  does not exist. ---> System.Management.Automation.RuntimeException: Source path  does not exist.

It works on some build agents and does not work on others.
I see many differences in the lists of system capabilities provided by these hosts. Several of them are in the table below. I hope it will be helpful for the investigations of the issue.

Capability name
Value (OK)
Value (Failed)

Agent.OSVersion
06.03.9600
10.0.14393

HOST_IP
not specified
specified

HOST_NAME
not specified
specified

InteractiveSession
FALSE
TRUE

PowerShell
4.0
5.1.14393.1770

USERDNSDOMAIN
specified
not specified


⚠ Mobitopup has degraded performance

In 36f86db, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 3508 ms

Resolved: Mobitopup performance has improved in badab6f.


Upload File - When cancelled out the file still appears when upload file is opened again.

Steps used to verify:
Go to Upload file
Select any file csv, geo.json or kml.
Cancel
Open Upload file again
RESULTS - The previously chosen file is still in the file field.
EXPECTED RESULTS - The file field should clear out when cancelled.

Passed on dev.


Add column sorting functionality to FormBuilder tables.

Apparently I can't reply to the variable definition comment. Functions are hoisted to top of scope before vars, so defining either var or function first yields the same result. Regardless, both are defined before any executable lines.

@tympollack
I see what you mean.
I've tended to treat variables and functions differently because even though variables are hoisted after functions, they are initialized on the line in which they reside. Whereas, functions are hoisted and defined at the top of the function at the same time(unless they are defined using var fn = function(){}, syntax) .
For that reason, I'm usually in the habit of declaring my functions below any code I have that runs "inline" so that code doesn't get lost in the mix (plus, I hate scrolling down past hundreds or thousands of lines of code to see what the initialization code looks like). But I guess, since that's not the paradigm being used here, that I wouldn't change it in this case.
About the only time I do put inline code below the top is when it is clearly intended to augment the defined function in some way (like the code you have on line 1341 here), but I still tend to put the actual variable declarations at the top if I have them. Just a preference I guess.
ex:
function(){
  var myVar, someVar;
  myVar = 'A';
  someVar = 10;
  return doSomethingWith(myVar, someVar);

  function doSomethingWith(a, b){
    return String(a) + String(b);
  }
}

@gaigstroliac Latest commit better?

@tympollack
That's beautiful man. 👍


Support for tagged metrics in carbonserver

From https://github.com/lomik/go-carbon/issues/211#issuecomment-425620606:

@lomik What does this include exactly? While I can obviously write tagged metrics, graphite-web never seem to be able to query them back through carbonserver. I don't seem to find any reference to tags in the code path used by /render either. This is a real bummer for us not to be able to use go-carbon in production for the query side, and be forced to use the terribly sluggish graphite-web.

$ echo "local.random.diceroll;sv=backend10 1 `date +%s`" | nc localhost 2002

[2018-09-28T23:22:16.419-0700] DEBUG [whisper:new] created {"path": "data/_tagged/67e/2d4/local_DOT_random_DOT_diceroll;sv=backend10.wsp", "retention": "10s:14d,1m:90d,30m:1y,1h:5y", "schema": "default", "aggregation": "default_average", "xFilesFactor": 0.5, "method": "average"}

$ curl -vv -F "format=json" -F "local=1" -F "noCache=1" -F "from=1536704479" -F "until=1536715279" -F "now=1538197298" -F "target=local.random.diceroll;sv=backend10" "localhost:8080/render/"

[2018-09-28T23:22:28.072-0700] ERROR [access] fetch failed {"handler": "render", "url": "/render/", "peer": "[::1]:60439", "format": "json", "targets": ["local.random.diceroll;sv=backend10"], "runtime_seconds": 0.000586684, "reason": "no metrics found", "http_code": 404}

lstat64("...data/local/random/diceroll;sv=backend10.wsp\0", 0xC4201BED38, 0x0)		 = -1 Err#2
lstat64(...data/local/random/diceroll;sv=backend10\0", 0xC4201BEE08, 0x0)		 = -1 Err#2

carbonserver is maintained by @Civil

Is there any progress on this? We would love to use tagged metrics, but it seems not possible when using go-carbon?

Currently you can use go-carbon with graphite-web for tagged metrics. It's not possible to use it with carbonzipper/carbonapi as of now.
The problem with the progress on that is that in all my test environments I have clickhouse with graphite-clickhouse and since about 1y ago I no longer have access to any production environment with graphite (and whisper) and all work on carbonserver currently done by people from Booking.com: @gksinghjsr @bom-d-van @gunnihinn (not sure if I've missed any).
As of me - to be honest that's not the highest priority for me as of now (since about 1y ago) to spend my free time on it. But I'll be happy to review and merge any Pull-Requests that will implement that.


Support extra Ddl statements on create/update commands

addresses https://github.com/GoogleCloudPlatform/google-cloud-dotnet/issues/1487

(LGTM other than the nits btw, in case that wasn't clear :)

thanks Jon.  note that coverage is done via integration tests, so wont show up in codecov.
on the bright side, codacy finally likes me.


thisOrAncestorOfType2() behaves unexpectedly on MixinElement2

While migrating some code, I got  MixinElement2 like this:
MixinDeclaration x;
var element = x.declaredFragment.element;

The runtimeType is NotAugmentedMixinElementImpl. I passed it to some shared code calls thisOrAncestorOrType2<InterfaceElement2>() which I expected to return itself, however it throws:
Unsupported operation: Cannot get an enclosingElement2 for a fragment
#0      ElementImpl.enclosingElement2 (package:analyzer/src/dart/element/element.dart:2449:7)
#1      ElementImpl.thisOrAncestorOfType2 (package:analyzer/src/dart/element/element.dart:3092:30)
#2      MaybeAugmentedInstanceElementMixin.thisOrAncestorOfType2 (package:analyzer/src/dart/element/element.dart:7149:19)
#3      DartUnitHoverComputer.Eval ()

If I evaluate element is InterfaceElement2 I get true, so I would have expected it to return itself before even looking at any ancestors (but if it did look at ancestors, I would never expect it to get to a Fragment). The implementation of MaybeAugmentedInstanceElementMixin.thisOrAncestorOfType2 seems to go to .declaration which doesn't seem correct (at least not in this case where I expect to be entirely in the Element2 model with no Fragments).
(Some more discussion about this issue was on Discord)

/fyi @scheglov @bwilkerson

https://dart-review.googlesource.com/c/sdk/+/390811

Thanks! :)


fix(npm package): Add back src directory to npm package

Now that coffeescript is not generating any code, the npm package actually has no code, the src/ directory is not included in the npm package.

I have like 10 builds that failed overnight, https://github.com/halkeye/hubot-confluence-search/issues/30 is one example.

I am pretty sure this is the actual problem. Testing npm packages is hard.
I like pkgfiles and npm - https://github.com/sindresorhus/awesome-npm#publishing

Oops, sorry!
Good catch!


demo

This is great!

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 6e118737-0766-9d94-88fe-8df62096246c
Version Independent ID: caacd95d-5f3c-95e5-9b89-484682349946
Content: Azure regions and availability for Linux VMs
Content Source: articles/virtual-machines/linux/regions-and-availability.md
Service: virtual-machines-linux
GitHub Login: @cynthn
Microsoft Alias: cynthn

Thanks! Glad to know that its was helpful.
We will now close this issue. If there are further questions regarding this matter, please tag me in a comment. I will reopen it and we will gladly continue the discussion.


Add NGINX configuration for UpstreamSettingsPolicy

Translate data plane intermediary UpstreamSettingsPolicy configuration into NGINX configuration.
Problem: I want the data plane configuration generated from my UpstreamSettingsPolicy to be translated into NGINX Configuration.
Solution: Translate the data plane UpstreamSettingsPolicy configuration into NGINX configuration.
Testing: Unit tests.
Closes #2811
Checklist
Before creating a PR, run through this checklist and mark each as complete.

[ ] I have read the CONTRIBUTING doc
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have checked that all unit tests pass after adding my changes
[ ] I have updated necessary documentation
[ ] I have rebased my branch onto main
[ ] I will ensure my PR is targeting the main branch and pulling from my branch from my own fork

Release notes
If this PR introduces a change that affects users and needs to be mentioned in the release notes,
please add a brief note that summarizes the change.

Opened as a draft so I can see changes more clearly, will mark as ready when I clean it up.


ADD_GPIB

ADD: This pull adds the support for the Prologix USB to GPIB controller as described here:
http://prologix.biz/downloads/PrologixGpibUsbManual-4.2.pdf
This enables GPIB usage with basil for linux

Coverage decreased (-0.2%) to 33.604% when pulling e1321edaddb4ef637c4561128c624e80751c00b6 on Marrkson:development into 795fa50c129bb69ed83434a2b486e81ae61bf618 on SiLab-Bonn:development.

@DavidLP Can you look at this?


Whether the model with ema needs bo be fixed in the validation phase —— “model(with ema).eval()”?

Hi,
I'm not sure I understood your question, but I have updated the example in README.md to show how the store/restore methods (contributed by @Zehui-Lin) can be used for validation without affecting training.

Thanks
------------------ 原始邮件 ------------------
发件人: "Samuel<EMAIL_ADDRESS>发送时间: 2021年3月3日(星期三) 晚上8:41
收件人<EMAIL_ADDRESS>抄送<EMAIL_ADDRESS><EMAIL_ADDRESS>主题: Re: [fadel/pytorch_ema]  Whether the model with ema needs bo be fixed in the validation phase —— “model(with ema).eval()”? (#3)
Hi,
I'm not sure I understood your question, but I have updated the example in README.md to show how the store/restore methods (contributed by @Zehui-Lin) can be used for validation without affecting training.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


Wdeprecated-declarations from GCC v10.1.0

Including json.hpp v3.7.3 and compiling with g++ v10.1.0 using -std=c++20, triggers the following warning:
json.hpp:12595:28: warning: ‘template<class _Tp> struct std::is_pod’ is deprecated:
use is_standard_layout && is_trivial instead [-Wdeprecated-declarations]
12595 |         static_assert(std::is_pod<CharType>::value, "CharType must be POD");

Duplicate of #1913, and fixed in develop branch and next release 3.8.0.

Sorry, quickly I browsed the open issues, then I tried the wrong keywords for the closed ones and #1913 did not came up. Good that it has been done already.

No worries. It's time that 3.8.0 is released...


Modular Exponentiation

Do the checklist before filing the issue:

[x] Do you have Node.js and all the relevant dev-dependencies installed?
[ ] Is this a bug fix?
[x] Is this an enhancement?
[x] Is this a feature request?

NOTE: Provide a clear and concise description of the feature that needs to be added! Or if its a bug, then provide the necessary steps to reproduce it along with screenshots.

Give your answer below:

Implement Modular Exponentiation: [Function - M.pow()]
/* (a ^ b) % c
 * argument 'c' is optional which if ignored holds a default value - Number.MAX_SAFE_INTEGER
 */
const res = M.pow(a, b, c)

For more info:

https://www.geeksforgeeks.org/modular-exponentiation-power-in-modular-arithmetic/
category - Mathematical Utilities

I want to work on it @pbiswas101

@Indrajit1997 you're assigned!

The issue is open again

I would like to work on this one.

@sateslayer you're assigned

I'm not able to make a pull request for some reason. It keeps saying:
There isn’t anything to compare.
pbiswas101:master and sateslayer:master are entirely different commit histories.

@sateslayer have you added your changes, like git add . before committing! And also name your modules as pow & pow-spec.js

@sateslayer you should also make your commits on a different branch

Can I just do it again?
With all the requested changes in one go?

@sateslayer sure!

I will restructure everything properly and submit within 24 hours


@conda-forge-admin, please add user @beenje

Additional comment:
No response

User added in https://github.com/conda-forge/aioserial-feedstock/pull/10


RFC: win,dl: remove cwd from dlopen search path

SafeSearch (enabled by default) already moves this near the end of the search list. This flag (added in Windows 8) removes it entirely. This may enhance security of applications that depend on libuv, at the high risk of breaking applications that expected to be able to open libraries by a relative path without a path separator (e.g. just the file name).
I recommend against this, since it would deviate from the behavior of other systems, but opened this for comments, since cpython appear to have recently decided that this was a good idea: https://github.com/python/cpython/commit/2438cdf0e932a341c7613bf4323d06b91ae9f1f1#diff-cd9132e5234678864807ae34a75c5d4d6b894b31c327a4d3620fbd0c37eec16e

D:\a\libuv\libuv\src\win\dl.c(44,73): error C2065: 'LOAD_LIBRARY_SAFE_CURRENT_DIRS': undeclared identifier

The build is currently having issues with this, since the header is gated on NTDDI_VERSION >= NTDDI_WIN10_RS1, and it is unclear if it was added then or documented then
But however, in further research, I realized that this flag would enable the default behavior of linux and mac (if restrictions are enabled for the process https://developer.apple.com/forums/thread/706437). Therefore I withdraw my recommendation against this, and instead do recommend consideration of this change.

linux does not have cwd in the dlopen lookup, so unless node is doing something special for windows, it seems unlikely to make a difference to that

FWIW, still seems like a good change to me.

It appears the main challenge will be that it was added only 7 years ago, in the first anniversary update to Windows 10 https://en.wikipedia.org/wiki/Windows_10_version_1607


Update README.md

From https://github.com/geerlingguy/raspberry-pi-dramble/issues/188

Sorry I didn't notice this earlier; I'm not sure if I need to add the 'with a Turing Pi' link, mostly because the repo is named as such, plus I have tested it on the general CM3+ without the Turing Pi as well (using the official dev board).


Remove registry image before importing

May be Im just being paranoid but it's probably a good idea to run docker rmi registry:private before running docker import to make sure that registry image that starts is actually the image that your package contains.

Thanks, @cppforlife! Made https://www.pivotaltracker.com/story/show/100861868 in the Diego tracker to track this.


MSID: 96738 Version: 1 DOI: 10.1101/2<IP_ADDRESS>6926

MSID: 96738
Version: 1
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>6926
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=96738
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>6926

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/96738v1
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>6926
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/96738/v1/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!

warn: [title-lower-case] Content of <title> element is entirely in lower-case case: Is that correct? 'ex'
warn: [title-lower-case] Content of <title> element is entirely in lower-case case: Is that correct? 'klu'
warn: [title-lower-case] Content of <title> element is entirely in lower-case case: Is that correct? 'ush'
warn: [title-lower-case] Content of <title> element is entirely in lower-case case: Is that correct? 'hth'
warn: [title-lower-case] Content of <title> element is entirely in lower-case case: Is that correct? 'psq'
warn: [title-upper-case] Content of <title> element is entirely in upper case: Is that correct? 'SUPPORTING INFORMATION'

Oops page. Looks like the preprint date hasn't been captured correctly.

I've added this to the unmatched manuscripts sheet and uploaded a new MECA package to fix the headings (applied italics to the lower case ones).

@acollings There doesn't seem to be a significance term here - is that OK?

Hi @JGilbert-eLife well spotted, it should say important. I've edited if you could re-pull? Thanks!

Cheers @acollings !


i18n(es): Update of why-astro.md, astro-components.md and astro-pages.md

What kind of changes does this PR include?

New or updated content
Translated content

Description

What does this PR change? Give us a brief description.
Updated as follows
why-astro.md based on 5bc3f2d7cf9989114dbb170214f68c803bdbc2c1
astro-components.md based on f5c9ed08f0d3e0099051429cc37013c8984d2ce2 and 77d098d089b65f8ddc21038d8bd17ca76f5de420
astro-pages.md based on f3193c3df25fa52027e5b1047624a36a5439566f

Muchas gracias por el review @kevinzunigacuellar 🚀


Fix test:watch runner

Current coverage is 99.75%

Merging #22 into master will not affect coverage as of d10a49a

@@            master     #22   diff @@
======================================
  Files           79      79
  Stmts          806     806
  Branches       102     102
  Methods          0       0
======================================
  Hit            804     804
  Partial          0       0
  Missed           2       2

Review entire Coverage Diff as of d10a49a

Powered by Codecov. Updated on successful CI builds.


DirAccess.get_current_dir() returning inconsistent trailing / between macOS and Windows

Tested versions
4.3dev4
System information
macOS 14.4.x and Windows 11
Issue description
DirAccess.get_current_dir() returns the current directory path of a DirAccess object. However, it seems that on macOS it can return the path with a "/" at the end, while on windows it does not.
This is an issue if you want to use this path to build other paths since you can't rely on it being the same between platforms.
Steps to reproduce

Have a project with a subfolder in your res:// project folder. In this example "graphics".
Run the following code:

var dirAccessTest:DirAccess = DirAccess.open("res://graphics/")
print("dirAccessTest.get_current_dir(): "+dirAccessTest.get_current_dir())

On macOS this will print out
dirAccessTest.get_current_dir(): res://graphics/
On windows it will print out
dirAccessTest.get_current_dir(): res://graphics
If you instead init the DirAccess with a path without trailing slash dirAccessTest:DirAccess = DirAccess.open("res://graphics") it works the same on both platforms (and still accesses the correct directory), so I'm guessing this is the intended and expected behavior and it's just a case of the macOS DirAccess implementation not properly removing any trailing slash it was initiated with for get_current_dir()
Minimal reproduction project (MRP)
The script lines above should be sufficient to reproduce the issue.

This is an issue if you want to use this path to build other paths since you can't rely on it being the same between platforms.

This should not be an issue if you are building a path with String.path_join (which is the intended way to build paths).

macOS DirAccess implementation not properly removing any trailing slash

Most likely it's the issue with generic Unix implementation (should be also reproducible on Linux and Android), macOS specific DirAccess path is only handling drive list and path case sensitivity.

This should not be an issue if you are building a path with String.path_join (which is the intended way to build paths).

Right, I didn't know about String.path_join and that's probably a better way to do this I'll use going forward. But with my method of just adding strings together at least I found this inconsistency.

This should not be an issue if you are building a path with String.path_join (which is the intended way to build paths).

Probably not directly related to DirAccess, but I encoutered a similar issue while debugging the "Open in Terminal" feature of the editor. Some terminal emulators behave differently based on whether there is a trailing backslash.
A bit annoying having to check & strip trailing backslashes.


added a reset button to reset the date

Title : added a reset button to reset the date
Issue No. :
ref #124

pls add OSEN label to it


INFO exited: unicorn (exit status 1; not expected)

Hi sameersbn. I've seen this before I think in your gitlab container, but get it now in redmine with postgresql. Basically I do everything by the book - pull  sameersbn/redmine:3.0.1, pull  sameersbn/postgresql:9.4, start everything up with the correct docker -run commands, but then get into this endless loop of failure:
2015-04-17 15:22:35,459 INFO spawned: 'unicorn' with pid 94
2015-04-17 15:22:37,062 INFO success: unicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2015-04-17 15:22:38,338 INFO exited: unicorn (exit status 1; not expected)
2015-04-17 15:22:39,342 INFO spawned: 'unicorn' with pid 98
2015-04-17 15:22:40,975 INFO success: unicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2015-04-17 15:22:42,320 INFO exited: unicorn (exit status 1; not expected)
2015-04-17 15:22:43,324 INFO spawned: 'unicorn' with pid 102
2015-04-17 15:22:44,894 INFO success: unicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2015-04-17 15:22:46,157 INFO exited: unicorn (exit status 1; not expected)
2015-04-17 15:22:47,160 INFO spawned: 'unicorn' with pid 106
2015-04-17 15:22:48,720 INFO success: unicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2015-04-17 15:22:49,969 INFO exited: unicorn (exit status 1; not expected)
2015-04-17 15:22:50,972 INFO spawned: 'unicorn' with pid 110
2015-04-17 15:22:52,522 INFO success: unicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2015-04-17 15:22:53,725 INFO exited: unicorn (exit status 1; not expected)
2015-04-17 15:22:54,729 INFO spawned: 'unicorn' with pid 114
in fact, the only way I can start the redmine to avoid the above is:
docker run --name=redmine -it --rm -p 80:80 -v /var/run/docker.sock:/run/docker.sock -v $(which docker):/bin/docker sameersbn/redmine:3.0.1
but this creates a whole new container called sameersbn/postgresql:latest which i don't really wish to run, as I prefer to see sameersbn/postgresql:9.4 in order to know the version.
Is there any easy way to determine what causes this? Thanks, Andrei

in fact, the only way I can start the redmine to avoid the above is:
docker run --name=redmine -it --rm -p 80:80 -v /var/run/docker.sock:/run/docker.sock -v $(which docker):/bin/docker sameersbn/redmine:3.0.1
but this creates a whole new container called sameersbn/postgresql:latest which i don't really wish to run, as I prefer to see  sameersbn/postgresql:9.4 in order to know the version.

Hi,
I have the same problem.
Exec-ing a shell in the failing container I tried to find reason for failure.
in /var/log/redmine/supervisor/unicorn.log I have four occurrences (one for each attempt) of the following log:
/usr/lib/ruby/2.1.0/psych.rb:370:in `parse':  (Bundler::Dsl::DSLError)
[!] There was an error parsing `Gemfile`: (<unknown>): did not find expected key while parsing a block mapping at l ine 2 column 3. Bundler cannot continue.

 #  from /home/redmine/redmine/Gemfile:57
 #  -------------------------------------------
 #  if File.exist?(database_file)
 >    database_config = YAML::load(ERB.new(IO.read(database_file)).result)
 #    adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
 #  -------------------------------------------
        from /usr/lib/ruby/2.1.0/psych.rb:370:in `parse_stream'
        from /usr/lib/ruby/2.1.0/psych.rb:318:in `parse'
        from /usr/lib/ruby/2.1.0/psych.rb:245:in `load'
        from /home/redmine/redmine/Gemfile:57:in `eval_gemfile'
        from /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/dsl.rb:34:in `instance_eval'
        from /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/dsl.rb:34:in `eval_gemfile'
        from /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/dsl.rb:10:in `evaluate'
        from /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/definition.rb:26:in `build'
        from /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler.rb:155:in `definition'
        from /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler.rb:123:in `setup'
        from /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/setup.rb:18:in `<top (required)>'
        from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'

This seemed to point to some database problem, so I checked /home/redmine/redmine/config/database.yml and pronto! I found an error:
production:
  adapter: "mysql2"
  encoding: "utf8"
  reconnect: false
  database: "redmine"
  host: "<IP_ADDRESS>"
  port: 3306
  username: "redmine"
  password: ""...mypass...""
  pool: 5

notice password was double-quoted TWICE!
This seems to spawn from fact I had quoted it in the command line:
docker run --name=mysql-redmine -d \
   --env='DB_NAME=redmine' \
   --env='DB_USER=redmine' --env='DB_PASS="...mypass..."' \
   --volume=/srv/docker/redmine/mysql:/var/lib/mysql \
   sameersbn/mysql:latest

@linksonice : can You check if something similar is happening to You?
Removing quoting removes also the error, but, unfortunately, redmine refuses to run with an "Internal error" when I try to access the web.
Probably the second error is unrelated so, if I cannot find it I will open another ticket.

@mcondarelli glad that you got your issue resolved and thanks for posting your findings here. This should help other users as well. :+1:

@sameersbn I am a bit confused though: how am I supposed to quote password in case it contains "strange" chars (or simply some whitespace)?

@mcondarelli you should treat VAR=VALUE as a single parameter and use ' characters while specifying the env variables using -e option. As a result -e 'VAR=some value' will work just fine. Some character do need to be escaped though using the \ character. This is basically a bash thing.

This issue relates to any error in redmine config that set CRIT errors while redmine starts.
I came on it with REDMINE_SECRET_TOKEN less then 30 chars error

Closing due to old age


QA - features for R1 and R2

Qa the eCBIS app for the following:

[ ] All items on done and in QA columns on this board: https://github.com/opensrp/fhircore/projects/17
[ ] Additional context: release notes: https://docs.google.com/document/d/13PA7HrNc8A2tRgqAl5qUBoB3iy9b8JkmPSr_wovA_r0/edit#heading=h.1ppwff3y8wby

Can we do the QA after we move eCBIS to Quest? That way we don't have to repeat it?

@dubdabasoduba when are we hoping to have this done?

Can we do the QA after we move eCBIS to Quest? That way we don't have to repeat it?

This makes sense.  @AnnieMungai  The Idea was to try to move ecbis into quest in R4. Let me review this possibility of that and then give a concrete answer

@dubdabasoduba do we have a timeline on when eCBIS will be moved to quest?

Marking as done to track on a separate issue.


Settings menu

I don't want to configure an app using a json file
I want a menu
Example:
iTerm

XFCE Terminal

CMDER

Thanks for the suggestion! This is actually already being tracked by another issue on our repo - please refer to #1564 for more discussion.
/dup #1564


DNS is not highly-available

Currently, we run one CoreDNS service per worker node (good), but the containers' resolv.conf points only to the host node itself as the name server (bad):
https://github.com/justinas/nixos-ha-kubernetes/blob/f9d01ef37174de4ac4e9537fa6f8508696a4f22c/modules/worker/coredns.nix#L39
If Kubelet is alive, but CoreDNS is dead on the node, containers running on that node will fail to resolve names.

Looks like no easy way to fix this because services.kubernetes.kubelet.clusterDns only accepts string


./mmt start - Synchronizing models

Why is I start mmt on a master it says Synchronizing models?
ubuntu@ip-172-30-0-162:~/mmt$ ./mmt start

Starting MMT engine 'default'... OK
Synchronizing models... OK
You can try the API with:
	curl "http://localhost:8045/translate?q=world&context=computer" | python -mjson.tool

Every time you launch MMT, a master process and a slave process is launched.
You're seeing the slave processes saying that everything is up-to-date with its models.


Lots of plugins?

I do not know if there is an official communication channel, I would like to clarify the following question.
Is it possible to create multiple instances of a plugin this way?

What are the contraindications?
How will this affect performance?

This does not look like a bug with the plugin but with your application. Please ask for help on either StackOverflow or any Nuxt / Vue related forums.


JVM GC output cannot be parsed when the JVM GC policy is set to 'Balanced'

When parsing a file either through code or with the NMONVisualizer client , you get the following when trying to process a GC log file generated by a JVM with the GC policy set to 'Balanced':
ava.lang.IllegalArgumentException: record does not contain any data for DataType GCBEF (gc)
at com.ibm.nmon.data.DataRecord.getData(DataRecord.java:95)
at com.ibm.nmon.parser.gc.state.JavaGCCycle.calculateTotalSizes(JavaGCCycle.java:45)
at com.ibm.nmon.parser.gc.state.Java7GCCycle.endElement(Java7GCCycle.java:110)
at com.ibm.nmon.parser.gc.VerboseGCParser.endElement(VerboseGCParser.java:85)
at com.ibm.nmon.parser.BasicXMLParser.parse(BasicXMLParser.java:148)
at com.ibm.nmon.parser.BasicXMLParser.parse(BasicXMLParser.java:27)
at com.ibm.nmon.parser.gc.VerboseGCParser.parse(VerboseGCParser.java:52)
at com.ibm.nmon.NMONVisualizerApp.parse(NMONVisualizerApp.java:163)
at com.ibm.nmon.gui.file.ParserRunner.run(ParserRunner.java:73)
at java.lang.Thread.run(Unknown Source)

The GC parser code is pretty old, so I am not surprised newer GC policies don't work.
If you want to attach a sample log, I can take a look and see how much effort it would be to add. I am not 100% sure balanced GC data would even fit into the current data model / data types that currently exist.

Hi
Apologies, I missed the update during IBM's mail difficulties. Please find attached an example verbose gc file
verbosegc.log

I've added code that skips processing of data when this happens. However, the root cause is that the data the parser expects at the beginning of the GC cycle is not present for one or more of the collections. So, at the end of the GC cycle, data will not be calculated. See com.ibm.nmon.parser.gc.state.JavaGCCycle.calculateTotalSizes(GCParserContext).
I'd need to study a lot more of what balanced GC in this JVM version is actually doing to understand the effect of this. To really fix it, new calculations and maybe even completely new handling of the data is needed. At this point, I think it might be better for you look at other GC parsers that focus on keeping up with all the different GC methods.

ok, thanks for the investigation and endeavoring to fix the issue


Checksum types

@bwalsh

indexd supports multiple checksum types. need to resolve
https://github.com/ohsu-comp-bio/indexd/blob/master/indexd/index/schema.py#L35-L76

@david4096

Yeah, I think we need to use a repeated data structure that combines an enum (checksum used) with the actual checksum. For SHA256 I think we mean the hexlified message digest, not the actual bytes.

This also suggests adding a feature to the request for specifying the type of checksum used, however, given the uniqueness of checksums I think it's not necessary. Could these other typed checksums be simply called another metadata key?

Closed with #24


nixos-container: If container name is already unique, don't append "-0"

When using --ensure-unique-name, don't needlessly append "-0" if the
container name is already unique.
This is especially helpful with NixOps since when it deploys to a
container it uses --ensure-unique-name.  This means that the container
name will never match the deployment host due to the "-0".  Having the
container name and the host name match isn't exactly a requirement, but
it's nice to have and a small change.

merged here


bug: No FQDN for cluster nodes

Check NetworkManager + dnsmasq configuration

dhcp-host=52:54:00:11:22:a1,<IP_ADDRESS>,master0.ocp.example.local
dhcp-host=52:54:00:11:22:a2,<IP_ADDRESS>,master1.ocp.example.local
dhcp-host=52:54:00:11:22:a3,<IP_ADDRESS>,master2.ocp.example.local
dhcp-host=52:54:00:11:22:a4,<IP_ADDRESS>,worker0.ocp.example.local
dhcp-host=52:54:00:11:22:a5,<IP_ADDRESS>,worker1.ocp.example.local


OF negotiation failed isn't much informative

Currently, when OF negotiation fails there isn't information logged about the version from the connection that fails, it would be great to include the version of the OF header from that device to easily spot if it's an unexpected or unsupported version to facilitate for operators:
2022-09-21 13:54:06,594 - INFO [kytos.core.atcp_server] [atcp_server.py:131:connection_made] (MainThread) New connection from <IP_ADDRESS>:45310
2022-09-21 13:54:06,595 - INFO [kytos.core.atcp_server] [atcp_server.py:131:connection_made] (MainThread) New connection from <IP_ADDRESS>:45312
2022-09-21 13:54:06,596 - INFO [kytos.core.atcp_server] [atcp_server.py:131:connection_made] (MainThread) New connection from <IP_ADDRESS>:45318
2022-09-21 13:54:06,601 - WARNING [kytos.napps.kytos/of_core] [main.py:435:fail_negotiation] (MainThread) connection ('<IP_ADDRESS>', 45310): version negotiation failed
2022-09-21 13:54:06,604 - ERROR [kytos.napps.kytos/of_core] [main.py:323:process_new_connection] (MainThread) Connection ('<IP_ADDRESS>', 45310): Negotiation Failed
2022-09-21 13:54:06,605 - WARNING [kytos.napps.kytos/of_core] [main.py:435:fail_negotiation] (MainThread) connection ('<IP_ADDRESS>', 45312): version negotiation failed
2022-09-21 13:54:06,605 - ERROR [kytos.napps.kytos/of_core] [main.py:323:process_new_connection] (MainThread) Connection ('<IP_ADDRESS>', 45312): Negotiation Failed
2022-09-21 13:54:06,605 - WARNING [kytos.napps.kytos/of_core] [main.py:435:fail_negotiation] (MainThread) connection ('<IP_ADDRESS>', 45318): version negotiation failed
2022-09-21 13:54:06,606 - ERROR [kytos.napps.kytos/of_core] [main.py:323:process_new_connection] (MainThread) Connection ('<IP_ADDRESS>', 45318): Negotiation Failed

Patching this log statement with would be more informative:
diff --git a/main.py b/main.py
index 6cfd62d..c6ac270 100644
--- a/main.py
+++ b/main.py
@@ -432,13 +432,13 @@ class Main(KytosNApp):

     async def fail_negotiation(self, connection, hello_message):
         """Send Error message and emit event upon negotiation failure."""
-        log.warning('connection %s: version negotiation failed',
-                    connection.id)
+        log.warning('connection %s: version %d negotiation failed',
+                    connection.id, hello_message.header.version)

kytos $> 2022-09-21 13:58:16,953 - INFO [kytos.core.atcp_server] [atcp_server.py:131:connection_made] (MainThread) New connection from <IP_ADDRESS>:46642
2022-09-21 13:58:16,953 - INFO [kytos.core.atcp_server] [atcp_server.py:131:connection_made] (MainThread) New connection from <IP_ADDRESS>:46644
2022-09-21 13:58:16,953 - INFO [kytos.core.atcp_server] [atcp_server.py:131:connection_made] (MainThread) New connection from <IP_ADDRESS>:46656
2022-09-21 13:58:16,956 - WARNING [kytos.napps.kytos/of_core] [main.py:436:fail_negotiation] (MainThread) connection ('<IP_ADDRESS>', 46642): version 1 negotiation failed
2022-09-21 13:58:16,956 - ERROR [kytos.napps.kytos/of_core] [main.py:323:process_new_connection] (MainThread) Connection ('<IP_ADDRESS>', 46642): Negotiation Failed
2022-09-21 13:58:16,957 - WARNING [kytos.napps.kytos/of_core] [main.py:436:fail_negotiation] (MainThread) connection ('<IP_ADDRESS>', 46644): version 1 negotiation failed
2022-09-21 13:58:16,958 - ERROR [kytos.napps.kytos/of_core] [main.py:323:process_new_connection] (MainThread) Connection ('<IP_ADDRESS>', 46644): Negotiation Failed
2022-09-21 13:58:16,959 - WARNING [kytos.napps.kytos/of_core] [main.py:436:fail_negotiation] (MainThread) connection ('<IP_ADDRESS>', 46656): version 1 negotiation failed
2022-09-21 13:58:16,959 - ERROR [kytos.napps.kytos/of_core] [main.py:323:process_new_connection] (MainThread) Connection ('<IP_ADDRESS>', 46656): Negotiation Failed

@Alopalao, if you could also include this minor enhancement on PR #82 that'd be great since we'll have to test/exercise OF negotiation failures there, thanks.

Landed on https://github.com/kytos-ng/of_core/pull/82


Change strict equality to equality

The strict equality operator was making the rakeback === 0 operation return false when it should have returned true.
Describe your changes
Issue ticket number and link
Closes #
Checklist before requesting a review

[ ] My code follows the style guidelines of this project
[ ] I have commented my code, particularly in hard-to-understand areas as neccessary
[ ] My changes generate no new warnings
[ ] I have self-reviewed my own code
[ ] I have created thorough tests and maximized code coverage
[ ] Do we need to implement analytics?
[ ] New and existing unit tests pass locally with my changes

Screenshots (if appropriate)

Also included a potential fix for the floating point error in rakeback % display


Call .to_i on bonus argument instead of using is_a? in total_dice method

Have the total_dice method "duck type" better and use the .to_i method on the optional bonus argument instead of ignoring it when it's not an integer.
total += opts[:bonus] if opts[:bonus].is_a?(Integer)

Need to rescue against NoMethodError and raise an ArgumentError if the item does not respond to to_i or check using respond_to?

Resolved by #19

Resolved by #19