'multi-species biofilm formation' has double inheritance

This class currently has ‘symbiotic process’ and ‘biofilm formation’ as parent classes. I would recommend removing the subClassOf 'symbiotic process' axiom since this process does not directly involve the interaction between the host and the symbiont. You can always add an axiom that asserts that this is part of some ‘symbiotic process’ if you want to relate it back to that class.

@srengel @ValWood  @marekskrzypek
Isn't this siimlar to coflocculation, that we determined a few weeks back was not a specific process, but just the consequence of many different organisms present in the same place ?  See #20192
See for example http://amigo.geneontology.org/amigo/reference/PMID:17510860
There are several terms, but only 10 EXP annotations by CGD
The terms are:

GO:0044399 multi-species biofilm formation
GO:0090608 multi-species submerged biofilm formation
GO:0090607 multi-species surface biofilm formation
(part of)  GO:0043710 cell adhesion involved in multi-species biofilm formation

What do you think ?
Thanks, Pascale

I am not an expert on multispecies biofilms, but people who study them seem to think there is a specific set of proteins involved in their formation. It doesn’t sound like simply a bunch of cells from different species stuck in the same place. See https://pubmed.ncbi.nlm.nih.gov/24736223/
Cheers,
Marek
From: pgaudet<EMAIL_ADDRESS>Reply-To: geneontology/go-ontology<EMAIL_ADDRESS>Date: Tuesday, November 24, 2020 at 8:50 AM
To: geneontology/go-ontology<EMAIL_ADDRESS>Cc: Marek S Skrzypek<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [geneontology/go-ontology] 'multi-species biofilm formation' has double inheritance (#20085)
@srengelhttps://github.com/srengel @ValWoodhttps://github.com/ValWood @marekskrzypekhttps://github.com/marekskrzypek
Isn't this siimlar to coflocculation, that we determined a few weeks back was not a specific process, but just the consequence of many different organisms present in the same place ? See #20192https://github.com/geneontology/go-ontology/issues/20192
See for example http://amigo.geneontology.org/amigo/reference/PMID:17510860
There are several terms, but only 10 EXP annotations by CGD
The terms are:

GO:0044399 multi-species biofilm formation
GO:0090608 multi-species submerged biofilm formation
GO:0090607 multi-species surface biofilm formation
(part of) GO:0043710 cell adhesion involved in multi-species biofilm formation

What do you think ?
Thanks, Pascale
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/geneontology/go-ontology/issues/20085#issuecomment-732984713, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFL24T3744Q3W7RV2QGFAEDSRO23VANCNFSM4SGQMGHQ.

Perhaps we only need a single term under
GO:0044403    biological process involved in symbiotic interaction
along the lines of
"cell-adhesion involved in multi-species interaction"
for all of these co-flocculating, biofilm formation terms?
It isn't totally clear that it is an evolved function, but  difficult to rule out based on current information.

Thanks everyone for the comments. I agree  there may be too many terms. The one annotated term however is 'GO:0043710 cell adhesion involved in multi-species biofilm formation'  -> probably a merge into GO:0044399 multi-species biofilm formation would be OK ?
Thanks, Pascale

I agree there are too many terms here (awful amount of hair-splitting 😉).  I think it would be OK to merge those two terms. Distinguishing between them is problematic anyway..
Thanks,
Marek
From: pgaudet<EMAIL_ADDRESS>Reply-To: geneontology/go-ontology<EMAIL_ADDRESS>Date: Tuesday, November 24, 2020 at 9:39 AM
To: geneontology/go-ontology<EMAIL_ADDRESS>Cc: Marek S Skrzypek<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [geneontology/go-ontology] 'multi-species biofilm formation' has double inheritance (#20085)
Thanks everyone for the comments. I agree there may be too many terms. The one annotated term however is 'GO:0043710 cell adhesion involved in multi-species biofilm formation' -> probably a merge into GO:0044399 multi-species biofilm formation would be OK ?
Thanks, Pascale
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/geneontology/go-ontology/issues/20085#issuecomment-733015916, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFL24T5N7CMXFPKPGRY5ZC3SRPATTANCNFSM4SGQMGHQ.


Logging - strange behaviour with RTT on nRF53

Currently using the logger with mostly default settings on the nRF53.
Whilst using LOG_WRN in a high frequency loop, I would expect to see something like:
--- 71 messages dropped ---
This usually happens. Though, sometimes the logger skips a series of prints without the "messages dropped" warning.
If I set CONFIG_LOG_BLOCK_IN_THREAD=y the same thing happens. I would expect this to block the thread and output all messages from the for-loop.
If CONFIG_LOG_IMMEDIATE=y is set, I would expect to get all logs, but there is a gap in the prints from the for loop, and no error message.
@nordic-krch

@koffes will take a look.

If CONFIG_LOG_IMMEDIATE=y is set, I would expect to get all logs, but there is a gap in the prints from the for loop, and no error message.

I've been looking into that a bit and i think that it is host related. When there is a debugging session opened (e.g. Ozone) and RTT viewer then actually both are trying to read RTT data. Most is read by RTT viewer but some is read by debug session.
I've been successfully reading all logs (on nrf52 and nrf53) when i was running Ozone debug session and use PuTTY to connect to telnet <IP_ADDRESS>:19021.
However, I've found one issue that was causing RTT performance degradation in immediate mode (#21644).

Interesting. AFAIK, the debug session should read from a different channel than RTT. I am quite certain that I did not have a debug session running whilst reading RTT.  Is this something that can be described and sent to Segger?

Without debug session, RTT viewer only i see some occasional bytes loss (1 per 1000 entries). I don't see them when using Ozone+PuTTY. When I use Ozone+RTT viewer i see multiple losses on RTT viewer (that's competing for RTT data that i've described above).
So it seems that there are 2 issues that could be reported to segger:

debug session + rtt viewer
occasional losses on rtt viewer

As @koffes , I am still having issues with #21517
I have created a PR that resolves it (at least in my situation): https://github.com/zephyrproject-rtos/zephyr/pull/24647
Please have a look.


Add void return type for log in dart:developer

Good to understand if the return value is something interesting.

I think I would prefer void as return type. The only value that could make sense to return is the sequence number, but I'm not convinced it's worth it.
What is it returning now? (It's not documented to return anything).

It returns nothing.

Addressed with https://codereview.chromium.org/1295803004/

Thanks Seth!


WIP: Cloud 1594 cloud-1592 SSO_ADMIN_USERNAME/PASSWORD should be empty and required & add ENV for DB image version

superseded by prs against specific product branches.  cloud-1594 appears to have already been merged into master/sso-wip.


Fast gradient

Moved the computation of the gradient to cython.

Cool!
On Wed, Jun 17, 2015 at 3:11 PM dirko<EMAIL_ADDRESS>wrote:

Merged #14 https://github.com/dirko/pyhacrf/pull/14.
—
Reply to this email directly or view it on GitHub
https://github.com/dirko/pyhacrf/pull/14#event-333565603.


[TEST] Set is-updatable prop of single test

Set is-updatable prop of single test
*line coverage: 80.1%

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #308. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ci.nnstreamer.ai/.


[8.x] Handle directive $value as a string

As per PHPDoc Str::startsWith and Str::endsWith are not supposed to handle null values
strncmp() will no longer accept null in PHP 8.1
It needs a string in the end (trim) so it would be relevant to cast it first.

I think someone else already (incorrectly, IMO) PRed a different fix to the startsWith method. Either the phpdoc of that method should be updated to allow null, or that other PR should be reverted.

Oh, I'm thinking of https://github.com/laravel/framework/pull/36254. That PR still has the incorrect phpdoc.

Oh, I'm thinking of #36254. That PR still has the incorrect phpdoc.

I updated the PHPDoc, but it sounds @taylorotwell reverted this commit: https://github.com/laravel/framework/pull/36254/commits/016501d6fdf0c20852ea07bf26e4cbbffb28d6cf
So I guess there is some reason to keep the string.


Nuget package assemblies are unsigned

The nuget package assemblies are unsigned making it hard to use them in projects that use signed assemblies.
Please provide signed assemblies.

I will use StrongNamer to overcome this.


Does not work on MacOS M1

I'm not sure if the desire is to fallback to Apple SDKs or to only support nVidia CUDA, but the requirement should be documented as a prereq.
╰─ python3 generate.py --base_model=h2oai/h2ogpt-oasst1-512-12b

===================================BUG REPORT===================================
Welcome to bitsandbytes. For bug reports, please run

python -m bitsandbytes

 and submit this information together with your error trace to: https://github.com/TimDettmers/bitsandbytes/issues
================================================================================
bin /opt/homebrew/lib/python3.11/site-packages/bitsandbytes/libbitsandbytes_cpu.so
/opt/homebrew/lib/python3.11/site-packages/bitsandbytes/cextension.py:33: UserWarning: The installed version of bitsandbytes was compiled without GPU support. 8-bit optimizers, 8-bit multiplication, and GPU quantization are unavailable.
  warn("The installed version of bitsandbytes was compiled without GPU support. "
CUDA SETUP: Loading binary /opt/homebrew/lib/python3.11/site-packages/bitsandbytes/libbitsandbytes_cpu.so...
dlopen(/opt/homebrew/lib/python3.11/site-packages/bitsandbytes/libbitsandbytes_cpu.so, 0x0006): tried: '/opt/homebrew/lib/python3.11/site-packages/bitsandbytes/libbitsandbytes_cpu.so' (not a mach-o file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/lib/python3.11/site-packages/bitsandbytes/libbitsandbytes_cpu.so' (no such file), '/opt/homebrew/lib/python3.11/site-packages/bitsandbytes/libbitsandbytes_cpu.so' (not a mach-o file)
No neptune configured, set NEPTUNE_API_TOKEN env var.

    WORLD_SIZE=4 CUDA_VISIBLE_DEVICES="0,1,2,3" torchrun --nproc_per_node=4 --master_port=1234 generate.py --base_model='EleutherAI/gpt-j-6B' --lora_weights=lora-alpaca_6B
    python generate.py --base_model='EleutherAI/gpt-j-6B' --lora_weights='lora-alpaca_6B'
    python generate.py --base_model='EleutherAI/gpt-neox-20b' --lora_weights='lora-alpaca_20B'

    # generate without lora weights, no prompt
    python generate.py --base_model='EleutherAI/gpt-neox-20b' --prompt_type='plain'
    python generate.py --base_model='togethercomputer/GPT-NeoXT-Chat-Base-20B' --prompt_type='dai_faq'

    python generate.py --base_model='togethercomputer/GPT-NeoXT-Chat-Base-20B' --prompt_type='dai_faq' --lora_weights='lora_20B_daifaq'
    # OpenChatKit settings:
    python generate.py --base_model='togethercomputer/GPT-NeoXT-Chat-Base-20B' --prompt_type='human_bot --debug=True --num_beams=1 --temperature=0.6 --top_k=40 --top_p=1.0

    python generate.py --base_model='distilgpt2' --prompt_type='plain' --debug=True --num_beams=1 --temperature=0.6 --top_k=40 --top_p=1.0 --share=False
    python generate.py --base_model='t5-large' --prompt_type='simple_instruct'
    python generate.py --base_model='philschmid/bart-large-cnn-samsum'
    python generate.py --base_model='philschmid/flan-t5-base-samsum'
    python generate.py --base_model='facebook/mbart-large-50-many-to-many-mmt'

    python generate.py --base_model='togethercomputer/GPT-NeoXT-Chat-Base-20B' --prompt_type='human_bot' --lora_weights='GPT-NeoXT-Chat-Base-20B.merged.json.8_epochs.57b2892c53df5b8cefac45f84d019cace803ef26.28'

    must have 4*48GB GPU and run without 8bit in order for sharding to work with infer_devices=False
    can also pass --prompt_type='human_bot' and model can somewhat handle instructions without being instruct tuned
    python generate.py --base_model=decapoda-research/llama-65b-hf --load_8bit=False --infer_devices=False --prompt_type='human_bot'

    python generate.py --base_model=h2oai/h2ogpt-oig-oasst1-512-6.9b

Using Model h2oai/h2ogpt-oasst1-512-12b
Get h2oai/h2ogpt-oasst1-512-12b model
Traceback (most recent call last):
  File "/Users/ianzink/git/h2ogpt/generate.py", line 1118, in <module>
    fire.Fire(main)
  File "/opt/homebrew/lib/python3.11/site-packages/fire/core.py", line 141, in Fire
    component_trace = _Fire(component, args, parsed_flag_args, context, name)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/fire/core.py", line 475, in _Fire
    component, remaining_args = _CallAndUpdateTrace(
                                ^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/fire/core.py", line 691, in _CallAndUpdateTrace
    component = fn(*varargs, **kwargs)
                ^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ianzink/git/h2ogpt/generate.py", line 311, in main
    model0, tokenizer0, device = get_model(**all_kwargs)
                                 ^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ianzink/git/h2ogpt/generate.py", line 434, in get_model
    device = get_device()
             ^^^^^^^^^^^^
  File "/Users/ianzink/git/h2ogpt/generate.py", line 328, in get_device
    raise RuntimeError("only cuda supported")
RuntimeError: only cuda supported

Understood.  We removed 'mps' since usually will be too slow without quantization etc.  It's not hard to add back, but I don't have a mac to test it on.

Now support MAC/Windows CPU mode, and plan to support mac MPS M1/M2.

is there any update of availability of bitsandbytes for M2 MacOS? It is needed in QLORA...
Thanks

Hi @phdykd , I'm not sure if it exists.  It would have be be compiled like the windows version was done: https://github.com/jllllll/bitsandbytes-windows-webui
Also, a challenge for me is I have linux with GPU, windows with GPU, and mac with CPU, but I don't have M1/M2.  So I'd need someone in wild to share how they did it if it can be done.

Hello everyone!
I am new to the world of h2oGPT and I find it interesting! In offline mode I am seeing conversations about the CPU and GPU usage, and using one over the other in certain hardware circumstances. I was curious if it is possible to utilize the Apple Neural Engine (ANE) in conjunction with either the CPU or GPU, or if there is any added benefit? From what I have read the ANE is made specifically for AI and machine learning and am wondering what h2o would be like if it was able to harness this hardware (if it isn't already)...does using either the GPU or CPU in offline mode automatically utilize the ANE? I asked h2oGPT and it suggested to enable the GPU to utilize ANE...does anyone know if this is accurate?
Thank you!

This issue was solved by @Mathanraj-Sharma
I'm not familiar with ANE itself.


Safe cords of fortress and the enderman biom

Your Idea
Should safe the cords of fortress and the enderman biom if he finds one on the or dies
Discord username (if you want updates)
TheGamerGerman#9321
Developer Notes (leave this blank)
Difficulty: ???
Estimated Time Required: ???
Once development starts.

Edit: Unable to scale to project because I think it already does this.

it does not


Improve arch test for Map/List/SetProperty

Reviewing cheatsheet
Before merging the PR, comments starting with

❌ ❓must be fixed
🤔 💅 should be fixed
💭 may be fixed
🎉 celebrate happy things

@asodja I'd love to change the message, but this means refreezing the accepted violations (and generating conflicts). If you fine with that, I can update the PR

What did you have in mind for the changed message?
I can solve conflicts in that case, since it would mean I would just need to refreeze accepted changes a couple of times

@asodja see the commit - I've added the explicit return type and a list of all possible types


"bot.say" intro message posts when running local, but not on Heroku deployment?

When my bot is installed by a Slack user, I'd like the bot to introduce itself in the channel that the installing user specified as part of the oAuth install process. It seems that bot_channel_join only works when a preexisting bot is invited into a 2nd (or more) channel, not when the bot is installed into a team for the first time.
So, my solution for this is to include a bot.say message as part of the startRTM callback. I'm specifying the channel for that message as channel: bot.config.incoming_webhook.channel_id to get the aforementioned oAuth-process-specified channel.
Now, the problem: everything works as expected and the message posts to the channel when I run the bot server locally. But when it's running on my Heroku server, the message does not post, but the rest of the code runs the same and no errors are thrown.
So I suppose my question is, is there anything that would be different about how the bot gets the channel_id in a remote deployment as opposed to running locally?
Full code:
    controller.on('create_bot',function(bot,config) {

      if (_bots[bot.config.token]) {
        // already online! do nothing.
      } else {
        bot.startRTM(function(err) {

          if (!err) {
            trackBot(bot);
          }

          bot.startPrivateConversation({user: config.createdBy},function(err,convo) {
            if (err) {
              console.log(err);
            } else {
              convo.say('Hello! Thanks for installing me.');
              convo.say('To start receiving content, type `subscribe`. You can `unsubscribe` at any time. If you need help, type `help`.');
              convo.say('One more thing: You\'re the only one seeing this message, but I\'ll announce my presence in the default channel you specified when installing this bot.');
            }
          });

          console.log(bot.config.incoming_webhook.channel_id);

          bot.say(
            {
              text: 'Hello! I\'m now installed on your Slack team. To start receiving content, find me in your contact list and type `subscribe` in a DM to me. You can also `unsubscribe` at any time. See you soon.',
              channel: bot.config.incoming_webhook.channel_id // a valid slack channel, group, mpim, or im ID
            }
          );
        });
      }
    });

Still unsure of the problem, but changed things to require the installing user to invite the bot to a channel, then the bot does its introductions via bot_channel_join. Will try to find a more automated solution in a future iteration.

@tylermachado were you able to find the issue here? Having the same problem


22065 - Duoro - Correct name; Split and reassign two songs?

I believe "Duoro" is a misspelling of "Douro." Should correct to that spelling.
Also, songs 643 and 644 are located in Lisbon, which is far south of the Douro River. Society metadata seems to indicate that this society should be focused in northern Portugal, and Lisbon is in southern Portugal, but not as far south as Algarve (society 23915). So, I suggest creating a new society named "Lisbon" and assigning these two songs to it.

Suggestions implemented


issue when apply multiple label

I have an observer to "label". When apply multiple labels to a email in the observer method only received the last label applied

I've done some basic testing, and I can confirm this bug.
The bad news: From the way we intercept Gmail's XHR it seems this is the absolutely best we can extract of information.
The good: If you just need the current set of labels, the following seems to work for me as a workaround:
gmail.observe.on("label", (emailId) => {
    gmail.get.email_data_async(emailId, (thread) => {a
        console.log(thread.threads[emailId].labels);
    });
});

If you just need the diff however, I'm honestly not sure if we can provide a solution.
Let me know if this works out for you.

Due to inactivity I'll assume that the workaround is sufficient, and closing it for now.
Please re-open if you still need something resolved.


fix(grid-list): generate guid without crypto dependency

IE11 and native Node support (for testing frameworks)

:tada: This PR is included in version 11.2.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add semantic-release to improve the workflow

Recently I've used semantic-release on three packages I own. It's a pretty cool tool that enforces good versioning practices, as well as conventionally-formatted commit messages, etc.
Main features:

Automatic publish on npm after the Travis build succeeds ;
Version management of the package: no need to calculate what will be the next version by hand, semantic-release parses the commit messages (documentation) and sets the new version ;
Generates a changelog and creates a GitHub release with it. Also tags a version on git. See an example of the generated output here.

Example of commit messages, given that the current version is 1.0.0 and the push is done before any other commit:
fix(some_module): no longer display things that souldn't be displayed

bumps the version to 1.0.1
feat(some_module): implement things

bumps the version to 1.1.0
feat(some_module): move to a fluent API

BREAKING CHANGE: the ancient API no longer exists.

bumps the version to 2.0.0
Now you can create a new branch for a new feature (ie. a PR) and do that:
fix(some_module): fix things up
feat(another_module): add myMetyhod()
feat(another_module): added a new alert type

When the branch gets merged into master, semantic-release will bump from 1.0.0 to 1.1.0. Which is exactly how things should be. It's exactly what we're doing now, but standardized and automated.
We could also use commitizen with it to enforce good commit messages (we'll need to warn our contributors to respect those guidelines).
I'm volunteer to sumbit a PR that adds semantic-release to our workflow (just a few lines of configuration, no CLI tool to run evertime, it's fully automated and runs on Travis).
Your thoughts?

Totally love both semantic-release and commitizen! Thanks @toverux for creating this issue :beers:
Please go ahead with the PR which will significantly improve our workflow.

Hello @toverux, hope you are doing well!
I changed my mind about commitizen and semantic-release. There are a couple of reasons but the main one is the contributor experience. I don't want to force them to follow any strict rules about commit messages. The contribution should be as easy as possible for the community.
Also, automatization could easily break things for us. For example, in the latest bump-commit https://github.com/limonte/sweetalert2/commit/742fc95280d6d986778c168d8bb5ef6afb3bb8ce I had to fix the JS minification step in config/utils.js as uglify-js dependency was updated from v2 to v3 without backward compatibility.
semantic-release is a great tool for bigger projects with at least several people in core team, but for this small lovely plugin I'd like to keep manual gearbox, at least for now :)
Anyway, thanks for opening the automated publishing process for me, hope you are enjoying this weekend somewhere offline and not working like I do :)

No problem, I understand your position :) It was a proposal, that's also why a made an issue to discuss rather than a PR.
I will close this, feel free to reopen if you change your mind someday!

@toverux I'm now pretty sure this would be really helpful, but I still have a couple questions/concerns
We use squash-and-merge to merge PRs in Github (currently), so what happens when someone makes a PR with commits of different types, e.g. "fix(foo): Fix something" and "style(foo): Tidy up code style"? A squash-and-merge combines the commits into one commit with one message, so how do we deal with that?

You are raising a valid concern here.
As long as the history is conserved, there's no problem, otherwise you'll need to find a commit lessages that describes the best what's been squash-and-merged.
So the canonical answer is to reduce to one commit message:
feat(foo): bar
fix(baz): qux
refactor(foo): quux

to:
feat(foo): corge

This is not a problem as in any case, the first three commits and the last are giving the same version number. The first example does not reduces to 0.0.0 + 0.0.1 + 0.1.0 but 0.1.0.
So I'd say that most of the time, it's not a problem. If that becomes one, it may mean that the PR is too big and treats to many subjects.

@toverux That makes sense. Thanks for the wisdom!
I set up semantic-release in sweetalert2-react-content, and I must say it feels pretty powerful, and I haven't even done any custom configuration yet!

Yep, I've already seen your PR, I'm watching the repo :)
I'm glad you like it!

Yep, absolutely loving semantic-release for the fully automated release (as soon as a relevant change makes it to master), GitHub integrations (posts on issues & PRs when the change has been released), the CHANGELOG.md, and maybe more to come
I'm 100% in favor of using semantic-release in this repo too, but I would like to not use commitizen (or similar) in a precommit hook because:

We squash-and-merge our PRs, so (unless the PR only has a single commit) we have to write the standard commit message for the merge commit ourselves anyways.
I like to make temporary commits while I'm working, and then do some interactive rebasing later to pretty it up. If we had this repo configured this way, I'd have to first disable it in whatever branch i'm working in, and make sure it isn't included in a PR, and that would be cumbersome.
Some [potential] contributors might not be familiar with the standards for commit messages, and it would be a pain for them.

Is anyone opposed to setting up semantic-release? @limonte @acupajoe @samturrell ?

My vote is totally for using semantic-release. So, it's possible to use it without commitizen? I thought semantic-release is based on properly formatted commit messages?

I thought semantic-release is based on properly formatted commit messages.

It is, but we don't need commitizen to enforce that, especially since those commit messages often don't make it into master. In the case of a PR, there is often more than one commit, so the default commit message in Github is the title of the PR, which will most likely not be in the correct format, and so we will have to format the message ourselves anyways much of the time. It seems like for this reason (and the other above reasons) we should just not bother with commitizen, and instead rely only on writing the proper commit messages ourselves when we merge PRs.

we should just not bother with commitizen, and instead rely only on writing the proper commit messages ourselves when we merge PRs.

Sound good to me :+1:

If nobody does object to this, I think the first step will be finding (or building) a semantic-release plugin to handle committing the dist folder to the dist branch, i.e. keeping what our release.js script does for our Bower users.

semantic-release 🤖 is taking care of SweetAlert2 releasing process now 🎉


Not verifying SSL

Hi,
I recently tried to ignore SSL verification when calling an endpoint of mine over HTTPS. I'm developping and using a self signed certificate.
I switched to your gem because previously using http-client, I found a memory hole in timeout.rb used by this gem.
Http-client allow to bypass ssl verification by doing something like
client = HTTPClient.new(default_header: {
                "Authorization" => '123'
              })
client.ssl_config.verify_mode = 0

I tried something similar with your gem :
client = HTTP.auth(url)
ctx     = OpenSSL::SSL::SSLContext.new
ctx.verify_mode = OpenSSL::SSL::VERIFY_NONE

client.get(params[:url], ssl_context: ctx)

However, the certificate is still being verified when calling the endpoint and i get the following error: 'hostname "xxx" does not match the server certificate'. Which seems normal because I didn't specified a certificate.
So, is it possible to bypass the ssl verification when using your gem (as with http-client) if yes how couldi achieve it?
Many thanks,

We don't provide a first-class API for this. See #308 for a similar inquiry.


Added an example for Resource view

I've added an example using the Resource settings for a multi-column daily view.

thanks


[tests] make cuda-only cases in TestModelAndLayerStatus device-agnostic

After the fix, all tests in TestModelAndLayerStatus pass on XPU:
================================================ short test summary info ================================================
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_layer_names_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_layer_names_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_module_type_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_module_type_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_enabled_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_enabled_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_enabled_irregular
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_active_adapters_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_active_adapters_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_merge_adapters_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_merge_adapters_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_requires_grad_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_requires_grad_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_requires_grad_irregular
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_available_adapters_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_available_adapters_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_devices_all_cpu_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_devices_all_cpu_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_devices_all_cuda_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_devices_cpu_and_cuda_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_base_model_type_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_base_model_type_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_base_model_type_transformers_automodel
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_adapter_model_type_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_adapter_model_type_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_peft_types_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_peft_types_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_nb_params_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_nb_params_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_num_adapter_layers_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_num_adapter_layers_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_enabled_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_enabled_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_disabled_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_disabled_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_enabled_irregular
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_active_adapters_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_active_adapters_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_active_adapters_irregular
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_merged_adapters_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_merged_adapters_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_merged_adapters_irregular
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_requires_grad_model_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_requires_grad_model_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_requires_grad_model_irregular
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_available_adapters_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_available_adapters_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_devices_all_cpu_small
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_devices_all_cpu_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_devices_all_cuda_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_devices_cpu_and_cuda_large
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_loha_model
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_vera_model
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_transformers_model
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_model_with_injected_layers
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_vanilla_model_raises
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_transformer_model_without_adapter_raises
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_prefix_tuning
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_adaption_prompt
PASSED tests/test_tuners_utils.py::TestModelAndLayerStatus::test_mixed_model_raises
============================================ 60 passed, 7 warnings in 10.21s ============================================

@BenjaminBossan , the require_non_cpu function is from the accelerate library. I am not sure whether direct import from would be better instead of having our own version in testing_utils.py. What's your thought on it?

I also plan to make tests in test_common_gpu.py and test_gpu_examples.py device-agnostic, because none of them require cuda-specific kernels and can be extended to other GPUs like Intel GPU.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


setNextMonth() and setPrevMonth() fixes and other additions

Added a few parameters and methods to constructors and objects.
Test the calendar in my personal Sakai via tomcat and no new bugs have been created from
what I have tested

ICLA on file as Brian Zhou .
http://licensing.apereo.org/

Hi Brian,
Thanks for submitting a PR to the Sakai project! Please checkout our contribution guidelines here:
https://github.com/sakaiproject/sakai/blob/master/CONTRIBUTING.md
A few notes:

You should reference a JIRA in jira.sakaiproject.org
Your pull request should reference the JIRA
Your commit message should reference the JIRA
Your pull request should contain one commit only. Please squash and rebase your commits.

You're Jira https://jira.sakaiproject.org/browse/SAK-30400 seems to be about the Calendar tool (from the screenshot), but your changes here are in the Calendar summary tool. Could you explain more in the Jira what these code changes are fixing.

Closed as changes weren't cleaned up, if you tidy this up please feel free to re-open it.


Add Ikea LED1837R5

Please add Ikea LED1837R5 to supported list
This can be done by adding the line to init.py:
'LED1837R5': DimmableBulbAdapter,   # IKEA TRADFRI LED bulb GU10 400 lumen, dimmable
Already checked working by using a copy of the line (below) and replacing LED1650R5 by LED1837R5:
'LED1650R5': DimmableBulbAdapter,   # IKEA TRADFRI LED bulb GU10 400 lumen, dimmable

Done


Break out discover_machine() as separate function

This can be used to detect if a given machine is an E3SM supported machine before creating a MachineInfo() object.
This merge also fixes how package data is handled (wildcards do not seem to work).
A conda recipe has been added.
New config options have been added related to parallel computing.

I tested these changes in compass, MPAS-Analysis and E3SM-Unified in the following branches:

compass: https://github.com/xylar/compass/tree/add_e3sm_machines_with_mache/
MPAS-Analysis: https://github.com/xylar/MPAS-Analysis/tree/add_mache/
E3SM-Unified: https://github.com/xylar/e3sm-unified/tree/add_mache/

I was able to setup a conda environment, setup a test suite and run the tests in compass on Chrysalis; run the Chrysalis test suite in MPAS-Analysis using mache; and deploy the E3SM-Unified 1.5.0 release on my Ubuntu laptop with the branch above.


Not working with choices field

Looks like not working with field that have choice, like:
class Plan(models.Model):
    STATUS_WAITING = 0
    STATUS_ACTIVE = 1
    STATUS_EXPIRED = 2
    STATUS_CANCELED = 3
    STATUS = (
        (STATUS_WAITING , u'Waiting'),
        (STATUS_ACTIVE , u'Active'),
        (STATUS_EXPIRED, u'Expired'),
        (STATUS_CANCELED , u'Canceled'),
    )

    status = models.IntegerField(
        choices=STATUS, default=STATUS_WAITING)

When try use this in first time, if list data not have all status option present, this will return normal field (without dropdown) and with values 0, 1, 2, etc.
So add all possible status to data, now dropdown is rendered but values is 0, 1, 2, etc..

Not to dredge up an old issue, but having just started with this package, when I use ChoiceDropdownFilter it doesn't seem to do anything. The options are just rendered as a regular list. When I use the standard DropdownFilter the actual values are rendered (but still as the standard admin list).

Can you please submit a pull request to clarify these points?


Enable JobRunnerTest > testBasicRun

The TODO about seconds=0 or 10 remains because some tests remain with @Ignore.

I modified your description from #1445 as the change description.


Fix update-versions-all after recent kie-parent changes

we need to separately change the versions for the user BOMs since they no longer inherit from the top-level kie-parent

@mbiarnes please take a look

+1 checked locally and it works perfect


Fix Jenkinsfile to remove existing package before publish

Description of change
This PR tries to make the Jenkins pipeline remove existing artifacts before publishing. Makes it easier to test PRs and fix tags before dependents use those package.

Closing, it's not appropriate. Published packages should be written in stone, and giving Jenkins privileges to delete packages is probably a bad idea too.


Carthage support broken

Scheme isn't marked as shared, so carthage support is currently broken.

I've created a pull request to fix this issue: andrewjackman@bf14cfe3cb837cf8d22bf74fff6cfc2c209f33ea

Thanks @andrewjackman. Fixed in #2

No problem. Don't forget to tag that change otherwise Carthage won't pick up the correct version.

Still get this error when using carthage:
Dependency "Timberjack" has no shared framework schemes for any of the platforms: iOS


Move fetch out of format* methods in Context

We can optimize for the most common scenario by prefetching the resources for the first languages once instead of running the same logic on every formatValue or formatEntity call.

@zbraniecki r?


Document in wiki how to set up scripts with Main() method in order for Dump to work

Hi,
I spent a good amount of time trying to figure out why Dump() wasn't working and I ultimately found the answer in this issue. Could we add that info to the Troubleshooting wiki so that its easier to find for the next person? I'd have done it but I don't seem to have access.

Thank you for taking the additional time to post here. I created a new wiki page for "how-tos" and started it off with this one.
This also prompted me to add a new "Wiki" entry in the main Help menu that will go out with the next release.

Nice, thank you!


Create Arch Linux Contextualisation Package

Author Name: Nico Schottelius (Nico Schottelius)
Original Redmine Issue: 3684, https://dev.opennebula.org/issues/3684
Original Date: 2015-03-16

Hello,
we are at the moment looking at providing an Arch Linux image for Opennebula. It is likely that we create a contextualisation package (maybe based on the deb/rpm). Would you be interested in adding it to the files section afterwards?

Original Redmine Comment
Author Name: Ruben S. Montero (@rsmontero)
Original Date: 2015-03-16T16:34:31Z

I think it is more natural for Arch users to add a link to the documentation to the AUR package. In any case, it is quite interesting.
THANKS for contributing :)

Currently, the Arch package is very old and also the related code in OpenNebula/addon-context-linux is not maintained. I have opened a separate bug to bring back the Arch Linux at some point https://github.com/OpenNebula/addon-context-linux/issues/96 . Closing this issue here.


Fix, clean up, and extend scripts.

Mostly clean up, a bit more error handling, some bugfixes, and some extra cli parameters for improved flexibility.
I'm not sure, however, if the --weburl parameter in sync-ebooks is really useful, because even setting that and changing the SITE_URL constant isn't going to make the site, or even just opds, work with a custom URL, since the standardebooks URL is still hardcoded in a few places, such as web/www/opds/index.xml. I don't think it hurts to have that option in there, but since the commit is the last one, it's easy to drop if preferred.

Hi, I've added a few comments for you to review.
How well have you tested these scripts? deploy-ebook-to-www and its helpers are running live in production and have been well tested. If something breaks in the deploy process it will be a pain to debug in real time and we'll be left with a broken website while we fix things. I want to make really sure that you've carefully tested all the various permutations of this script to make sure there's no breakage.

I've tested them several times, but I'll test them again after I fix up the parts you commented.

I tested this by cloning all ebooks and using deploy-ebook-to-www in a Vagrant VM. Everything seems to be working correctly.

Excellent, thanks!


BSD: Build fails with "/usr/include/c++/v1/config:519:14: fatal error: 'features.h' file not found" because the project defines -D__linux=1

The failure is like this:
In file included from Ratatouille.cpp:9:
In file included from /usr/include/c++/v1/atomic:590:
In file included from /usr/include/c++/v1/__assert:13:
In file included from /usr/include/c++/v1/__assertion_handler:13:
/usr/include/c++/v1/__config:519:14: fatal error: 'features.h' file not found
  519 | #    include <features.h>
      |              ^~~~~~~~~~~~

This is because llvm headers include features.h that isn't present on BSDs.

do you've any idea what I could do to prevent that?

Remove -D__linux__=1.
All involved ifdefs should be updated.
For example,
#ifdef __linux__
#include <cairo-xlib.h>
#include <X11/Xutil.h>
#include <X11/keysym.h>
#include <X11/Xatom.h>
#include <X11/cursorfont.h>
#include <X11/Xresource.h>
#endif //__linux__

should be conditional on unix, not linux.

Are you sure? I mean, I've the following stance in makefile.base
```
ifeq ($(UNAME_S), BSD)
export TARGET = Linux
export CFLAGS += -D__linux__=1
export CXXFLAGS += -D__linux__=1
endif

https://github.com/brummer10/libxputty/blob/076b789a686b155fc4d670239b1747efca789690/Build/Makefile.base#L100

to ensure that  __linux__ is defined when build on FreeBSD.
From the error given by you I can't see any relevance to this , otherwise it would error out much earlier.

-D__linux__=1 breaks llvm headers on FreeBSD.
It's not supposed to be there.

so the main question now is, does it infect only the C++ headers or, as well the C headers.
I mean, when did yo get the error, did it build libxputty.a or did it break before?

This happens on several cpp files:
$ make
===>  Building for ratatouille-lv2-.1.8
for         FreeBSD
with        cc
using       gold
and         xxd -i
gmake[1]: warning: -j1 forced in submake: resetting jobserver mode.
cat: /proc/cpuinfo: No such file or directory
cat: /proc/cpuinfo: No such file or directory
cat: /proc/cpuinfo: No such file or directory
cat: /proc/cpuinfo: No such file or directory
gmake[1]: arch: No such file or directory
gmake[1]: arch: No such file or directory
 Compiling Ratatouille.so
c++: warning: optimization flag '-fstrength-reduce' is not supported [-Wignored-optimization-argument]
c++: warning: optimization flag '-fstrength-reduce' is not supported [-Wignored-optimization-argument]
c++: warning: optimization flag '-fstrength-reduce' is not supported [-Wignored-optimization-argument]
c++: warning: optimization flag '-fstrength-reduce' is not supported [-Wignored-optimization-argument]
c++: warning: optimization flag '-fstrength-reduce' is not supported [-Wignored-optimization-argument]
c++: warning: optimization flag '-fstrength-reduce' is not supported [-Wignored-optimization-argument]
c++: warning: optimization flag '-fstrength-reduce' is not supported [-Wignored-optimization-argument]
c++: warning: optimization flag '-fstrength-reduce' is not supported [-Wignored-optimization-argument]
c++: warning: optimization flag '-fstrength-reduce' is not supported [-Wignored-optimization-argument]
In file included from Ratatouille.cpp:9:
In file included from /usr/include/c++/v1/atomic:590:
In file included from /usr/include/c++/v1/__assert:13:
In file included from /usr/include/c++/v1/__assertion_handler:13:
/usr/include/c++/v1/__config:519:14: fatal error: 'features.h' file not found
  519 | #    include <features.h>
      |              ^~~~~~~~~~~~
1 error generated.
In file included from ../RTNeural/RTNeural/RTNeural.cpp:1:
In file included from ../RTNeural/RTNeural/RTNeural.h:6:
In file included from /usr/include/c++/v1/limits:105:
In file included from /usr/include/c++/v1/__assert:13:
In file included from /usr/include/c++/v1/__assertion_handler:13:
/usr/include/c++/v1/__config:519:14: fatal error: 'features.h' file not found
  519 | #    include <features.h>
      |              ^~~~~~~~~~~~
1 error generated.
In file included from ../NeuralAmpModelerCore/NAM/activations.cpp:1:
In file included from ../NeuralAmpModelerCore/NAM/activations.h:3:
In file included from /usr/include/c++/v1/string:571:
In file included from /usr/include/c++/v1/__algorithm/max.h:12:
In file included from /usr/include/c++/v1/__algorithm/comp.h:12:
/usr/include/c++/v1/__config:519:14: fatal error: 'features.h' file not found
  519 | #    include <features.h>
      |              ^~~~~~~~~~~~
1 error generated.
In file included from ../NeuralAmpModelerCore/NAM/convnet.cpp:1:
In file included from /usr/include/c++/v1/algorithm:1783:
In file included from /usr/include/c++/v1/__assert:13:
In file included from /usr/include/c++/v1/__assertion_handler:13:
/usr/include/c++/v1/__config:519:14: fatal error: 'features.h' file not found
  519 | #    include <features.h>
      |              ^~~~~~~~~~~~
1 error generated.
In file included from ../NeuralAmpModelerCore/NAM/dsp.cpp:1:
In file included from /usr/include/c++/v1/algorithm:1783:
In file included from /usr/include/c++/v1/__assert:13:
In file included from /usr/include/c++/v1/__assertion_handler:13:
/usr/include/c++/v1/__config:519:14: fatal error: 'features.h' file not found
  519 | #    include <features.h>
      |              ^~~~~~~~~~~~
1 error generated.
In file included from ../NeuralAmpModelerCore/NAM/get_dsp.cpp:1:
In file included from /usr/include/c++/v1/fstream:189:
In file included from /usr/include/c++/v1/__algorithm/max.h:12:
In file included from /usr/include/c++/v1/__algorithm/comp.h:12:
/usr/include/c++/v1/__config:519:14: fatal error: 'features.h' file not found
  519 | #    include <features.h>
      |              ^~~~~~~~~~~~
1 error generated.
In file included from ../NeuralAmpModelerCore/NAM/lstm.cpp:1:
In file included from /usr/include/c++/v1/algorithm:1783:
In file included from /usr/include/c++/v1/__assert:13:
In file included from /usr/include/c++/v1/__assertion_handler:13:
/usr/include/c++/v1/__config:519:14: fatal error: 'features.h' file not found
  519 | #    include <features.h>
      |              ^~~~~~~~~~~~
1 error generated.
In file included from ../NeuralAmpModelerCore/NAM/util.cpp:1:
In file included from /usr/include/c++/v1/algorithm:1783:
In file included from /usr/include/c++/v1/__assert:13:
In file included from /usr/include/c++/v1/__assertion_handler:13:
/usr/include/c++/v1/__config:519:14: fatal error: 'features.h' file not found
  519 | #    include <features.h>
      |              ^~~~~~~~~~~~
1 error generated.
In file included from ../NeuralAmpModelerCore/NAM/wavenet.cpp:1:
In file included from /usr/include/c++/v1/algorithm:1783:
In file included from /usr/include/c++/v1/__assert:13:
In file included from /usr/include/c++/v1/__assertion_handler:13:
/usr/include/c++/v1/__config:519:14: fatal error: 'features.h' file not found
  519 | #    include <features.h>
      |              ^~~~~~~~~~~~
1 error generated.

In the first step that indicate a issue in the makefile, I check with
uname -s if the return is FreeBSD
That seems to fail. So what did you machine return on uname -s  exactly?
Also it seems as if the #define __linux__  macro only break C++, if so, it will be much less work for me to fix it.

$ uname -s
FreeBSD

Okay, so I've take the stab and replaced linux with OS_UNIX
#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
#ifndef _OS_UNIX_
#define _OS_UNIX_ 1
#endif
#endif

let me know if ti works now for you.

The original problem from the subject went away in rev. de99e933acb5e246ae5ecf805683f7bd8c0db732
Now there are Eigen-related problems.
I'll open a separate bug report for this.


Login username not derived from Authenticatable model

While working with the Illuminate\Foundation\Auth\AuthenticatesUsers trait I noticed that a custom login username field must be set as a property of the inheriting class:
public function loginUsername()
{
    return property_exists($this, 'username') ? $this->username : 'email';
}

Is there any reason why this can't use the Guard instance to get the field name from the Authenticatable model? Something like:
public function loginUsername()
{
    if (property_exists($this, 'username'))
    {
        return $this->username;
    }

    return Auth::guard($this->getGuard())->getProvider()
        ->createModel()->getAuthIdentifierName();
}

Instantiating a model to do this may not be ideal but it removes the need to duplicate the auth identifier field name on both the model and the controller.
Another concern is that changing this behavior may result in a BC break if it's not handled correctly.

Its better how it is implemented right now. No real need to change its current behavior.


Quick-start guide

It now directs to the codex-testnet-starter as per instructions from Jessie.
Starter guides both setup and usage have been updated.
Checked and working for:

Win + client (not storage provider)
Docker + client (not storage provider)

And also, we probably miss a command how to run Codex, should we add Run Codex from the branch I've mentioned?

And also, we probably miss a command how to run Codex, should we add Run Codex from the branch I've mentioned?

All the steps to run Codex are in the codex-testnet-starter SETUP_HOME.md file. I propose we don't include any run instructions here and have duplication between these two places.
(Ideally I'd still like to move everything to docs.codex, but this was outlined and probably communicated with other teams already, so let's stick with it for the time being.)


Add code coverage badge

Please add the Code Climate code coverage badge near the top of your README

this was completed ty


Localized facet values - datetime, date, edtf & edtf intervals

Create subclass of LabelledTermsFacet
Pass the correct value_labels param to constructor of subclass
Format facet date values inside the value_labels function

https://github.com/oarepo/oarepo-runtime/pull/36

Added facet classes & introduced in model builder


[0.9.2] Format of JSON response differs based on value of 'time' parameter in WHERE clause

I am running two queries, only changing the value of the 'time' parameter in my WHERE clause. I am trying to get a simple count of records for a certain measurement. My database contains no data for either yesterday or today, but the format of the resulting JSON differs depending on which day I ask for.
For yesterday (i.e., 2015-08-23 at the time of this note), I receive the following structure in the return value, including a 'series' name and 'values'.
bash-3.2$ curl -G "https://<influx_url>:8086/query" -u influxdb:***  --data-urlencode "q=SELECT count(x) from accelerometer WHERE time > '2015-08-23 00:00:00' AND time < '2015-08-23 00:01:00' fill(0)" --data-urlencode "db=production"

{
  "results": [
    {
      "series": [
        {
          "name": "accelerometer",
          "columns": [
            "time",
            "count"
          ],
          "values": [
            [
              "2015-08-23T00:00:00.000000001Z",
              0
            ]
          ]
        }
      ]
    }
  ]
}

Next, I change the date portion of the 'time' parameter to today (2015-08-24). In the resulting JSON, the "results" component is now an array containing only an empty object.
bash-3.2$ curl -G "https://<influx_url>:8086/query" -u influxdb:***  --data-urlencode "q=SELECT count(x) from accelerometer WHERE time > '2015-08-24 00:00:00' AND time < '2015-08-24 00:01:00' fill(0)" --data-urlencode "db=production"

{
  "results": [
    {}
  ]
}

@erikriverson which version of InfluxDB are you running?

@beckettsean This is a hosted instance, which the web admin tool is reporting as InfluxDB v0.9.2

Since this seems to be a time-based issue, just wanted to follow-up to see if I can reproduce today.
Currently, I can run the query and obtain results with values (i.e., a count of 0, like in the first case above) for values up to and including 2015-08-30. When I run the query with 2015-08-31 or later, I get JSON with empty results.
The behavior does not necessarily appear to relate to the 'current day' as the initial report might imply. But by extending the date 'far enough' into the future, I can reproduce the empty results response.

Pulling the queries out of the log so they are easier to compare:
SELECT count(x) from accelerometer WHERE time > '2015-08-23 00:00:00' AND time < '2015-08-23 00:01:00' fill(0) correctly returns COUNT of 0.
SELECT count(x) from accelerometer WHERE time > '2015-08-24 00:00:00' AND time < '2015-08-24 00:01:00' fill(0) returns empty results. With a fill(0) in the query that should be a 0.

This doesn't seem to be an issue anymore. Fill values only apply to aggregate queries with a GROUP BY time(...) in the query so the fill shouldn't be applied in these queries. Aggregates with no points in the range will not return a value, but you can use a GROUP BY and a time range for a specific bucket with FILL(0) to get the zero value.
Please reopen if you think this hasn't been fixed in the latest version. Thanks!


Problems during training

Thanks for your excellent work, I'm curious about the settings in the script "train_clips32k.sh", how am I supposed to set them if I wanna reach comparable performance reported in the paper, such as "arch", "batch_size_per_gpu", "opts".
One more thing, the lr is weird since it is too small during training, what should i do to make it normal? thanks a lot for your work again!

Hi, @licaizi thanks foy your interest!
We use vit-b/16 architecture, wth batch_size 4 (for 24G GPU). You may not need to modify anything here but only run train_clips32k.sh.
The learning rate is using warmup in the begining, so it is small.

@Kyfafyd got it, very grateful for your reply!


MSFT_xMsiPackage.psm1: Fix Script Analyzer Issues

Details of the scenario you tried and the problem that is occurring
There's a number of script analyzer issues getting reported in MSFT_xMsiPackage.psm1. These should be fixed.
Verbose logs showing the problem
[00:04:10]     Context MSFT_xMsiPackage.psm1
[00:04:10]       [+] Should pass all error-level PS Script Analyzer rules 92ms
[00:04:14]       [+] Should pass all required PS Script Analyzer rules 4.14s
[00:04:15]       [+] Should pass all flagged PS Script Analyzer rules 1.03s
[00:04:15]       [+] Should pass any recently-added, error-level PS Script Analyzer rules 65ms
[00:04:17]       [+] Should not suppress any required PS Script Analyzer rules 1.7s
[00:04:18] Custom DSC Resource Kit PSSA rule(s) did not pass.
[00:04:18] The following PSScriptAnalyzer rule 'DscResource.AnalyzerRules\Measure-ParameterBlockParameterAttribute' errors need to be fixed:
[00:04:18] MSFT_xMsiPackage.psm1 (Line 133): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 137): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 140): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 144): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 147): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 150): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 154): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 157): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 160): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 163): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 414): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 418): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 421): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 425): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 428): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 431): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 435): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 438): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 441): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 444): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 751): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 944): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 947): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 950): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 953): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 995): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 1031): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 1034): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 1101): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 1105): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 1108): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] MSFT_xMsiPackage.psm1 (Line 1111): A [Parameter()] attribute must be the first attribute of each parameter and be on its own line. See https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#correct-format-for-parameter-block
[00:04:18] For instructions on how to run PSScriptAnalyzer on your own machine, please go to https://github.com/powershell/PSScriptAnalyzer
[00:04:18] Common Tests - Custom Script Analyzer Rules will not fail unless you opt-in.
[00:04:18] To opt-in, create a '.MetaTestOptIn.json' at the root
[00:04:18] of the repo in the following format:
[00:04:18] [
[00:04:18]      "Common Tests - Custom Script Analyzer Rules"
[00:04:18] ]
[00:04:18]       [+] Should pass all custom DSC Resource Kit PSSA rules 856ms

Version of the DSC module that was used ('dev' if using current dev branch)
dev

I got this one.


Add ConfigSerializer to PersistingContext

I think I found an issue with flo, kryo and typesafe/lightbend Config serialization:

"ConfigObject is immutable, you can't call Map.put"
https://github.com/twitter/chill/issues/265

The solution is to create and register a serializer for SimpleConfig class.
This PR adds the serializer on flo-freezer.
Still, I think it might be questionable to add a serializer here upstream. For Config it might generic and worth. But I wonder if later flo should allow users to register their own serializers.

PTAL @danielnorberg @honnix

👍


feat(css): support sass compiler api and sass-embedded package

Description

closes https://github.com/vitejs/vite/issues/14689
closes https://github.com/vitejs/vite/issues/6734

Added sass compiler api integration (see makeModernCompilerScssWorker). Difference from other mode is that I didn't use Vite's own worker abstraction WorkerWithFallback since I assumed Sass compiler API (at least on sass-embedded?) already off-loads work from main process.
todo

[x] sass-embedded optional peer dep + auto api selection
[x] check performance

see https://github.com/vitejs/vite/pull/17728#issuecomment-2247572134

[x] docs
[x] fix windows

I thought this PR is ready, but just founded out Windows are failing completely with modern-compiler API. Surprising it looks like it doesn't matter whether sass package or sass-embedded package is used (see https://github.com/vitejs/vite/pull/17754/commits/c0460f8ddb5f3eac7f3ca81272a7c219f344dd87).
I'm not sure how to debug this though as I don't have Windows. Can someone try this on Windows machine locally?

Hi, after switching to the modern api, I am meeting issue with file:// imports with our vuepress project:

It's reporting can not find a file, but it exisited.
Since we both support webpack and vite, and webpack is working fine (also I am sure native sass is working fine), so I doubt the internalImporter in vite is working as expected? Could some related test about file:// imports being added about the new api?

@Mister-Hope would you create a new issue with a minimal reproduction? Your comment here may quickly get lost and will not be properly tracked.

@Mister-Hope It looks like file: not being supported out-of-the-box is a known breaking change in modern api

https://github.com/sass/dart-sass/pull/2077
https://github.com/sass/dart-sass/issues/2199#issuecomment-2013964858

I have a reproduction using sass directly https://github.com/hi-ogawa/reproductions/tree/main/vite-17754-sass-absolute-file-reference  Probably file: resolution needs to be handled by integration side now. I'll look into it.


Dont' add vulkan_headers submodule by default

Allows to clone fewer submodules if (cross-)compiling for a target that
doesn't involve the HAL Vulkan driver.

👍
Once #9380 lands we may be able to move this logic to be more isolated to the Vulkan HAL driver.


Fix cache timeout redirection

cacheTimeout option is not redirected to remote_storage

I have not taken the time to write tests for this PR, I am sorry.
I close this PR, feel free to reopen it if you want to.


Use TransactionScope with multiple DbContexts and RetryOnFailure using EF Core 2.1

I could not find a documentation on how I can use multiple DbContexts that configured RetryOnFailure and use TransactionScope.

Error: InvalidOperationException: The configured execution strategy 'SqlServerRetryingExecutionStrategy' does not support user initiated transactions. Use the execution strategy returned by 'DbContext.Database.CreateExecutionStrategy()' to execute all the operations in the transaction as a retriable unit.

What I could achieve so far is that each DbContext shares the same SqlConnection. (
I have multiple DbConexts that point to the same SqlServer.
Is this scenario supported?
See also: 8131
EDIT:
You don' need to share SqlConnections with the same connection string to avoid distributed transaction.

My current "solution" looks like this:
public class TransactionHandlerProxy<TRequest, TResponse> : IRequestHandler<TRequest, TResponse> where TRequest : IRequest<TResponse>
{
    private readonly IRequestHandler<TRequest, TResponse> _inner;
    private readonly ISchemaDbContextScanner _scanner;

    public TransactionHandlerProxy(IRequestHandler<TRequest, TResponse> inner, ISchemaDbContextScanner scanner)
    {
        _inner = inner;
        _scanner = scanner;
    }

    public async Task<TResponse> Handle(TRequest request, CancellationToken cancellationToken)
    {
        //var transactionOptions = new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted };
        var result = await BeginTransactionWithExecutionStrategy(_inner.Handle, request, cancellationToken);
        using (var transactionScope = result.transactionScope)
        {
            transactionScope.Complete();
            return result.response;
        }
    }

    private async Task<(TransactionScope transactionScope, TResponse response)> BeginTransactionWithExecutionStrategy(Func<TRequest, CancellationToken, Task<TResponse>> handler, TRequest request, CancellationToken cancellationToken)
    {
        var assemblies = AppDomain.CurrentDomain.GetAssemblies();
        var contexts = _scanner.GetAllSchemaDbContextsFromAssemblies(assemblies).ToList(); // All DbContexts

        TransactionScope transactionScope = default;
        TResponse response = default;
        for (var i = 0; i < contexts.Count; i++)
        {
            var executionStrategy = contexts[i].Database.CreateExecutionStrategy();
            var contextIndex = i;
            await executionStrategy.ExecuteAsync(async () =>
            {
                var isLastContext = contextIndex == contexts.Count - 1;
                if (isLastContext)
                {
                    var transactionOptions = new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted };
                    transactionScope = new TransactionScope(TransactionScopeOption.Required, transactionOptions, TransactionScopeAsyncFlowOption.Enabled);
                    response = await handler(request, cancellationToken);
                }
            });
        }

        return (transactionScope, response);
    }
}

@AndriySvyryd to provide some guidance.

@AndriySvyryd to provide some guidance.

@Rookian You should be able to do it by invoking the execution strategy manually:
using (var context1 = new BloggingContext())
{
    context1.Database.CreateExecutionStrategy().Execute(() =>
    {
        using (var context2 = new BloggingContext())
        {
            using (var transaction = new TransactionScope())
            {
                context2.Blogs.Add(new Blog {Url = "http://blogs.msdn.com/dotnet"});
                context2.SaveChanges();

                context1.Blogs.Add(new Blog {Url = "http://blogs.msdn.com/visualstudio"});
                context1.SaveChanges();

                transaction.Complete();
            }
        }
    });
}


run bundle update

Coverage remained the same at 80.533% when pulling a0983d426a755041c3f68d10b1ab5173bf508d44 on dep-updates into 3c1fd215116cb3e2e4530ce4cc2fd6357df64969 on master.


Run ifpen rocky8 on PR

If rocky8 docker could contains ccache, we can increase a lot the efficiency of the pipeline.
I think ifpen tests are better suited to run on releases or manually as they are also testing Arccon and Arccore.


Testing a Backup of a Service Master Key

Why is there no test available to validate the backup of a SQL Service Master Key [smk]?  I should not have to try to restore the smk to simply be able to validate a backup.  Is there no alternative?
This is the only page that is close to the 'validation' mention on the page that explains what a smk is.
https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-service-master-key-transact-sql?view=sql-server-ver15
Regards,
Linda A. Lorentz Fletcher

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

ID: 01677f63-3702-abfc-d5a1-8c4054d0d046
Version Independent ID: baf30705-14cd-02b8-bcb4-3e6ab1787467
Content: Restore the Service Master Key - SQL Server
Content Source: docs/relational-databases/security/encryption/restore-the-service-master-key.md
Product: sql
Technology: security
GitHub Login: @jaszymas
Microsoft Alias: jaszymas

@LindaLF -- Linda, thank you for your feedback.
@jaszymas -- please look into this issue.
cc @VanMSFT for awareness

Hi @LindaLF - If you backup the master key to a file, you should be able to see that the file exist. https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/back-up-the-service-master-key

@vanmsft -- Van, thank you for your answer.
I am closing this issue now.  You are welcome to @ mention me for any followup.
We hope to hear from you again.


cycles to SDR conversion is wrong

As shown by this screenshot

Also it may be better to replace $ with US$ if that was the intention, but that will require dynamically obtaining the rate of SDR to USD.

The wallet now dynamically reflects accurate conversion rate from SDR to ICP.
Slider will show the cycles equivalent in ICP amount instead of USD.
https://github.com/dfinity/cycles-wallet/pull/123


fix: update version

:tada: This PR is included in version 1.11.16 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Upgrade Apache Tika to 1.19.1

Coverage remained the same at 53.326% when pulling 954c5086893210dbd40ffb6a99353f0115be2644 on RLejolivet:upgrade-apache-tika into 7b9028b3d175bbefa9feb478266cacb5a3390169 on blossom-project:1.1.1-dev.


BTree for MemCachedStorage

This issue is created to track btree-related experiments. The experiment might fail in the end, so it's important to capture some details.
The idea came during work on #2095, seek-based storage scheme required us to have better Seek performance and it couldn't be achieved with map-based MemCachedStorage. To make Seek perform better https://github.com/google/btree implementation was used to substitute map-based MemoryStorage with btree-based.

BTree-enabled branch performs ~5% worse under neo-bench for 1-1 test with BoltDB backend, that's even with (*btree).Clone used to create the latest level MemCachedStorage instances (allowing for BTree substitution during Persist, instead of element copying).
At some stage http://github.com/tidwall/btree had also been tried, but that works about two times worse than Google's implementation.
Obviously Google implementation can be improved by specializing it to work with KV pairs and by creating some specific merge/add method for quicker Persist. However these improvements are likely to fall within 10-20% range for basic get/put/persist operations, so it's not clear what's the end result going to be.
Another test performed was 10K-10K neo-bench run which was expected to deliver better numbers (more addresses -> more GAS distributions for NEO moves -> more seeking through the DB), however in reality this test ran 17% (!) slower than with map-based storage. That's quite a big difference.

The same branch shows ~0.5% decline on 1-1 benchmark and ~4% worse result on 10K-10K bench. Seems weird, but that's what it is.

Not closing this one, the structure might still be useful.

There is not a lot it can improve for us now.


Add CloudAdapter for WebApi

#minor
Description
This PR moves configuration classes from AspNetCore integration to Connector. Additionally, it adds CloudAdapter to WebApi integration.
Specific Changes

Move Configuration* classes from AspNetCore integration to Connector. Additionally, it uses TypeForwardedTo system to avoid duplications and breaking changes.
Added CloudAdapter class to WebApi integration. Adapted implementation of AspNetCore integration.
Configuration* classes marked as deprecated in WebApi.
Added unit tests for the new CloudAdapter class in WebApi.

Testing
The following image shows CloudAdapter with a WebApi bot working.

/promoted 6827


High-level components on top of uvw

First, thanks for nice library!
What I found, it is not trivial to work with event-loop based libraries. Even very simple task like open file and read to the end require some knowledge. Next, I found you are repeating same patterns again and again, in every new project. Like creating listener - accepting connections - processing with workers -writing to file etc. In most cases, everything is similar but not completely, and very repetitive.
I think it can be a good idea to create library of high-level components on top of event loop library, uvw would be a best candidate. It should work similar to unix pipes. For example, you can read file and send it to network connection with unix shell:
cat  | nc ....
Idea is to create set of components on top of uvw that can be connected similar way as unix pipes.
Grand idea is to make event loop coding much simpler and faster, and hide all internals related to event loop structures, callbacks etc. In theory, each functional group of lubuv functionality (and uvw) should have one or two high level components on top.
Going a little bit into details of possible components design...
Each component can have several inputs and outputs, similar to stdin, stdout, stderr, i.e. similar to file descriptors. Each input/output is directional (i.e. either input or output), and implement interface that allow to connect output of one component to input of another. This pipe interface is a key to all design. Pipe interface, like unix pipe, should be able to suspend receive of data, propagate error etc.
Components will send/receive data through input/output, similar how it is implemented in uvw. And, components can send/receive messages to any other component with commands.
I already have in mind several types of components, mostly based on things that I am implementing again and again, and need to implement again and again in new projects. Short list include file reader, file writer, queue, network sender, network receiver, listener, compressor, decompressor, worker, database reader, database writer, hash table (to resolve id->string reference in data stream), and many more... All universe of unix commands can give sample of what can be done.
Components should be able to dynamically connect to each other. Ideally I should be able to describe in XML what components I want to use and how to connect their inputs and outputs. I should be able to combine several components into one that can be used. For example, read from file and decompress on several worker is a single combined component that can be reused.
Components named, can accept arguments from command line. In theory, you can supply in one command line argument XML description of components and their connections, and with other arguments configure components. For example, program like read file - multithreaded decomrpess - write to file - can be just a set of command-line arguments, one describing 3 components and how they connect, other gives parameters to components. Components will be dynamically created, connected, configured, started, and whole thing will run in event loop with highest possible efficiency. I think it is possible to create pipe interface between components that will not introduce significant performance overhead.
I can go on with all the ideas....
Well, sad thing that I cannot really do open source projects due to my employment contract, though in past I was able to get permission to contribute to some degree.
Let me know if you are interesting in this project. Prime component is pipe interface, rest of work would be implementing components with pipe interface.
Thanks for reading!

It sounds interesting, even though the risk is that it's not that is to find a good general purpose design for this stuff.
What I don't understand is:

Well, sad thing that I cannot really do open source projects due to my employment contract, though in past I was able to get permission to contribute to some degree.

I published this as an open source project but it started as a tool for a paid work. I'm no longer using it and I struggle to keep it up-to-date. Are you suggesting that you can't help and I should work on your idea in my free time? Because in this case I can stop you right away, I don't have enough bandwidth also for this in my free time. I'm sorry.

Yes, it is confusing. I am pretty sure you can do some minimal job (i.e. establish project), and then in matter of single day I will tell if I can commit to it. I am pretty sure I will be able to, and will find very quickly.
I do understand that spending only your free time on this project is unrealistic and is not going to happen.
Good thing I will find very quickly if a project is a go. Just do a stub for a project on github. Chose project name by yourself.
I am intended to do "a lot", though you are absolutely by far more advanced in new c++ features (I am doing c++ part time, my primary expertise is completely different).
I think it will be a good idea if you will write pipe interface (i.e. abstract class). I will take on writing all actual components, based on interface. Of course, I do look for your comments on code.
I am pretty much looking for guidance on implementing library with all modern c++ whistles, pipe interface, and critique on components I will write.
I think it will take some time investment from your side on start, on architecture level, then I will do rest, with some help from your side.
I think I have a pretty good idea on feature set of a project. My problem is to nicely express them with modern c++.

BTW anyway I am intended to do this project as prop code... I can see using open source as a way to get better code.

Got it, yeah, if we found a small group of persons that are interested/can contribute to the project, I'm all in at partecipating. 👍
I can help but I can't do it all for myself, as I said. Do you have something that works/on which to start reasoning already or are these only ideas at the moment?

Those are only ideas at the moment. I came to a point when I want to rewrite all my prop libraries, and it is a patchwork of multi-threading, home-grown loops, queues, worker pools, networking etc. I do want to rewrite on more standardized approach, and this idea came up. I kinda pretty sure it will make my life much easier. Practically everything that I did can be much nicer implemented with linked high-level components on top of UVW, providing even better performance.
You have a lot of followers. Let's wait, may be someone will be interesting in participating. I will be "very active" contributor.

Ok. I'll be out for a week anyway. Let's see if someone pops up in the meantime, otherwise we'll create a repo and try to arrange something. 😉

I'm not sure I understood completely the idea, but as far as I understand it sounds interesting.
You refer to a library of C++ high-level components, I think. Right?

Yes, I want library of high-level components.
One component that comes to mind is reading file from beginning to end. It is not exactly trivial task with event loop.
Components should be able to connect to each other through standardized interface, provide functionality similar to what you get with unix pipes.
I got this idea from my code - I am repeatedly coding same components with some variations - file readers, network listeners, network senders, network receivers, queues, workers, compressors etc.
I want to take several required components, connect them, and get working program.
There are more details, but general idea is here.

Apparently, either there isn't much interest or people have already created these kinds of classes and don't intend to share them. 🤷♂
I'm closing this issue but feel free to continue the discussion here if you want to proceed. Thank you.


Fix chaining of credentials for minio-go

chaining failed because chaining provider
was only looking for subsequent credentials
provider after an error. Writer a new
chaining provider which proceeds to fetch
new credentials also under situations where
providers do not return but instead return
no keys at all.
https://github.com/restic/restic/issues/1422

Codecov Report

Merging #1423 into master will decrease coverage by 5.53%.
The diff coverage is 71.42%.

@@            Coverage Diff             @@
##           master    #1423      +/-   ##
==========================================
- Coverage   51.12%   45.59%   -5.54%
==========================================
  Files         136      136
  Lines       13612    13632      +20
==========================================
- Hits         6959     6215     -744
- Misses       5800     6618     +818
+ Partials      853      799      -54

Impacted Files
Coverage Δ

internal/backend/s3/s3.go
61.79% <71.42%> (+0.52%)
:arrow_up:

internal/backend/b2/b2.go
0% <0%> (-79.41%)
:arrow_down:

internal/backend/azure/azure.go
0% <0%> (-75.35%)
:arrow_down:

internal/backend/swift/swift.go
0% <0%> (-73.9%)
:arrow_down:

internal/backend/gs/gs.go
0% <0%> (-68.96%)
:arrow_down:

internal/backend/swift/config.go
34.37% <0%> (-56.25%)
:arrow_down:

cmd/restic/lock.go
52.5% <0%> (-5%)
:arrow_down:

internal/backend/test/tests.go
58.81% <0%> (-0.58%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 06bd606...06f02b4. Read the comment docs.

+1 on the issue, but -1 on this fix. This looks like a bug in minio-go, not restic.
I just ran into this when trying to add a new credential provider to the credential chain. It seems like credential provider chaining is broken in minio-go because some credential providers (namely credentials.EnvAWS, credentials.EnvMinio, and credentials.Static) don't return errors when key ID and secret are empty. This in turn causes the chaining implemenation to always stop looking for credentials after it encounters one of those providers in the chain, even if it doesn't actually provide any credentials.
FWIW, aws-sdk-go, which minio-go seems to be based on, implements this correctly by always returning an error if the key ID or secret parsed from environment variables or passed in as static credentials are empty.
A fix for this in minio-go might involve doing what aws-sdk-go does and have the environment variable credential providers return errors instead of empty strings when the provided credentials are empty (or the environment variables aren't set). Another way is to do what's in this pull request and change the chaining implementation to keep looking for credentials if it encounters non-error empty-string credentials.
Until this gets fixed in minio-go, instead of copying types to restic that already exist in minio-go, there should just be a workaround: build the chain as usual (with the IAM credential provider for example) but exclude any credentials.EnvAWS, credentials.EnvMinio, and credentials.Static providers, and inject a credentials.Static to the beginning of the chain only if cfg.KeyID and cfg.Secret are non-empty strings. Once it gets fixed, just delete the injection workaround and add credentials.EnvAWS and credentials.EnvMinio to the beginning of the chain.

Until this gets fixed in minio-go, instead of copying types to restic that already exist in minio-go, there should just be a workaround: build the chain as usual (with the IAM credential provider for example) but exclude any credentials.EnvAWS, credentials.EnvMinio, and credentials.Static providers, and inject a credentials.Static to the beginning of the chain only if cfg.KeyID and cfg.Secret are non-empty strings. Once it gets fixed, just delete the injection workaround and add credentials.EnvAWS and credentials.EnvMinio to the beginning of the chain.

The reason we do not return error is because returning error for anonymous credentials is a wrong thing to do, we just treat these things alike.  The fix here is just a different implementation of the same chaining provider which implements functionality by prioritizing non anonymous credentials.
I do not agree that we should return errors, aws-sdk-go has different requirements than minio-go.

I do not agree that we should return errors, aws-sdk-go has different requirements than minio-go.

Makes sense. It looks like minio/minio-go#877 implements your fix here to minio-go itself, right?
I still think there's no need to copy that type to restic and a workaround should work fine until that pull request gets merged into minio-go and updated here. There should at least be a comment to remove the extra chain type/workaround after minio-go gets patched.

Makes sense. It looks like minio/minio-go#877 implements your fix here to minio-go itself, right?
I still think there's no need to copy that type to restic and a workaround should work fine until that pull request gets merged into minio-go and updated here. There should at least be a comment to remove the extra chain type/workaround after minio-go gets patched.

This is an interim workaround for now, once restic moves to perhaps 4.0.x release it can be migrated. Thanks good idea, will add a FIXME perhaps to indicate that we need to remove it.

Thanks for the contributions!

@harshavardhana I've updated restic to minio-go v4, would you mind having a look what can be removed from the s3 backend here: https://github.com/restic/restic/blob/4f46b4f3935286221f05000575bd5e97fd1a1151/internal/backend/s3/s3.go#L85-L107

@fd0  We can basically remove
diff --git a/internal/backend/s3/s3.go b/internal/backend/s3/s3.go
index f15a2ddc..d7119648 100644
--- a/internal/backend/s3/s3.go
+++ b/internal/backend/s3/s3.go
@@ -33,48 +33,6 @@ var _ restic.Backend = &Backend{}

 const defaultLayout = "default"

-type chain struct {
-       Providers []credentials.Provider
-       curr      credentials.Provider
-}
-
-// FIXME: Remove this code once restic migrates to minio-go 4.0.x
-func newChainCredentials(providers []credentials.Provider) *credentials.Credentials {
-       return credentials.New(&chain{
-               Providers: append([]credentials.Provider{}, providers...),
-       })
-}
-
-// Retrieve returns the credentials value or error if no provider returned
-// without error.
-//
-// If a provider is found it will be cached and any calls to IsExpired()
-// will return the expired state of the cached provider.
-func (c *chain) Retrieve() (credentials.Value, error) {
-       for _, p := range c.Providers {
-               creds, _ := p.Retrieve()
-               // If anonymous proceed to the next provider if any.
-               if creds.SignerType.IsAnonymous() {
-                       continue
-               }
-               c.curr = p
-               return creds, nil
-       }
-       return credentials.Value{
-               SignerType: credentials.SignatureAnonymous,
-       }, nil
-}
-
-// IsExpired will returned the expired state of the currently cached provider
-// if there is one.  If there is no current provider, true will be returned.
-func (c *chain) IsExpired() bool {
-       if c.curr != nil {
-               return c.curr.IsExpired()
-       }
-
-       return true
-}
-
 func open(cfg Config, rt http.RoundTripper) (*Backend, error) {
        debug.Log("open, config %#v", cfg)

@@ -89,7 +47,7 @@ func open(cfg Config, rt http.RoundTripper) (*Backend, error) {
        // configured ec2 instances)
        // AWS env variables such as AWS_ACCESS_KEY_ID
        // Minio env variables such as MINIO_ACCESS_KEY
-       creds := newChainCredentials([]credentials.Provider{
+       creds := credentials.NewChainCredentials([]credentials.Provider{
                &credentials.Static{
                        Value: credentials.Value{
                                AccessKeyID:     cfg.KeyID,

Would you like to do a PR? Or should I do that?

Would you like to do a PR? Or should I do that?

i can do ..

Please, do, thanks!

Please, do, thanks!

done


Duplicate tag span.kind=server

Describe the bug
Data reported by to OTEL service in Jaeger format might get duplicated tag span.kind=server. The tag is probably duplicated during the model conversion.
To Reproduce
Steps to reproduce the behavior:

docker run -it --rm -e "ES_JAVA_OPTS=-Xms2g -Xmx2g" -p 9200:9200 -p 9300:9300 -e "http.host=<IP_ADDRESS>" -e "discovery.type=single-node" --name=elasticsearch docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.4
SPAN_STORAGE_TYPE=elasticsearch go run -tags ui ./cmd/all-in-one/main.go --new-metrics=true (after PR https://github.com/jaegertracing/jaeger/pull/2295)
open Jaeger UI and create some requests. The first span from traces reported by query service has a warning Duplicate tag "span.kind:server"

Expected behavior
A single span kind tag

Tried reproducing the issue to understand the problem, off master (which includes #2295), but seeing the following error:
$ SPAN_STORAGE_TYPE=elasticsearch go run -tags ui ./cmd/all-in-one/main.go --new-metrics=true
2020/07/19 10:40:44 maxprocs: Leaving GOMAXPROCS=8: CPU quota undefined
Error: unknown flag: --new-metrics

Removing the --new-metrics flag managed to get the all-in-one running, but I could not see the duplicate tag warnings in Jaeger UI for the traces generated on the jaeger-query service, mentioned in the description.
What steps am I missing in order to reproduce the problem successfully?

Maybe the issue has been fixed in the Jaeger translator in OTEL repo. The --new-metrics also probably changed.
You did a good job by trying to reproduce it. I will have a look again at this soon. You could try to use a different application (e.g. hotrod) and wee whether reported data looks fine.

I'm seeing duplicates for the status.code. A possible correlation might be when errors occur. (I have to investigate further to confirm with confidence.)
Setup:
OpenTelemetry JS client + the following Jaeger setup running in Docker:
version: '3'

services:
  jaeger:
    image: jaegertracing/opentelemetry-all-in-one:latest
    command: ['--config-file=/config/config.yaml']
    container_name: jaeger
    # environment:
    # - SPAN_STORAGE_TYPE=badger
    # - BADGER_EPHEMERAL=true
    # - BADGER_DIRECTORY_VALUE=/badger/data
    # - BADGER_DIRECTORY_KEY=/badger/key
    volumes:
      - ./config.yaml:/config/config.yaml
      # - ./badger:/badger
    ports:
      - "6831:6831/udp"
      - '6832:6832/udp' # incoming traces
      - '16686:16686' # Jaeger UI
      - '55679:55679' # zpages
      - '13133:13133' # health check
    restart: on-failure

These issues might be related to jaegertranslator in the OTEL repo  https://github.com/open-telemetry/opentelemetry-collector/tree/master/translator/trace/jaeger

I wasn't able to reproduce it, closing.