Use GithubActions instead of Travis CI for Kanister CI

Change Overview

Pull request type
Please check the type of change your PR introduces:

[ ] :construction: Work in Progress
[ ] :rainbow: Refactoring (no functional changes, no api changes)
[ ] :hamster: Trivial/Minor
[ ] :bug: Bugfix
[x] :sunflower: Feature
[ ] :world_map: Documentation
[ ] :robot: Test

Test Plan
Ran complete CI on code on forked repo. It's working as expected.
https://github.com/chaitanya-baraskar/kanister/actions/runs/398736954

[x] :muscle: Manual
[ ] :zap: Unit test
[ ] :green_heart: E2E

@TribalNightOwl The tests here should be similar to the tests we are running on Travis CI. Refer to .travis.yml

@pavannd1 I think it's running all tests from travis. I just changed name for steps. Please let me know if I am missing any step here.

Note that the GitHub actions is set up to trigger on the main branch.  This repo would need to be changed to use the main branch as the default instead of master.

Go Linter:
If we are adopting<EMAIL_ADDRESS>Should we remove the make target golint?
Also our golint target has more configuration settings:
golangci-lint run --timeout ${TIMEOUT} --skip-dirs ${SKIP_DIR_REGEX} -E maligned,whitespace,gocognit,unparam -e 'ctx is unused'
than: https://github.com/Jerome1337/golint-action/blob/master/entrypoint.sh
GOLINT_OUTPUT="$(golint -set_exit_status $1)"
So maybe we should just call our golint target, or configure<EMAIL_ADDRESS>to use the same settings as our golint target.

@TribalNightOwl sure. I will look into it.

@chaitanya-baraskar the followup tasks would be

Remove .travis.yaml
Update mergify config to switch github action checks from travis CI checks

Has to be merged manually as there are changes in workflows.

Creating new PR as this one is really messy. @TribalNightOwl @pavannd1 @PrasadG193


parallel-weights.json not generated

When cypress-parallel is running in a Docker container that exits immediately after having completed the tests suites, it never writes the file parallel-weights.json because the process terminate before.
I think that the problem it's caused by using asynchronous write API to write the file.
function generateWeightsFile(specWeights, totalDuration, totalWeight) {
  Object.keys(specWeights).forEach((spec) => {
    specWeights[spec].weight = Math.floor(
      (specWeights[spec].time / totalDuration) * totalWeight
    );
  });
  const weightsJson = JSON.stringify(specWeights);
  fs.writeFile(`${settings.weightsJSON}`, weightsJson, 'utf8', (err) => {
    if (err) throw err;
    console.log('Generated file parallel-weights.json.');
  });
}

I have changed this function and apparently works:
function generateWeightsFile(specWeights, totalDuration, totalWeight) {
  Object.keys(specWeights).forEach((spec) => {
    specWeights[spec].weight = Math.floor(
      (specWeights[spec].time / totalDuration) * totalWeight
    );
  });
  const weightsJson = JSON.stringify(specWeights);
  fs.writeFileSync(`${settings.weightsJSON}`, weightsJson, 'utf8');
}function generateWeightsFile(specWeights, totalDuration, totalWeight) {
  Object.keys(specWeights).forEach((spec) => {
    specWeights[spec].weight = Math.floor(
      (specWeights[spec].time / totalDuration) * totalWeight
    );
  });
  const weightsJson = JSON.stringify(specWeights);
  fs.writeFileSync(`${settings.weightsJSON}`, weightsJson, 'utf8');
}

I've put up a PR for this issue here https://github.com/tnicola/cypress-parallel/pull/73

@delmorof Should be fixed now in 0.7.0, thanks @brady727

Hi @tnicola
I'm a beginner in Cypress and currently trying to implement Parallel execution in my project.
Since I do not have a distributed environment, hence trying to have parallel execution locally.
Came across your solution for this and after doing npm i cypress-parallel, I still don't see the parallel-weights.json being generated(considering the latest version 0.7.0).
And when I run my  npm run cy:parallel script, I see below message on terminal
Weights file not found in path cypress/parallel-weights.json
and the tests are not running in parallel in fact there is only 1 instance of browser opening.
Could you please help me overcome this issue.
TIA.

I am using version 0.9.0, and I'm getting the same error "Weights file not found in path cypress/parallel-weights.json." please replay how to resolve this issue.

Any idea when the problem will be solved?

I encountered this issue, but I have already resolved it. Here is my solution: I relocated the specs directory to a specific folder that only contains spec files, with no sub-folders present

Same here


Time input wont accept numbers > 9 (e.g. double digits)

The time picker inputs will not accept 12, 11 or 10 at present.
The only way to achieve this is use the arrow keys or the (very hard to see) native ticker UI.
At present its not very usable.
My suggestion would be to drop number inputs all-together and go for a validated text-field with manually implemented (DOM) + / - controlls

Would do a PR although would need to know if this is intended direction first...

Could not reproduce it in Chrome. Are you using Safari?

My suggestion would be to drop number inputs all-together and go for a validated text-field with manually implemented (DOM) + / - controlls

See https://github.com/chmln/flatpickr/issues/174#issuecomment-234452023

Is the issue still relevant?

No was related to safari issue mentioned


admin roles

we'll need admin roles and tools.
one example of an admin task would be the ability to merge demands that are very similar. features of such a tool TBD.

Duplicate of #15


Update docs on locale configuration

locale at root was deprecated in #212, and theme/language only works for Material theme.
Relevant implementation:
https://github.com/Guts/mkdocs-rss-plugin/blob/15938261138769919c714e60d4925c58bffa81e1/mkdocs_rss_plugin/util.py#L720-L723

Thanks!


Add check for vxlan module to https://get.docker.com for Raspian

Output of docker version:
Client:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 05:31:15 2016
 OS/Arch:      linux/arm

Server:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 05:31:15 2016
 OS/Arch:      linux/arm

Describe the results you received:
I installed Docker on some Raspberry Pis with Raspian Jessie using curl -sSL https://get.docker.com | sh in order to follow a swarm tutorial. The networking didn't work. This was because I needed to run rpi-update on each Pi to install the vxlan kernel module. This isn't obvious.
Describe the results you expected:
Install Docker and proceed with swarm mode tutorials, etc.
Additional information you deem important (e.g. issue happens only occasionally):
Thanks @mrjana for pointing out what needed to be done.

@darkermatter Was this my tutorial by any chance? It does mention that you need to run rpi-update but that relates to the image released in May. All images since already contain vxlan.

Hi @alexellis, sorry but I can't recall the tutorial I used.

This will only appear for people with a very old RPi image. If I leave a link to this set of functional tests do you think this can get closed? https://github.com/alexellis/swarmmode-tests/tree/master/arm

I agree; we have a check-config script to help finding possible issues on the host, and we cannot check for every issue in the install script; https://github.com/docker/docker/blob/master/contrib/check-config.sh
I'll close this issue, but thanks for reporting @darkermatter


Problem: Coveralls message in PR are annoying

@sjmackenzie Are there ways to disable coveralls' message for its CI run?

not that I can see, more than happy to disable it.

Well then, never mind.


Change TLS RC4 cipher strength check to be data driven.

This is a same pattern as used in PR #16652

Checklist

[ ] documentation is added or updated
[ ] tests are added or updated

If PR #16652 is rejected then this should be also..

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Merged to master. Thank you.


"Azure Resource Group Deployment" task uses old ARM RESP API version

Required Information
Entering this information will route you directly to the right team and expedite traction.
Question, Bug, or Feature?
Type: Feature
Enter Task Name: AzureResourceGroupDeploymentV2
Environment
Azure DevOps, Hosted agent, Windows 2019 pool
Issue Description
The task "Azure Resource Group Deployment" V2 uses ARM API version '2017-05-10' to perform template validation. This version doesn't support ARM iteration with zero "copy" count.
Please

switch the task to use ARM REST API version '2019-05-10' or later

and/or-

Make ARM API version a task parameter

Reproduction
Sample ARM template
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "<IP_ADDRESS>",
"parameters": {
"strings": {
"defaultValue": [],
"type": "Array"
}
},
"variables": {
"copy": [
{
"name": "newStrings",
"count": "[length(parameters('strings'))]",
"input": "[concat('new-', parameters('strings')[copyIndex('newStrings')])]"
}
]
},
"resources": [],
"outputs": {
"arrayResult": {
"type": "Array",
"value": "[variables('newStrings')]"
}
}
}
With default parameter ('strings') value (empty array []), this template can be deployed using Azure Portal, but it fails on validation step in the Azure DevOps release pipeline.
Task logs (relevant part)
2020-03-26T14:12:10.0895366Z Starting template validation.
2020-03-26T14:12:10.0899137Z ##[debug]System.DefaultWorkingDirectory=d:\a\r1\a
2020-03-26T14:12:10.0901052Z ##[debug]defaultRoot: 'd:\a\r1\a'
2020-03-26T14:12:10.0902616Z ##[debug]findOptions.allowBrokenSymbolicLinks: 'false'
2020-03-26T14:12:10.0904287Z ##[debug]findOptions.followSpecifiedSymbolicLink: 'true'
2020-03-26T14:12:10.0906321Z ##[debug]findOptions.followSymbolicLinks: 'true'
2020-03-26T14:12:10.0907753Z ##[debug]matchOptions.debug: 'false'
2020-03-26T14:12:10.0909268Z ##[debug]matchOptions.nobrace: 'true'
2020-03-26T14:12:10.0910646Z ##[debug]matchOptions.noglobstar: 'false'
2020-03-26T14:12:10.0912147Z ##[debug]matchOptions.dot: 'true'
2020-03-26T14:12:10.0913676Z ##[debug]matchOptions.noext: 'false'
2020-03-26T14:12:10.0915009Z ##[debug]matchOptions.nocase: 'true'
2020-03-26T14:12:10.0916369Z ##[debug]matchOptions.nonull: 'false'
2020-03-26T14:12:10.0918163Z ##[debug]matchOptions.matchBase: 'false'
2020-03-26T14:12:10.0919500Z ##[debug]matchOptions.nocomment: 'false'
2020-03-26T14:12:10.0920535Z ##[debug]matchOptions.nonegate: 'false'
2020-03-26T14:12:10.0921380Z ##[debug]matchOptions.flipNegate: 'false'
2020-03-26T14:12:10.0922246Z ##[debug]pattern: 'd:\a\r1\a_Azure.DevopsPOC\ARMTest\copy.json'
2020-03-26T14:12:10.0923139Z ##[debug]findPath: 'd:\a\r1\a_Azure.DevopsPOC\ARMTest\copy.json'
2020-03-26T14:12:10.0924148Z ##[debug]statOnly: 'true'
2020-03-26T14:12:10.0924818Z ##[debug]found 1 paths
2020-03-26T14:12:10.0925457Z ##[debug]applying include pattern
2020-03-26T14:12:10.0926054Z ##[debug]1 matches
2020-03-26T14:12:10.0926665Z ##[debug]1 final results
2020-03-26T14:12:10.0927329Z Deployment name is copy-20200326-141210-dd4c
2020-03-26T14:12:10.0929329Z ##[debug][POST]https://management.azure.com*/providers/Microsoft.Resources/deployments/copy-20200326-141210-dd4c/validate?api-version=2017-05-10**
2020-03-26T14:12:10.4211848Z ##[debug]Correlation ID from ARM api call response : e2f998de-216e-40cd-b91b-7266b9306c8e
2020-03-26T14:12:10.4215790Z There were errors in your deployment. Error code: InvalidTemplate.
2020-03-26T14:12:10.4253349Z ##[error]Deployment template validation failed: 'The template 'copy' definition at line '1' and column '227' has an invalid copy count. The copy count must be a positive integer value and cannot exceed '800'. Please see https://aka.ms/arm-copy for usage details.'.
2020-03-26T14:12:10.4265585Z ##[debug]Processed: ##vso[task.issue type=error;]Deployment template validation failed: 'The template 'copy' definition at line '1' and column '227' has an invalid copy count. The copy count must be a positive integer value and cannot exceed '800'. Please see https://aka.ms/arm-copy for usage details.'.
2020-03-26T14:12:10.4267997Z ##[warning]Validation errors were found in the Azure Resource Manager template. This can potentially cause template deployment to fail. Task failed while creating or updating the template deployment.. Please follow https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-syntax
2020-03-26T14:12:10.4270005Z ##[debug]Processed: ##vso[task.issue type=warning;]Validation errors were found in the Azure Resource Manager template. This can potentially cause template deployment to fail. Task failed while creating or updating the template deployment.. Please follow https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-syntax
2020-03-26T14:12:10.4271084Z Starting Deployment.
2020-03-26T14:12:10.4271343Z Deployment name is copy-20200326-141210-dd4c
2020-03-26T14:12:10.4272533Z ##[debug][PUT]https://management.azure.com***/providers/Microsoft.Resources/deployments/copy-20200326-141210-dd4c?api-version=2017-05-10
2020-03-26T14:12:10.6692020Z ##[debug]Correlation ID from ARM api call response : 77330c93-5e74-4900-b15e-afd398390fe8
2020-03-26T14:12:10.6696701Z ##[debug]Processed: ##vso[task.logissue type=error;code=InvalidTemplate;]
2020-03-26T14:12:10.6699092Z There were errors in your deployment. Error code: InvalidTemplate.
2020-03-26T14:12:10.6700922Z ##[error]Deployment template validation failed: 'The template 'copy' definition at line '1' and column '227' has an invalid copy count. The copy count must be a positive integer value and cannot exceed '800'. Please see https://aka.ms/arm-copy for usage details.'.
2020-03-26T14:12:10.6702761Z ##[debug]Processed: ##vso[task.issue type=error;]Deployment template validation failed: 'The template 'copy' definition at line '1' and column '227' has an invalid copy count. The copy count must be a positive integer value and cannot exceed '800'. Please see https://aka.ms/arm-copy for usage details.'.
2020-03-26T14:12:10.6704415Z ##[debug]task result: Failed
2020-03-26T14:12:10.6705911Z ##[error]Task failed while creating or updating the template deployment.
2020-03-26T14:12:10.6707402Z ##[debug]Processed: ##vso[task.issue type=error;]Task failed while creating or updating the template deployment.
2020-03-26T14:12:10.6722838Z ##[debug]Processed: ##vso[task.complete result=Failed;]Task failed while creating or updating the template deployment.
2020-03-26T14:12:10.6933598Z ##[section]Finishing: Azure Deployment:Create Or Update Resource Group action on ICC-DEVOPS-SANDBOX
Error logs
##[error]Deployment template validation failed: 'The template 'copy' definition at line '1' and column '227' has an invalid copy count. The copy count must be a positive integer value and cannot exceed '800'. Please see https://aka.ms/arm-copy for usage details.'.

@bishal-pdMSFT @kmkumaran the issue still persists, are there any news?

@gaikovoi @krbar a PR has been merged which updated the API versions. This will gradually roll out to all customer rings within a could of weeks.

@bishal-pdMSFT Thank you!


Can you add option to hide toolbar from x-spreadsheet

This option -> showToolbar: false,
Thank you

you can use:
.x-spreadsheet-toolbar {    display: none !important; }


Question: How to add enum values to helpdisplay

 Issue by wadiv76
Friday Jun 24, 2016 at 14:19 GMT
Originally opened as https://github.com/gsscoder/commandline/issues/327

`
static int Main(string[] args)
{
var result = CommandLine.Parser.Default.ParseArguments(args);
        var exitCode = result.MapResult(
            options =>
            {
                return ScheduledTasks.ExecuteTask(options.Task);
            },
            errors =>
            {
                var helpText = HelpText.AutoBuild<ScheduledTaskOptions>(result);
                helpText.AddEnumValuesToHelpText = true;
                _logger.Error(helpText);
                return 1;
            });
        return exitCode;
    }

`
I am trying to figure out how to display the enum values for my options.  I see that HelpText has AddEnumValuesToHelpText, but I have not figured out how to access the autobuild's helptext to set it.  There also seems to be various online explanations for different versions of commandline parser in how it works, so I am not sure what features actually work in 2.0.275-beta

 Comment by peetw
Thursday Jan 12, 2017 at 08:38 GMT

I know this is a little bit late, but this can be achieved - you have to re-add the options to the help text after auto-building it (I also cannot work out how to pass config to the AutoBuild method - it seems like an oversight in the API...). The following example assumes you only have Options, not Verbs:
parserResult.WithNotParsed(errors =>
{
    // Use custom help text to ensure valid enum values are displayed
    var helpText = HelpText.AutoBuild(parserResult);
    helpText.AddEnumValuesToHelpText = true;
    helpText.AddOptions(parserResult);
    Console.Error.Write(helpText);
    Environment.Exit(1);
});

I just wish there was a simpler way of specify auto build config... Especially when you have Verb options!

Fixed


Problem setting header to application/json

I am having problems using cpr to connect to Compiler Explorer's api.  When I put wireshark on my cpr post request, it says that the header content-type is x-www-form-urlencoded but my code has Header{{"Content-Type", "application/json"}}.  I don't have much experience with wireshark or cpr but is it possible that my header directive is not being followed.  I am wondering if this is the reason that I can't connect with Compiler Explorer.

Interesting.
Could you please provide a small example program or test, showing this behaviour?

I have a similar question. Here's the code I wrote. Run it, I found some problems by Wireshark. Content-Length is<PHONE_NUMBER>32, and Expect is 100-continue. Please help me, thanks.
std::string body = "{\"RegisterObject\": {\"DeviceID\": \"65010000005030000001\"}}";
auto response    = cpr::Post(cpr::Url{"http://<IP_ADDRESS>:14000/VIID/System/Register"},
                               cpr::Header{{"Content-Type", "application/json"}}, cpr::Body{body},
                               cpr::ConnectTimeout{3000}, cpr::Timeout{3000});

The following code sent to httpbin.org:
json js = {{"key", "value"}};
cpr::Response r = cpr::Post(cpr::Url{http://httpbin.org/post"),
                                            Body{js.dump()},
                                            cpr::Header{{"Content-Type", "application/json"}},
                                            cpr::Header{{"accept", "application/json"}}
                                            );

returns the following from httpbin:
{
  "args": {},
  "data": "",
  "files": {},
   "form": {
   {"{\"key\":\"value\"}" : ""
  },
   "headers": {
     "Accept": "application/json",
     "Accept-Encoding": "deflate, gzip",
     "Content-Length": "15",
     "Content-Type": "application/x-www-form-urlencoded",
     "Host": "httpbin.org",
     "User-Agent": "curl/7.69.1",
     "X-Amzn-Trace-Id": "Root=1-5f6b1491-8761a87669d2a28a432c8a10"
 },
  "json": null,
  "origin": "<IP_ADDRESS>",
  "url": "http://httpbin.org/post"                                                                                }

@slzatz, I'm unable to reproduce your problem.
I wrote a quick test and everything seams to run like expected:
TEST(UrlEncodedPostTests, HttpBinPostTest) {
    Url url{server->GetBaseUrl() + "/json_post.html"};
    std::string body{"{\"RegisterObject\": {\"DeviceID\": \"65010000005030000001\"}}"};
    cpr::Response response = cpr::Post(cpr::Url{"http://httpbin.org/post"}, cpr::Body{body},
                                       cpr::Header{{"Content-Type", "application/json"}},
                                       cpr::Header{{"accept", "application/json"}});
    EXPECT_EQ(std::string{"application/json"}, response.header["content-type"]);
    EXPECT_EQ(200, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

Did I miss anything?

I have experienced this same problem using cpr::Session Post. I am manually setting the Header Content Type but is being overridden and set to ‘x-www-form-urlencoded’

@COM8 Not sure how to reconcile the test you posted and what I am experiencing and what @LukeMauldin reports as well. Just to eliminate the unlikely event that somehow the json library doing something unexpected, I initialized the body with the same string as in your test and I still get the content type as x-www-form-urlencoded.  It is as cpr is ignoring my Header and the post is falling back to the default content type.

Has anybody tried older versions of cpr to see if they are caused by this?
Does anybody have a binary or complete sourcefile that can reproduce the issue?
What operating system is this running on?  Are threads involved, or other uses of curl outside cpr?

I posted a comment here before fully understanding the situation.  It sounds like the internals working with curl need debugging using a packetlogger.  One way somebody could pursue this without much knowledge is by making a working example using raw libcurl and incrementally changing the parts to those of cpr instead.

Well here's a clue, if I send only one Header, the Content-Type is set correctly.  As soon as I send the Accept Header, the Content-Type reverts to x-www-form-urlencoded.  (Doesn't solve my problem because I need the Accept Header.)  So the code below at least sets the Content Type correctly.
json js = {{"key", "value"}};
cpr::Response r = cpr::Post(cpr::Url{http://httpbin.org/post"),
                                            Body{js.dump()},
                                            cpr::Header{{"Content-Type", "application/json"}}
                                            //cpr::Header{{"accept", "application/json"}}
                                            );

I took a quick look at the code and not clear under what circumstances the append on line 136 fails (if that is what is going on) but also not sure it makes sense to keep evaluating further headers in the for loop once curl_slist_append returns a nullptr.
curl_slist* temp = curl_slist_append(chunk, header_string.c_str());
            if (temp) {
                chunk = temp;
            }

Glancing at the code you mention, it looks like the call to setHeader does indeed reset the headers.  Your issue would be fixed by wrapping both headers into one Header object.  I wonder if that's documented.

@xloem - Thanks - you were correct that you can wrap both headers in one header object and that worked.  Thanks for your help.  Still seems worth figuring out why separate header calls appear to fail and under what circumstances.

Yes, good spot @xloem.
Yes, by setting multiple cpr::Header objects, headers will be overriden/cleared each time.
This is a good point. We might have to ask ourselves how we could prevent such behaviour in the best case even during compilation.


Added profile to run benchmark

related to #54

I tried to get the antlr benchmark to follow the same type of profile, but wasn't able to get it to work.


Revert "[BEAM-10912] Increase Jenkins job logs retention from 14 to 3…

…0 days"
This reverts commit 346b6c6c683d8be00240aa78d390028f4f263392.
It seems this is causing jenkins master to run out of disk space (INFRA-21857).

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Closing this for now since ci-beam.apache.org master now has a larger disk


Toggle menu on mobile

It seems as though the toggle menu isn't working on the mobile view. The JavaScript isn't executing on the html files

Hello @helfi92
I hope you are doing well.
If this issue still active i would like to work on that and if possible you can assign me, I will be grateful for this.
Best regards,
Amisha

@amiii123malviya Thanks! All yours.


Fixed Middleware Issues

In classic we now manually create a service scope so that the DataLoader and other scoped services work correctly.
Add error codes to authentication errors.
AuthorizeDirective does not deserialize roles property correctly if it is passed as a single string

Fixes #771
Fixes #770
Fixes #624

We should add Use and Use(Factory> to the descriptors instead of extension methods.


brew install sunnyyoung/repo/wechattweak-cli 报错

➜  WeChatTweak-macOS git:(master) brew install sunnyyoung/repo/wechattweak-cli
Error: No available formula with the name "sunnyyoung/repo/wechattweak-cli"
==> Searching for a previously deleted formula (in the last month)...
Warning: sunnyyoung/repo is shallow clone. To get complete history run:
git -C "$(brew --repo sunnyyoung/repo)" fetch --unshallow
Error: No previously deleted formula found.
==> Searching for similarly named formulae...
Error: No similarly named formulae found.

git -C "$(brew --repo sunnyyoung/repo)" fetch --unshallow

brew install sunnyyoung/repo/wechattweak-cli安装成功，
sudo wechattweak-cli --install 安装失败
报错如下：

➜  homebrew-core git:(master) brew reinstall sunnyyoung/repo/wechattweak-cli
Warning: You are using macOS 10.13.
We (and Apple) do not provide support for this old version.
You will encounter build failures with some formulae.
Please create pull requests instead of asking for help on Homebrew's GitHub,
Twitter or any other official channels. You are responsible for resolving
any issues you experience while you are running this
old version.
==> Downloading https://github.com/Sunnyyoung/WeChatTweak-CLI/releases/download/1.2/wechattweak-cli
Already downloaded: /Users/gaohailong/Library/Caches/Homebrew/downloads/f9a25cad1abc6ec535a537b726546b038ccaae209f36a2d74e188049370baf4e--wechattweak-cli
All formula dependencies satisfied.
==> Uninstalling Cask wechattweak-cli
==> Unlinking Binary '/usr/local/bin/wechattweak-cli'
==> Purging files for version 1.2 of Cask wechattweak-cli
==> Installing Cask wechattweak-cli
==> Linking Binary 'wechattweak-cli' to '/usr/local/bin/wechattweak-cli'
🍺  wechattweak-cli was successfully installed!
➜  homebrew-core git:(master) wechattweak-cli --install
Install failed: Please run with sudo.
➜  homebrew-core git:(master) sudo wechattweak-cli --install
Password:
------ Backup ------
Created WeChat.bak...
------ Download ------
Install failed: Download failed with error: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x7f8d8d41c490 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=https://github.com/Sunnyyoung/WeChatTweak-macOS/releases/latest/download/WeChatTweak.framework.zip, NSErrorFailingURLKey=https://github.com/Sunnyyoung/WeChatTweak-macOS/releases/latest/download/WeChatTweak.framework.zip, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}

下再失败了，网络问题

下再失败了，网络问题

有离线版本吗？或者如何解决网络问题，我用是的电信200M的宽带啊

sudo wechattweak-cli --install
Password:
------ Backup ------
WeChat.bak exists, skip it...
------ Download ------
Install failed: Download failed with error: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x7f834e60b0a0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=https://github.com/Sunnyyoung/WeChatTweak-macOS/releases/latest/download/WeChatTweak.framework.zip, NSErrorFailingURLKey=https://github.com/Sunnyyoung/WeChatTweak-macOS/releases/latest/download/WeChatTweak.framework.zip, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}

能不能搞个gitee版本啊？

解决办法
brew 安装失败：LibreSSL SSL_connect: SSL_ERROR_SYSCALL
https://juejin.cn/post/6987392117236564005

$ brew install sunnyyoung/repo/wechattweak-cli
zsh: command not found: $


Fixing double snackbar issue

@ianbarber please merge, this is a clone of the internal CL.

Fixes #2

Thanks Sam!


patch: use latest docker image for reaction

close #130

@zenweasel Please have a look at this PR 😄

@ankiiitraj No this isn't what we want. We want the Dockerfile pinned to whatever was the current version at project creation.

Closing due to inactivity


Transfer Rails 7.0.0.alpha2, get "NoMethodError (undefined method `failure_app' for nil:NilClass)"

Environment

Ruby [3.0.0]
Rails [7.0.0.alpha2]
Devise [4.8.0] ("gem 'devise', git: 'https://github.com/heartcombo/devise', branch: 'main'" in Gemfile)

Current behavior
Curentlly I've transfered my environment following the below.

Previous version
New version

Rails 5.12
Rails 7.0.0.alpha2

Ruby 2.4.1
Ruby 3.0.0

Devise 4.3.0
Devise 4.8.0

I use rails_admin for account management.
But When my environment has transfered, I got  "NoMethodError (undefined method `failure_app' for nil:NilClass)" as error.
Before transferring,  rails_admin was totally fine.
I checked Devise.mappings in rails console, there is no :admin_user.
I think rails_admin.rb is fine.

And I post an issue in railsadminteam / rails_admin.
They said it's issue of devise setting.
I think the problem is one of the following.

Part of devise setting was chenged from a few years ago
The bug of devise

I leave my devise setting.
devise.rb
Devise.setup do |config|
  config.secret_key =
    'secret_key'
  config.mailer_sender =<EMAIL_ADDRESS>  require 'devise/orm/active_record'
  config.case_insensitive_keys = [:email]
  config.strip_whitespace_keys = [:email]
  config.skip_session_storage = [:http_auth]
  config.stretches = Rails.env.test? ? 1 : 12
  config.reconfirmable = true
  config.email_regexp = /\A[^@\s]+@[^@\s]+\z/
  config.timeout_in = 3.hours
  config.reset_password_within = 6.hours
  config.sign_out_via = :delete
end

routes.rb
...
 devise_for :users,
             controllers: {
               omniauth_callbacks: 'users/omniauth_callbacks',
               registrations: 'users/registrations',
               sessions: 'users/sessions',
               passwords: 'users/passwords',
               confirmations: 'users/confirmations',
             }
 mount RailsAdmin::Engine => '/admin', :as => 'rails_admin'

devise_helper.rb
module DeviseHelper
  def devise_error_messages!
    return "" if resource.errors.empty?

    html = ""
    messages = resource.errors.full_messages.each do |errmsg|
      html += <<-EOF
      <div class="alert alert-danger alert-dismissible" role="alert">
        <button type="button" class="close" data-dismiss="alert">
        </button>
        #{errmsg}
      </div>
      EOF
    end
    html.html_safe
  end

  def devise_error_messages?
    resource.errors.empty? ? false : true
  end
end

user.rb
...
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable,
         :omniauthable, :confirmable

devise.en.yml
# Additional translations at https://github.com/heartcombo/devise/wiki/I18n

en:
  devise:
    confirmations:
      confirmed: "Your email address has been successfully confirmed."
      send_instructions: "You will receive an email with instructions for how to confirm your email address in a few minutes."
      send_paranoid_instructions: "If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes."
    failure:
      already_authenticated: "You are already signed in."
      inactive: "Your account is not activated yet."
      invalid: "Invalid %{authentication_keys} or password."
      locked: "Your account is locked."
      last_attempt: "You have one more attempt before your account is locked."
      not_found_in_database: "Invalid %{authentication_keys} or password."
      timeout: "Your session expired. Please sign in again to continue."
      unauthenticated: "You need to sign in or sign up before continuing."
      unconfirmed: "You have to confirm your email address before continuing."
    mailer:
      confirmation_instructions:
        subject: "Confirmation instructions"
      reset_password_instructions:
        subject: "Reset password instructions"
      unlock_instructions:
        subject: "Unlock instructions"
      email_changed:
        subject: "Email Changed"
      password_change:
        subject: "Password Changed"
    omniauth_callbacks:
      failure: "Could not authenticate you from %{kind} because \"%{reason}\"."
      success: "Successfully authenticated from %{kind} account."
    passwords:
      no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided."
      send_instructions: "You will receive an email with instructions on how to reset your password in a few minutes."
      send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes."
      updated: "Your password has been changed successfully. You are now signed in."
      updated_not_active: "Your password has been changed successfully."
    registrations:
      destroyed: "Bye! Your account has been successfully cancelled. We hope to see you again soon."
      signed_up: "Welcome! You have signed up successfully."
      signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated."
      signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked."
      signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account."
      update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirmation link to confirm your new email address."
      updated: "Your account has been updated successfully."
      updated_but_not_signed_in: "Your account has been updated successfully, but since your password was changed, you need to sign in again."
    sessions:
      signed_in: "Signed in successfully."
      signed_out: "Signed out successfully."
      already_signed_out: "Signed out successfully."
    unlocks:
      send_instructions: "You will receive an email with instructions for how to unlock your account in a few minutes."
      send_paranoid_instructions: "If your account exists, you will receive an email with instructions for how to unlock it in a few minutes."
      unlocked: "Your account has been unlocked successfully. Please sign in to continue."
  errors:
    messages:
      already_confirmed: "was already confirmed, please try signing in"
      confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one"
      expired: "has expired, please request a new one"
      not_found: "not found"
      not_locked: "was not locked"
      not_saved:
        one: "1 error prohibited this %{resource} from being saved:"
        other: "%{count} errors prohibited this %{resource} from being saved:"

I really need  helps....
Looking forward for your reply.
Thank you.

Can you provide a sample app that shows the issue? I have not encountered this myself, but I'm not a RailsAdmin user either.

So sorry ..
It was my app problem..

@HeppokoNeet can you share what was the issue that prompted that error?

@HeppokoNeet What's the problem?


Make it compatible with Brew 3 / Apple Silicon

The path for Brew changes for computers with Apple Silicon, this should fix it. I have checked the completion files and I don't think it's necessary to change anything
See https://brew.sh/2021/02/05/homebrew-3.0.0/

Awesome! Thanks for this!


It's showing TypeError: expressApiVersioning is not a function

app.use(expressApiVersioning({
apiPath: path.join(__dirname, './api'),
test: //api/(v[0-9]+).*/,
entryPoint: 'index.js',
instance: null
}, (error, req, res, next) => {
console.log(error);
next();
}));
^
TypeError: expressApiVersioning is not a function

I see two disturbing things in the snippet. First, test should be....

test: /\/api/(v[0-9]+).*/,

escape the forward slash.
Secondly, instance should be your app, so the instance line should be...

instance: app

Try this and if you still get errors then you will have to show me your directory structure

If this is hosted on a remote repo.... then you could share the link

@ProfJigsaw I don't think you're exporting properly.
I got it to work:
// Instead of this:
const expressApiVersioning = require('express-api-versioning');
// do this
const expressApiVersioning = require('express-api-versioning').default;

Hi, I am using const expressApiVersioning = require('express-api-versioning').default; now & following exactly your mock  link.
Directory Structure
app.js
api
    v1
        index.js
        routes
                  index.js
    v2
       index.js
       routes
                 index.js

in root app.js
const expressApiVersioning = require('express-api-versioning').default;
const app = express();

const config = {
  apiPath: path.join(__dirname, './api'),
  test: /\/api\/(v[0-9]+).*/,
  entryPoint: 'index.js',
  instance: app
};
app.use(expressApiVersioning({
config
  }, (error, req, res, next) => {
  console.log(error);
  next();
}));

Then in api>v1>index.js
import routes from './routes';
export default (app) => { //console.log(app)
  app.use('/api/v1', routes);
};

In api>v1>routes>index.js
import express from 'express';
const router = express.Router();

router.get('/', (req, res) => res
  .send({
    message: 'You are in /api/v1 end point'
  }));
export default router;

Now the error I am getting is  {code: 101, message : 'You must explicitly specify a path to where the APIs reside'}
Please help. Thanks.

Hey @206577873 maybe file your issue as a separate issue? It doesn't appear related to this one.

I'm just seeing this now. Sorry I've been busy with other things.
@206577873 have you been able to fix the issue now? I see you pushed a commit to a folk of this repo, mind raising a PR here so I can look into it and get it merged if necessary?


[Question] Device support info?

Is there anywhere that documents what is currently supported?

WebGL
Android
iOS
Microsoft
Linux
Mac

yes I would like to know this aswel.. using Unity aswel


Bad JSON after deleting secondary font in the “Text layout properties” section

Current JSON after deleting secondary font:
"text-font": [
    "Metropolis Regular",
    ""
],

Expected JSON:
"text-font": [
    "Metropolis Regular"
],

Related: https://github.com/maputnik/editor/issues/129

Closing here to concentrate the discussion in https://github.com/maputnik/editor/issues/129.


Hide license column on sbt 1.3.x

Don't print the license column as since sbt 1.3 the license information is not available via sbt-dependency-graph.
See https://github.com/jrudolph/sbt-dependency-graph/issues/178 for other issues with sbt 1.3.x

Tested with sbt 1.3.2 and this change on Alpakka and Alpakka Kafka without issues.


Fix call to osqp_setup to reflect current osqp version

Duplicate of #32

sorry, overlooked that branch...


Unable to join the Minecraft Server

Hi,
I use the raspberry pi 4 and the Portainer to hold the server with the tag:armv7.
 For help, type "help"
,[10:48:44] [Server thread/INFO]: Starting remote control listener
,[10:48:44] [Server thread/INFO]: Thread RCON Listener started
,[10:48:44] [Server thread/INFO]: RCON running on <IP_ADDRESS>:25575
,[10:49:06] [RCON Listener #1/INFO]: Thread RCON Client /<IP_ADDRESS> started
,[10:49:06] [RCON Client /<IP_ADDRESS> #2/INFO]: Thread RCON Client /<IP_ADDRESS> shutting down
,[10:49:13] [RCON Listener #1/INFO]: Thread RCON Client /<IP_ADDRESS> started
,[10:49:13] [RCON Client /<IP_ADDRESS> #3/INFO]: Thread RCON Client /<IP_ADDRESS> shutting down
,
The inspect file is as follows:
{
"AppArmorProfile": "",
"Args": [],
"Config": {
"AttachStderr": false,
"AttachStdin": false,
"AttachStdout": false,
"Cmd": null,
"Domainname": "",
"Entrypoint": [
"/start"
],
"Env": [
"PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=en_US.UTF-8",
"LANGUAGE=en_US:en",
"LC_ALL=en_US.UTF-8",
"JAVA_VERSION=jdk-11.0.10+9",
"JAVA_HOME=/opt/java/openjdk",
"UID=1000",
"GID=1000",
"MEMORY=2G",
"TYPE=VANILLA",
"VERSION=LATEST",
"ENABLE_RCON=true",
"RCON_PORT=25575",
"RCON_PASSWORD=minecraft",
"SERVER_PORT=25565",
"ONLINE_MODE=TRUE",
"SERVER_NAME=33 Minecraft Server",
"ENABLE_AUTOPAUSE=false",
"AUTOPAUSE_TIMEOUT_EST=3600",
"AUTOPAUSE_TIMEOUT_KN=120",
"AUTOPAUSE_TIMEOUT_INIT=600",
"AUTOPAUSE_PERIOD=10",
"AUTOPAUSE_KNOCK_INTERFACE=eth0",
"EULA=TRUE",
"VERSION=LATEST",
"FORGEVERSION=RECOMMENDED",
"SPONGEBRANCH=STABLE",
"SPONGEVERSION=",
"FABRICVERSION=LATEST",
"LEVEL=world",
"PVP=true",
"DIFFICULTY=easy",
"LEVEL_TYPE=DEFAULT",
"REPLACE_ENV_VARIABLES=FALSE",
"ENV_VARIABLE_PREFIX=CFG_"
],
"ExposedPorts": {
"25565/tcp": {},
"25575/tcp": {}
},
"Healthcheck": {
"StartPeriod":<PHONE_NUMBER>0,
"Test": [
"CMD-SHELL",
"/health.sh"
]
},
"Hostname": "056a42038eac",
"Image": "itzg/minecraft-server:armv7",
"Labels": {
"maintainer": "itzg",
"org.opencontainers.image.authors": "Geoff Bourne<EMAIL_ADDRESS>"org.opencontainers.image.documentation": "https://github.com/itzg/docker-minecraft-server",
"org.opencontainers.image.revision": "44769b6001ef54bad89ace246d73efce6e88867e",
"org.opencontainers.image.source": "https://github.com/itzg/docker-minecraft-server",
"org.opencontainers.image.version": "multiarch"
},
"OnBuild": null,
"OpenStdin": false,
"StdinOnce": false,
"Tty": true,
"User": "",
"Volumes": {
"/data": {}
},
"WorkingDir": "/data"
},
"Created": "2021-03-18T10:47:35.974505367Z",
"Driver": "overlay2",
"ExecIDs": null,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/b0b22086e1560f52e73ce63afb61ff34ae5853c04fcc78768c90b0022f28889a-init/diff:/var/lib/docker/overlay2/c2573dbc21a772ee323c6c3d80ca9983efa3fa04d2ca7073a60c2ac272e994a5/diff:/var/lib/docker/overlay2/2d2eecdb738531e6e6eac4adf53791ae358c8be11d5c64d617907ae1258d3066/diff:/var/lib/docker/overlay2/a3d79e8b050fa1d749f29f19af98a68376b970aeafd852fcb0cd0e5bd04c36ab/diff:/var/lib/docker/overlay2/081a16112081c7071d183293f5540910e0f0ef39da6a3468f4ef2562fb0fa164/diff:/var/lib/docker/overlay2/2b1fde1614e4ba9ff11414b4feeb4e72eb55675052aa0792ce409a455599467d/diff:/var/lib/docker/overlay2/fffb2088ec87995829942725a68848b7b61cdf8e6ee5976aa20dec2e640b2278/diff:/var/lib/docker/overlay2/2784bc0030b98c36d4654e07f2d87cadfbe6dfef3849332c01fb9344ec9c299e/diff:/var/lib/docker/overlay2/bcc5f6afc58fb3b6ba7037eedf274dad3a9bfd345541610d8d5266ac61fec550/diff:/var/lib/docker/overlay2/f09e6f43369ea75814d20a77201ed0308228bbeed779637fed29e9e1857bd207/diff:/var/lib/docker/overlay2/947ed3109b894c7a6c1e3cd3e66ac5e504d99fbddb1c6ca0417b1091a991ec39/diff:/var/lib/docker/overlay2/15ed1cff73c5a2d5d3c0bf0a03fed19257f29bdef492d4d3ff5fb8c1c1cfbf67/diff:/var/lib/docker/overlay2/89e666205b1aafd24ce46930a3f39e8a7e2de1f370476889f62fdf57c88107e7/diff:/var/lib/docker/overlay2/6ad925c661bd7ae612998a23785815a08f62b08f261a6e0fb794917706392b42/diff:/var/lib/docker/overlay2/c15f6d613ae1000b0af2d001efb6b7e429524b2c6739ca1c40987b0b10f21331/diff:/var/lib/docker/overlay2/fb050bc5a9986e52cf4e3d57f5c24818c71551ed82c083e3fa4e974f43112e75/diff:/var/lib/docker/overlay2/d2637a6878f586cf39ebd24990b9baecbc996a4371e5b0c2da14ba8793f84402/diff:/var/lib/docker/overlay2/e6d6146c0f02a9613686d8983bca7bfcb074b72c3c0af696ee7964ab3e1c5bcd/diff:/var/lib/docker/overlay2/5e09d8fcae218ee121f28f8ae9aedf3ba156576d3231a794b9623d208fab1b8e/diff",
"MergedDir": "/var/lib/docker/overlay2/b0b22086e1560f52e73ce63afb61ff34ae5853c04fcc78768c90b0022f28889a/merged",
"UpperDir": "/var/lib/docker/overlay2/b0b22086e1560f52e73ce63afb61ff34ae5853c04fcc78768c90b0022f28889a/diff",
"WorkDir": "/var/lib/docker/overlay2/b0b22086e1560f52e73ce63afb61ff34ae5853c04fcc78768c90b0022f28889a/work"
},
"Name": "overlay2"
},
"HostConfig": {
"AutoRemove": false,
"Binds": [
"279ceb0535f64fdf9084955412e4b492cb11e23f60aff56f802cd5a8468ce123:/data"
],
"BlkioDeviceReadBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceWriteIOps": null,
"BlkioWeight": 0,
"BlkioWeightDevice": null,
"CapAdd": [
"AUDIT_WRITE",
"CHOWN",
"DAC_OVERRIDE",
"FOWNER",
"FSETID",
"KILL",
"MKNOD",
"NET_BIND_SERVICE",
"NET_RAW",
"SETFCAP",
"SETGID",
"SETPCAP",
"SETUID",
"SYS_CHROOT"
],
"CapDrop": [
"AUDIT_CONTROL",
"BLOCK_SUSPEND",
"DAC_READ_SEARCH",
"IPC_LOCK",
"IPC_OWNER",
"LEASE",
"LINUX_IMMUTABLE",
"MAC_ADMIN",
"MAC_OVERRIDE",
"NET_ADMIN",
"NET_BROADCAST",
"SYSLOG",
"SYS_ADMIN",
"SYS_BOOT",
"SYS_MODULE",
"SYS_NICE",
"SYS_PACCT",
"SYS_PTRACE",
"SYS_RAWIO",
"SYS_RESOURCE",
"SYS_TIME",
"SYS_TTY_CONFIG",
"WAKE_ALARM"
],
"Cgroup": "",
"CgroupParent": "",
"CgroupnsMode": "host",
"ConsoleSize": [
0,
0
],
"ContainerIDFile": "",
"CpuCount": 0,
"CpuPercent": 0,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpuShares": 0,
"CpusetCpus": "",
"CpusetMems": "",
"DeviceCgroupRules": null,
"DeviceRequests": null,
"Devices": [],
"Dns": [],
"DnsOptions": null,
"DnsSearch": null,
"ExtraHosts": [],
"GroupAdd": null,
"IOMaximumBandwidth": 0,
"IOMaximumIOps": 0,
"Init": false,
"IpcMode": "private",
"Isolation": "",
"KernelMemory": 0,
"KernelMemoryTCP": 0,
"Links": null,
"LogConfig": {
"Config": {},
"Type": "json-file"
},
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware"
],
"Memory": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"NanoCpus": 0,
"NetworkMode": "bridge",
"OomKillDisable": null,
"OomScoreAdj": 0,
"PidMode": "",
"PidsLimit": null,
"PortBindings": {
"25575/tcp": [
{
"HostIp": "",
"HostPort": "25575"
}
]
},
"Privileged": true,
"PublishAllPorts": false,
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
],
"ReadonlyRootfs": false,
"RestartPolicy": {
"MaximumRetryCount": 0,
"Name": "always"
},
"Runtime": "runc",
"SecurityOpt": [
"label=disable"
],
"ShmSize": 67108864,
"UTSMode": "",
"Ulimits": null,
"UsernsMode": "",
"VolumeDriver": "",
"VolumesFrom": null
},
"HostnamePath": "/var/lib/docker/containers/bd1bd3c72a1d999f55f34b54709e25bf50e3de1d58e030a1a37121d73b6bb720/hostname",
"HostsPath": "/var/lib/docker/containers/bd1bd3c72a1d999f55f34b54709e25bf50e3de1d58e030a1a37121d73b6bb720/hosts",
"Id": "bd1bd3c72a1d999f55f34b54709e25bf50e3de1d58e030a1a37121d73b6bb720",
"Image": "sha256:88b701db61ed353cf8f4f6739d86419c1d736f36dfd31c87e01d6d3c0c861975",
"LogPath": "/var/lib/docker/containers/bd1bd3c72a1d999f55f34b54709e25bf50e3de1d58e030a1a37121d73b6bb720/bd1bd3c72a1d999f55f34b54709e25bf50e3de1d58e030a1a37121d73b6bb720-json.log",
"MountLabel": "",
"Mounts": [
{
"Destination": "/data",
"Driver": "local",
"Mode": "z",
"Name": "279ceb0535f64fdf9084955412e4b492cb11e23f60aff56f802cd5a8468ce123",
"Propagation": "",
"RW": true,
"Source": "/var/lib/docker/volumes/279ceb0535f64fdf9084955412e4b492cb11e23f60aff56f802cd5a8468ce123/_data",
"Type": "volume"
}
],
"Name": "/minecraft33",
"NetworkSettings": {
"Bridge": "",
"EndpointID": "26d4baaf7a799824986212bcf3e099206e9d7b74f4967fe16117bd0c3a414e6d",
"Gateway": "<IP_ADDRESS>",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"HairpinMode": false,
"IPAddress": "<IP_ADDRESS>",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:04",
"Networks": {
"bridge": {
"Aliases": null,
"DriverOpts": null,
"EndpointID": "26d4baaf7a799824986212bcf3e099206e9d7b74f4967fe16117bd0c3a414e6d",
"Gateway": "<IP_ADDRESS>",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAMConfig": {},
"IPAddress": "<IP_ADDRESS>",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"Links": null,
"MacAddress": "02:42:ac:11:00:04",
"NetworkID": "d37222552dfabacdf6d930d5d1d59e25d345223e83eafc387dfb6fcef2ff52f8"
}
},
"Ports": {
"25565/tcp": null,
"25575/tcp": [
{
"HostIp": "<IP_ADDRESS>",
"HostPort": "25575"
}
]
},
"SandboxID": "796de7346fdb5447b221d6e5ffaf553956d63470235f2ec6ec75ed3c39790560",
"SandboxKey": "/var/run/docker/netns/796de7346fdb",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null
},
"Path": "/start",
"Platform": "linux",
"Portainer": {
"ResourceControl": {
"Id": 17,
"ResourceId": "bd1bd3c72a1d999f55f34b54709e25bf50e3de1d58e030a1a37121d73b6bb720",
"SubResourceIds": [],
"Type": 1,
"UserAccesses": [],
"TeamAccesses": [],
"Public": false,
"AdministratorsOnly": true,
"System": false
}
},
"ProcessLabel": "",
"ResolvConfPath": "/var/lib/docker/containers/bd1bd3c72a1d999f55f34b54709e25bf50e3de1d58e030a1a37121d73b6bb720/resolv.conf",
"RestartCount": 0,
"State": {
"Dead": false,
"Error": "",
"ExitCode": 0,
"FinishedAt": "0001-01-01T00:00:00Z",
"Health": {
"FailingStreak": 12,
"Log": [
{
"End": "2021-03-18T18:52:10.695932444+08:00",
"ExitCode": 127,
"Output": "/bin/sh: 1: /health.sh: not found\n",
"Start": "2021-03-18T18:52:10.498239583+08:00"
},
{
"End": "2021-03-18T18:52:40.922436542+08:00",
"ExitCode": 127,
"Output": "/bin/sh: 1: /health.sh: not found\n",
"Start": "2021-03-18T18:52:40.711680003+08:00"
},
{
"End": "2021-03-18T18:53:11.194624784+08:00",
"ExitCode": 127,
"Output": "/bin/sh: 1: /health.sh: not found\n",
"Start": "2021-03-18T18:53:10.939613838+08:00"
},
{
"End": "2021-03-18T18:53:41.444758289+08:00",
"ExitCode": 127,
"Output": "/bin/sh: 1: /health.sh: not found\n",
"Start": "2021-03-18T18:53:41.209389994+08:00"
},
{
"End": "2021-03-18T18:54:11.69369694+08:00",
"ExitCode": 127,
"Output": "/bin/sh: 1: /health.sh: not found\n",
"Start": "2021-03-18T18:54:11.459873076+08:00"
}
],
"Status": "unhealthy"
},
"OOMKilled": false,
"Paused": false,
"Pid": 16190,
"Restarting": false,
"Running": true,
"StartedAt": "2021-03-18T10:47:38.011839838Z",
"Status": "running"
}
}
It seems the server auto-closes the connection, I have checked the Minecraft version of the client is the same as the server (1.16.5).
How can I solve this problem?
Thanks!

I really need to delete that image tag since it's old. Try the multiarch tag and see if that acts better.

Actually, I have tested the multiarch tag.  For help, type "help",
[13:00:00] [Server thread/INFO]: Starting remote control listener,
[13:00:00] [Server thread/INFO]: Thread RCON Listener started,
[13:00:00] [Server thread/INFO]: RCON running on <IP_ADDRESS>:25575,
[13:00:01] [RCON Listener #1/INFO]: Thread RCON Client /<IP_ADDRESS> started,
[13:00:01] [RCON Client /<IP_ADDRESS> #2/INFO]: Thread RCON Client /<IP_ADDRESS> shutting down,
[13:00:05] [Server thread/WARN]: Can't keep up! Is the server overloaded?  Is the server overloaded?  It's my fault. I change the PORT CONFIGURATION
From
<IP_ADDRESS>:25575  25575/tcp
To
<IP_ADDRESS>:25565 25565/tcp
in Portainer.
Then, everything works fine!  Thanks!


community: extra_kwargs compatibility with openai>=1.0.0 ; core: extra_kwargs compatibility with openai>=1.0.0

Description:
openai>=1.0.0 changed the way their library accepts sampling parameters.
Previously, langchain put extra sampling parameters [ones not used by the official OpenAI server] into the extra_kwargs dictionary, and then passed this dictionary to the openai library.
With openai>=1.0.0, this returns an error such as
TypeError: Completions.create() got an unexpected keyword argument 'greedy'

This is because openai>=1.0.0 expects extra parameters to be passed into an extra_body dictionary.
As a result, current langchain does not work with any privately-hosted OpenAI-API-compatible server. This is a major issue for users that have trained their own models and created their own server infrastructure.
This PR fixes this issue.

I have fixed the following:

Unverified commit
Linting errors [successfully ran make format on my end]
Test errors [successfully ran make test on my end]

@efriis @baskaryan this will now hopefully pass all tests if CI is run again. Please let me know if there's anything further I can do.
However, I think the tests/unit_tests/llms/test_openai.py:test_openai_incorrect_field test should be updated for openai>=1.0.0. I have not done it myself, I don't believe contributors should manipulate the tests to make their own commits pass, but I believe it should look something like:
@pytest.mark.requires("openai")
def test_openai_incorrect_field() -> None:
    with pytest.warns(match="not default parameter"):
        llm = OpenAI(foo="bar")
    if _openai_v1_installed():
        assert llm.extra_body == {"foo": "bar"}
    else:
        assert llm.model_kwargs == {"foo": "bar"}

Which would allow my code-blocks to change from:
        if is_openai_v1():
            values["extra_body"] = extras
        values["model_kwargs"] = extras

to the better
        if is_openai_v1():
            values["extra_body"] = extras
        else:
            values["model_kwargs"] = extras

Ok I dug into this more, and I think you should do model_kwargs={"extra_body": ..., "extra...": ...} to solve your use case.
If that won't work for some reason, let me know!
The reason is because this would be a behavior change for some of the params not explicitly declared on our client, such as user or logprobs, which should remain at the top level and not be passed in extra_body. You can still pass all these "extra_" fields through model_kwargs in the current interface.
Feel free to open if you strongly disagree, and we can discuss!


refactor: replace string concatenation with StringBuilder for efficiency

Updated SplitEngine to use StringBuilder for constructing file paths.
Updated GradeCopyGradeScaleDialog to use StringBuilder for building grade strings.
Updated GradeExportRenderer to use StringBuilder for content generation.
Updated TextWrapper to use StringBuilder for line filling methods.

For small concatenation, I would prefer to keep using the '+' operator for maintainability and readability reasons, as the speed improvement for small concatenation (outside loops) is often minimal.
Could you then revert the changes in SplitEngine.java?
Thank you for the work!

Hi @ClementGre.
I reverted the changes in SplitEngine.java
Thank you!

That's perfect, thank you!


Custom plugins

Hi, is there any way to define custom plugins to use with django-tinymce?
I'm trying to create simple typograph plugin based on this article [rus]. Anyway, the plugin js should look like this:
tinymce.PluginManager.add('typograf', function (editor, url) {
    'use strict';

    var scriptLoader = new tinymce.dom.ScriptLoader(),
        tp,
        typo = function () {
            if (tp) {
                editor.setContent(tp.execute(editor.getContent()));
                editor.undoManager.add();
            }
        };

    scriptLoader.add(url + '/typograf.min.js');

    scriptLoader.loadQueue(function () {
        tp = new Typograf({
            lang: 'ru',
            mode: 'name'
        });
    });

    editor.addButton('typograf', {
        text: 'Typograph',
        icon: 'blockquote',
        onclick: typo
    });

    editor.addMenuItem('typograf', {
        context: 'format',
        text: 'Typograph',
        icon: 'blockquote',
        onclick: typo
    });
});

The problem is Django Media assets has no dependency mechanism AFAIK, so just adding js = ['custom-plugin.js', ] in Media class in my ModelAdmin results in Uncaught ReferenceError: tinymce is not defined (as expected, because custom-plugin.js loads before tinymce.min.js).
Is there any right way to add custom plugin in django-tinymce?

If you want to add buttons to your editor you can use tinymce setup event, if your are using tinymce4 you would need to add an entry in the profile in your settings with the javascript function to be called. Like this (red line):
TINYMCE_PROFILE = {
'theme': 'modern',
'plugins': 'noneditable advlist autolink link lists charmap hr searchreplace wordcount visualblocks visualchars code insertdatetime save table contextmenu directionality paste textcolor',
'toolbar': 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor | standard_content_button upload_button template_button | preview_button',
'noneditable_leave_contenteditable': 'true',
'setup': 'addCustomButtons',
'content_css': os.path.join(STATIC_URL, "mis/css/tinytiny.css"),
'relative_urls': False,
'remove_script_host': True,
'document_base_url': MEDIS_APP_HOST,
'removed_menuitems': 'newdocument'
}

On 29 Sep 2015, at 20:10, 9dogs<EMAIL_ADDRESS>wrote:
Hi, is there any way to define custom plugins to use with django-tinymce?
I'm trying to create simple typograph plugin based on this article http://habrahabr.ru/post/266337/#typograf [rus]. Anyway, the plugin js should look like this:
tinymce.PluginManager.add('typograf', function (editor, url) {
'use strict';
var scriptLoader = new tinymce.dom.ScriptLoader(),
    tp,
    typo = function () {
        if (tp) {
            editor.setContent(tp.execute(editor.getContent()));
            editor.undoManager.add();
        }
    };

scriptLoader.add(url + '/typograf.min.js');

scriptLoader.loadQueue(function () {
    tp = new Typograf({
        lang: 'ru',
        mode: 'name'
    });
});

editor.addButton('typograf', {
    text: 'Typograph',
    icon: 'blockquote',
    onclick: typo
});

editor.addMenuItem('typograf', {
    context: 'format',
    text: 'Typograph',
    icon: 'blockquote',
    onclick: typo
});

});
The problem is Django Media assets has no dependency mechanism https://code.djangoproject.com/ticket/12265 AFAIK, so just adding js = ['custom-plugin.js', ] in Media class in my ModelAdmin results in Uncaught ReferenceError: tinymce is not defined (as expected, because custom-plugin.js loads before tinymce.min.js).
Is there any right way to add custom plugin in django-tinymce?
—
Reply to this email directly or view it on GitHub https://github.com/aljosa/django-tinymce/issues/136.

Thank you for reply!
Indeed, I've missed tinymce setup option, which provide a way to call any javascript after all tinymce js is loaded. Another way is to create tinymce/plugins/your_plugin somewhere in your static folders, place all your js file there and then include your_plugin in TINYMCE_PROFILE['plugins'] list. Still not sure which way is better but anyhow the problem is solved. Thanks again.

Still not sure which way is better but anyhow the problem is solved.

If you need to use tinymce_compressed then adding it in the static is better.
Do you mind contributing a paragraph in the documentation to explain how you solved it?

If you need to use tinymce_compressed then adding it in the static is better.

Yes, it's more straightforward too.

Do you mind contributing a paragraph in the documentation to explain how you solved it?

Sure. Should I fork and then send pull request?

Should I fork and then send pull request?

Yes please, if you feel like it.


[0.8] accidental shared state in configure value?

I have an element with a property of type Object with a default value like
    properties: {
      user: {
        type: Object,
        notify: true,
        value: {
          name: {
            first: 'James',
            last: 'Cook',
          },
          counter: 1
        }
      }

When using that element all instances share the same "user" object.
I think the reason for this is
https://github.com/Polymer/polymer/blob/0.8-preview/src/features/standard/configure.html#L75
After I changed that line to
            // deep copy config value
            config[i] = (JSON.parse(JSON.stringify(c.value)));

the shared state didn't happen any longer.

If the initial value is a primitive like a Number, a Boolean, or a String, it is okay to set it as the value. If the initial value is an Object you need to provide a function that returns the initial:
value: function() {
  return {
    name: {
      first: 'James',
      last: 'Cook',
    },
    counter: 1
  };
}

Wouldn't it make more sense to automatically also copy non primitive types if no function is provided? It would still be possible to write a function when a copy is not sufficient. Just creating an avoidable shared state seems to be not really convenient.

A shallow copy works in the case you gave, but consider more complex data structures that are not just simple JavaScript objects. This is a case better left to the developer because he or she has more knowledge about the data structure than the framework can possibly infer.

I understand the idea - but I didn't want to remove the function. I just think it's quite surprising that when no function is provided a shared state is created. If using a default value for an object really requires to write a function then without such a function, I think no default should be copied.

This can be a little confusing, but it's also fundamental language functionality. We can't know what's appropriate since there are cases when it's desirable for the object to actually be shared on the prototype. For these reasons, we've elected to allow the user to give Polymer explicit information by providing a function that can generate the default property value.

Wouldn't it be less surprising if both works? So if the value is a function then call the function, but if it's an object copy that object?
So in the cases when I want to share the state or when a deep copy is not appropriate I can provide a function, but in the cases where a simple copy of the value is ok I don't have a write a function over and over to just copy the values.


Add some more comprehensive R-Group Decomposition tests

The R-Group Decomposition (RGD) code is complex, has a lot of options, and isn't particularly well tested. There are a number of open PRs suggesting changes to the RGD code and we really don't have a decent way to detect whether or not they are breaking things. The complexity here is probably inevitable, but I would like to try and fix the lack of testing.
I think there are two parts of this:

Make sure that we have unit tests in place for all possible values of all of the options (not all possible combinations... that would be nuts). Ideally these would include testing some combinations which someone who knows the code would class as edge cases.
Add some more complex, regression-like tests that try and reproduce things seen in real world datasets. Ideally these tests are human understandable so someone can look at the molecules, look at the tests, and figure out whether or not the correct result is being produced.

This PR is a proposal for how we might start the second part. It includes a new, catch2-based, set of tests where I've tried to make the expected results comprehensible. Here's an example
    CHECK(flatten_whitespace(RowToText(rows[0])) == flatten_whitespace(R"JSON([
  {'Core':'Cc1cc([*:1])ccc1[*:3]'},
  {'R1':'[H][*:1]'},
  {'R3':'CO[*:3]'},
  ])JSON"));

I also added a jupyter notebook in the test_data directory which allows you to browse the files which are there and look at the compounds.
I think we need ore realistic test cases than just what I've added here, ideally chosen to exercise specific bits of code - like stereochemistry handling, symmetrization, etc. - but I want to check to see what you guys think of the testing format and then we can all start thinking about the tests to add.
Ideally in parallel we can also start working on the lack of unit tests.

@jones-gareth : it would be great if you could take a look at this too.

I’ve been doing my tests in notebooks, do you mind if I add a notebook runner to the tests?  The visual results help me a lot for debugging.

I’ve been doing my tests in notebooks, do you mind if I add a notebook runner to the tests? The visual results help me a lot for debugging.

It'd be nice if we also had everything available as C++ whenever possible (since those tests get run more often).
But I don't think there's a problem duplicating tests.
How are you planning on doing automated testing with notebooks? (Asking that last one because we don't want to add too many non-stable dependencies to the CI process)

The technique I've been doing is:
jupyter nbconvert --execute --inplace ./test-001.ipynb --ExecutePreprocessor.timeout=18000
if [ $? -ne 0 ]
then
  echo "Failed running notebook"
  exit 1
fi

But I'll see if there is something better for cmake.  I would like to actually run all notebooks like this, at least occasionally to ensure they still work.

Looks like it is trivial to make it into a unit test
https://www.blog.pythonlibrary.org/2018/10/16/testing-jupyter-notebooks/

Here is code that collects the errors:
import nbformat
from nbconvert.preprocessors import ExecutePreprocessor
from nbconvert.preprocessors.execute import CellExecutionError

def run_notebook(notebook_path, output_path):
    print(f'Running: {notebook_path.stem:60s} ', end='', flush=True)

    with open(notebook_path, encoding='utf-8') as f:
        nb = nbformat.read(f, as_version=4)

    proc = ExecutePreprocessor(timeout=600, kernel_name='python3')
    proc.allow_errors = True
    proc.allow_errors = False

    try:
      proc.preprocess(nb, {'metadata': {'path': notebook_path.parent}})
    except CellExecutionError:
      with open(output_path / f'error_{notebook_path.stem}.ipynb', mode='wt', encoding='utf-8') as f:
          nbformat.write(nb, f)
      print('ERROR')
      return nb, []

    with open(output_path / f'{notebook_path.stem}.ipynb', mode='wt', encoding='utf-8') as f:
        nbformat.write(nb, f)

    errors = []
    for cell in nb.cells:
        cell_type = cell['cell_type']
        if cell_type in ['markdown', 'code']:
            continue
        print(cell_type)
        if cell_type == 'code':
            print(cell['outputs'])
        else:
            print(cell['cell_type'])
            print(list(cell))
            if 'outputs' not in cell: continue
            for output in cell['outputs']:
                errors.append(output)
#             if output.output_type == 'error':
#                 errors.append(output)
    print('ERROR' if errors else 'OK')
    return nb, errors

You will need to adjust it.

I think nbval (https://nbval.readthedocs.io/en/latest/) looks cleaner than those options

nbval: that's nice, as it does the output comparison. My code was only checking that the calculations don't fail. This will be much better for my use cases too.

yeah, I've used nbval a couple of times and it's not terrible. I like that you can use tags (or comments) to specify which cells are ignored and which get tested.

Does nbval work with unitest?  Looks like it is a py.test extension

It is a py.test extension.

I like the JSON specs for rgroup tests.  Would it be possible to create a library of specs in a external file, so that C++, Python and notebooks can share the specs?  Often the same test systems are shared between C++ and Python and correcting errors in expected values is repetitive.
This would also make it easy to include a notebook visualization for every C++ test (perhaps as an enhancement to View datasets.ipynb), which would be really cool to have.

I like the JSON specs for rgroup tests. Would it be possible to create a library of specs in a external file, so that C++, Python and notebooks can share the specs? Often the same test systems are shared between C++ and Python and correcting errors in expected values is repetitive.
This would also make it easy to include a notebook visualization for every C++ test (perhaps as an enhancement to View datasets.ipynb), which would be really cool to have.

Nice idea. I need to tweak what I've done so that it produces actual JSON, but that should be easy.
Will give it a try

@jones-gareth I've switched to using actual JSON, added saved .json files, and some notebook tests.
The PR description has been updated with more info about this.

Good stuff, once this is merged I'll add some more tests.

@jones-gareth I've switched to using actual JSON, added saved .json files, and some notebook tests.
The PR description has been updated with more info about this.

Looks good.

@bp-kelley the changes you were looking for are in

@ptosco do you have time to take a look at this or shall I just merge since Brian and Gareth have both given a thumbs up?

@greglandrum happy for you to merge, and many thanks for the nice additions! This will be very useful going forward, really appreciated.


Clean up code to reuse some repeated node command steps

Feature to Enhance
Some node command steps such as check pod status,
check node active status being used in many places.

Requested Enhancement
Better to consolidate its usage as reusable function calls

Business Need
Reduce code size and avoid copy & paste errors

Additional Context
No response

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Check for invalid values in the aligner: section of the configuration

By mistake, an aligner: section was set to true instead of bowtie2, and this caused bcbio to fail with a strange traceback:
Traceback (most recent call last):
  File "/storage/rozo/bcbio/anaconda/bin/bcbio_nextgen.py", line 234, in <module>
    main(**kwargs)
  File "/storage/rozo/bcbio/anaconda/bin/bcbio_nextgen.py", line 43, in main
    run_main(**kwargs)
  File "/storage/rozo/bcbio/anaconda/lib/python2.7/site-packages/bcbio/pipeline/main.py", line 50, in run_main
    fc_dir, run_info_yaml)
  File "/storage/rozo/bcbio/anaconda/lib/python2.7/site-packages/bcbio/pipeline/main.py", line 86, in _run_toplevel
    for xs in pipeline(config, run_info_yaml, parallel, dirs, samples):
  File "/storage/rozo/bcbio/anaconda/lib/python2.7/site-packages/bcbio/pipeline/main.py", line 349, in chipseqpipeline
    multiplier=alignprep.parallel_multiplier(samples)) as run_parallel:
  File "/storage/rozo/bcbio/anaconda/lib/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "/storage/rozo/bcbio/anaconda/lib/python2.7/site-packages/bcbio/distributed/prun.py", line 43, in start
    max_multicore=max_multicore)
  File "/storage/rozo/bcbio/anaconda/lib/python2.7/site-packages/bcbio/distributed/resources.py", line 203, in calculate
    progs=", ".join(progs), memory=", ".join("%.2f" % x for x in all_memory),
TypeError: sequence item 0: expected string, bool found

The reason is that algs in that same file contained a True value for the aligner, which caused the error down the road. Like other fields already do, bcbio should disallow the use of booleans for aligner:.

Luca;
Thanks much for the heads up on the problem. I pushed a fix to avoid this confusing error message, allowing bcbio to proceed on to the algorithm linting and raise a problem error about this incorrect specification. Please let us know if you run into any other problems at all and thanks again.


Crusader Kings 3 can't detect cream.sh

I tried with both CK3 and HOI4, and CK3 is the only one with this issue, the game won't even launch and the logs output
ERROR: ld.so: object '/home/$USER/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
sh: 0: cannot open ./cream.sh: No such file

All the creamlinux files should be located at the game's base directory (so in /home/.../Crusader Kings III/, not in the binaries folder). Then try to edit the path to libsteam_api.so in the cream.sh script like this:
#!/bin/bash
cp "$PWD/lib32Creamlinux.so" /tmp/lib32Creamlinux.so
cp "$PWD/lib64Creamlinux.so" /tmp/lib64Creamlinux.so
cp "$PWD/binaries/libsteam_api.so" /tmp/libsteam_api.so
LD_PRELOAD="$LD_PRELOAD /tmp/lib64Creamlinux.so /tmp/lib32Creamlinux.so /tmp/libsteam_api.so" "$@"
EXITCODE=$?
rm /tmp/lib32Creamlinux.so
rm /tmp/lib64Creamlinux.so
rm /tmp/libsteam_api.so
exit $EXITCODE

See if that works. In the meantime I'll update the launch script to automatically find libsteam_api.so wherever it is in the game's directory, apparently a lot of games do it.

It launches without problem now, thank you.

Glad to hear! Do the DLCs work as well?

I haven't tried, it seems the uploaders haven't caught up to the newest one, and I have all previous ones. I'll give you a heads up whenever I'm able to test it

It works perfectly, thank you for your work.

Thank you too for testing and bringing the libsteam_api.so thing to my attention!


Add Nix tooling

@TheKodeToad could you add Renovate to this repo after merging?
https://github.com/apps/renovate

Sure


Notifications on Mac not working for Messenger

When I turn on Notifications in the Messenger app, and receive a new message, I expect to see a Notification appear in the upper right of my Mac's screen.

I don't see the aforementioned Notification. Also, Franz doesn't show up in the Notifications preference pane in System Preferences. As you know, that preference pane enables you to set the type of notification to enable for each notification-supplying app.
I will note that all this is the case in the 30 minutes after first installing and running Franz. If behavior changes over time or after rebooting, I'll update this issue.
Your Environment

Franz Version used: (5.0.0-beta.15.607)
Operating System and version: macOS version 10.12.6

Update: A couple hours later, Franz IS showing up in the Notifications Preference Pane. No restart was required. So, there is a problem: why does it take so long for Franz to show up? Is there something that can be done to make that happen more quickly? I had waited 30 min and was mystified; users shouldn't have to have that experience.
Note, in the interim, I did click on the Notifications option in Franz, and click twice to turn "Receive Notifications For Reactions" off and on again; that might have had an effect.

@garyrob thanks for bringing this to our attention! we'll look into that...

I am using Messenger and Slack. Except for sound notification when I got a message on Messenger I don't have any notifications (upper right corner, an icon in Dock etc).
Franz 5.0.0-beta 15
macOS 10.13.3

No notifications from facebook messenger anywhere. Pretty much the only reason why I decided to try it out :P

Same problem
MacOS 10.14.4
Franz <IP_ADDRESS>7

Same problem


Problems of the initial syntax

We use https://es.discourse.group/t/raw-string-literals-that-can-contain-any-arbitrary-text-without-the-need-for-special-escape-sequences/1757/3 written by @sken130 as the start. Here are some potential issues of this initial syntax:
1. Single line raw string
It's ambiguity whether @```` is a start of multiple line raw string or empty single line raw string. There are three ways to eliminate it.
A. do not allow empty single line raw string (this is what the @sken130 original post adopted)
B. only allow odd number backticks as the start of multiple line raw string
C. just remove single line raw string (I prefer this way, and README already did that)
I think single line raw string is not very useful (just save two newlines seems have no much benefit), and adding it have several limitations: can't have empty string -- it's not important, but still add a little speciality to the syntax; can't express strings starts with backticks (such drawback also mentioned by the C# doc); and it also make markdown info string syntax impossible.
2. Use leading @ number to denote $ numbers
It's not intuitive. C# use $ number to denote {} pairs number because the original interpolation string in C# is  $"foo is {foo}" , so that it already have the corresponding of $ and {}. In JS there is no such corresponding.
3. Need at least 2 backticks as start.
Not sure why single backtick is not allowed.
4. Tag function
The original post does not mention tag function (README already add it, the syntax is tag@``, though I'm also considering whether decorator like syntax is ok? @tag``)

What if instead of a variable number of backticks @``` depending on what the contained code will be, you used the same symbol to open and close the block, like this:
let query = @`
    select *
    from `users`
    where `name` = ?
    @`

or something to that effect?

@brandonmcconnell It looks like u r suggesting a variant of swift style in https://github.com/hax/proposal-raw-string-literals/issues/2#issue-2102807324 ?

@anonghuser It's possible, because if my memory is correct, current decorator proposal intentionally forbidden decorator syntax follow `. And if use such syntax, it might make tag function as special decorator for template string so that it might also have syntax limitation like current decorator proposal. Though it might be a too big change which committee never will consider :-P

I hadn't considered that decorators also can be any expression by using brackets to make the precedence clear. So you are right - it is possible. And maybe using complex tag expressions is sufficiently rarely needed that the overcomplication which brackets add isn't an issue. But still it seems like an unneeded overcomplication to me. Consider the equivalent of tag `a` `b` - as tag syntax it is tag @`a` @`b`, as decorator syntax it is @(@tag `a`) `b` (whitespace optional in all examples).


HTML

HTML
User Story
As a bootcamp student
I want the bootcamp schedule to be structured on a webpage
so that I can easily find and read information
Acceptance Criteria
GIVEN a bootcamp schedule website
WHEN I visit the website in my browser
THEN I see 2 boxes titled calendar and next task

Created HTML file.


Incorrect link in docs (full_refresh, should_full_refresh(), helper.sql --> configs.sql)

The full refresh section refers to a missing file "helpers.sql" as the source of the should_full_refresh() macro. I think it should point to https://github.com/dbt-labs/dbt-core/blob/main/core/dbt/include/global_project/macros/materializations/configs.sql instead.
https://github.com/dbt-labs/docs.getdbt.com/blob/3f96e055043d81f9c39628970b62bb5920a9218a/website/docs/reference/resource-configs/full_refresh.md?plain=1#L70

Thanks for opening this issue! It looks like this was fixed, so closing this issue. Feel free to reopen if you're seeing something different,


I Need To Know How To Add Something (Total Clicks) - Please Help

Hi,
I need help with adding a feature which I seem to not have. I am new to coding, and don't understand a word when it comes to coding. I want to add total clicks like the attached photo.
I want to add this in my stats:

------------------------------------------------------------------------------------------------------------------
How my stats currently look like:

Thank you,
Alex

You'd need a plugin to do so. See wiki page https://github.com/YOURLS/YOURLS/wiki/Possible-With-A-Plugin

Hi,
Sorry to bother you. I can't find a plugin for this feature, I might have an idea in hand but I need to know something. Are all the URLs that are shortened stored in a script that I can access?
Thank you,
Alex

There are stored in the database you configured when you installed YOURLS ...


Move to Docker deployments for Heroku

Our Heroku deployments takes 15-20 minutes to happen for each application. Because of our multi-region setup making deployments sequentially (and each deployment builds the artefact again), our deploy times take twice as long, 30-40 minutes.
If we move to deploying a prebuilt artefact, the deploys should happen in a few minutes each, whilst the building of the artefact will be several minutes but only need to happen once.
We could also look at distributing a polyfill-service docker image to the DockerHub public registry to allow self-hosting to happen via Docker for those users which use Docker :-)

this is a great idea!


Improved org-mode source blocks

Before:

After:

Looks good to me. Thanks for your contribution!


[MRG] SQLA 14 migration continued

Working on #903
In SQLA 2.0, using session.query is being replaced by session.execute(select()). They aren't deprecating it, but they won't be supporting it in the future. This branch will attempt to remove session.query from the codebase. It is as of yet, incomplete.
Backend checklist

[ ] Formatted my code by running autoflake -r -i --remove-all-unused-imports src && isort . && black . in app/backend
[ ] Added tests for any new code or added a regression test if fixing a bug
[ ] All tests pass
[ ] Run the backend locally and it works
[ ] Added migrations if there are any database changes, rebased onto develop if necessary for linear migration history

I'm a huge fan of disconnecting the select query creation from the session, I hope we could make this to work :)

The only potential issue I know of regarding this update/migration is that it seems relationships still use query, so if we ever want to do something like cluster.members.where_users_visible() we may run into some trouble. Other than that, this is ready to go.

@aapeliv @kalvdans any chance of getting this merged today?

@ShmuelTreiger: there is an option to squash these commits into one so the sqlalchemy so the history is a bit cleaner with this big change. Not necessary to do it, but it might be a good idea if you'd like

@ShmuelTreiger: there is an option to squash these commits into one so the sqlalchemy so the history is a bit cleaner with this big change. Not necessary to do it, but it might be a good idea if you'd like

Either way is fine. I personally appreciate the history to see how things develop, but the squashing makes it cleaner for future users, so I see both ways.

I'm happy for this to be merged if you add that one label as in the remaining comment, and if you fix the tests!

@ShmuelTreiger: there is an option to squash these commits into one so the sqlalchemy so the history is a bit cleaner with this big change. Not necessary to do it, but it might be a good idea if you'd like

Either way is fine. I personally appreciate the history to see how things develop, but the squashing makes it cleaner for future users, so I see both ways.

Up to you!


What is the best way to train the rasa bot?

Rasa Core version: 0.9.0a3
Python version: 3.6.5
Operating system (windows, osx, ...):10
Issue: I know you guys have given in docs the way to train a bot in rasa. But i am not able to understand it pretty well because of less content. I am using dialogflow agent data for my rasa core bot . It was working fine at first then i updated the bot with new intent's like i added some faq's in my bot. On adding that my welcome intent started misbehaving. The phrases of welcome intent like "Hi" catches an faq intent instead of welcome intent.  I don't want my bot to work in a specific flow. I just want it to act as an intent classifier and for entity extraction.
I am sending you guys my stories.md snippet hope you can understand. I have just limiting it to welcome and faq intent only for now!
https://gist.github.com/NikhilBansal21/6be660f125b24e5fe5832331a6064543
Content of domain file (if used & relevant):

How can i train my bot for law?


docker installer on M2 fails with this error

190.7   note: This error originates from a subprocess, and is likely not a problem with pip.
190.7   ERROR: Failed building wheel for praat-parselmouth
190.7   Building wheel for pyworld (pyproject.toml): started
197.9   Building wheel for pyworld (pyproject.toml): finished with status 'done'
197.9   Created wheel for pyworld: filename=pyworld-0.3.4-cp310-cp310-linux_aarch64.whl size=813752 sha256=573bb778d844d9e23c988c840b507e1a959c87e9831d7155341699300be9ba95
197.9   Stored in directory: /root/.cache/pip/wheels/66/09/8a/a1d79b73d59756f66e9bfe55a199840efc7473adb76ddacdfd
197.9 Successfully built torchcrepe rvc-beta pyworld
197.9 Failed to build praat-parselmouth
197.9 ERROR: Could not build wheels for praat-parselmouth, which is required to install pyproject.toml-based projects
------
Dockerfile:30
--------------------
  28 |     RUN pip3 install -r requirements_audiocraft.txt
  29 |     RUN pip3 install -r requirements_bark_hubert_quantizer.txt
  30 | >>> RUN pip3 install -r requirements_rvc.txt
  31 |
  32 |     # Run the server
--------------------
ERROR: failed to solve: process "/bin/sh -c pip3 install -r requirements_rvc.txt" did not complete successfully: exit code: 1

Hi, thank you for the report! I'm wondering if simply giving you a finished build as a docker image might work instead?


fixing migration-to-fabric.md with adx 2nd option in note

updated note with tsi to adx / fabric guidance plus tooling

@cosh
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@cosh can you check?

#sign-off


Not an actual issue.

Hi, I am learning and I am wondering if you would have any time to talk about your vmread library and kernel module.

Sure, go ahead

Do you have a Discord or other chat software like wire, threema, etc...? (My email is publicly listed on my github profile, if you want to send it over non public channels)

Add me on Discord Heep#3574


Get-RubrikDatabase and "-ServerInstance" not working correctly for failover clusters in Rubrik CDM 5.3.

Current Behavior:
In Rubrik 5.2 (not PowerShell module 5.2), it worked to use Get-RubrikDatabase with -ServerInstance and specify it using "<server>\<instance>". It doesn't work after upgrading the Rubrik cluster to 5.3.1 - in that case, it is necessary to use "-InstanceId".
PS C:\Users\Jan> Get-RubrikDatabase -ServerInstance "JANSQLVIP\MYMSSQL" -verbose
VERBOSE: Validate the Rubrik token exists
VERBOSE: Found a Rubrik token for authentication
VERBOSE: Gather API Data for Get-RubrikDatabase
VERBOSE: Selected 1.0 API Data for Get-RubrikDatabase
VERBOSE: Load API data for Get-RubrikDatabase
VERBOSE: Description: Returns a list of summary information for Microsoft SQL databases.
VERBOSE: Validate the Rubrik token exists
VERBOSE: Found a Rubrik token for authentication
VERBOSE: Gather API Data for Get-RubrikSQLInstance
VERBOSE: Selected 1.0 API Data for Get-RubrikSQLInstance
VERBOSE: Load API data for Get-RubrikSQLInstance
VERBOSE: Description: Returns a list of summary information for Microsoft SQL instances.
VERBOSE: Build the URI
VERBOSE: URI = https://<IP_ADDRESS>/api/v1/mssql/instance
VERBOSE: Build the query parameters for instance_id,primary_cluster_id
VERBOSE: URI = https://<IP_ADDRESS>/api/v1/mssql/instance
VERBOSE: Submitting the request
VERBOSE: Invoking request with a custom timeout of 180 seconds
VERBOSE: GET https://<IP_ADDRESS>/api/v1/mssql/instance with 0-byte payload
VERBOSE: received 49021-byte response of content type application/json
VERBOSE: Received HTTP Status 200
VERBOSE: Formatting return value
VERBOSE: Filter the results
VERBOSE: Filter match = Name
VERBOSE: Filter match = Hostname
VERBOSE: Filter match = SLA
VERBOSE: Applying Rubrik.MSSQLInstance TypeName to results
VERBOSE: Build the URI
VERBOSE: URI = https://<IP_ADDRESS>/api/v1/mssql/db
VERBOSE: Build the query parameters for availability_group_id,instance_id,primary_cluster_id,effective_sla_domain_id
VERBOSE: URI = https://<IP_ADDRESS>/api/v1/mssql/db?instance_id=MssqlInstance:::391a24d2-42e2-4a34-ba13-10eaa1a14cee
VERBOSE: Submitting the request
VERBOSE: Invoking request with a custom timeout of 180 seconds
VERBOSE: GET https://<IP_ADDRESS>/api/v1/mssql/db?instance_id=MssqlInstance:::391a24d2-42e2-4a34-ba13-10eaa1a14cee with 0-byte payload
VERBOSE: received 36143-byte response of content type application/json
VERBOSE: Received HTTP Status 200
VERBOSE: Formatting return value
VERBOSE: Filter the results
VERBOSE: Filter match = AvailabilityGroupID
VERBOSE: Filter match = Instance
VERBOSE: Filter match = Name
VERBOSE: Filter match = Hostname
VERBOSE: Filter match = SLA
PS C:\Users\Jan>

PS C:\Users\Jan\> Get-RubrikDatabase -InstanceID  $(Get-RubrikSQLInstance -Name MYMSSQL).ID -verbose
VERBOSE: Validate the Rubrik token exists
VERBOSE: Found a Rubrik token for authentication
VERBOSE: Gather API Data for Get-RubrikDatabase
VERBOSE: Selected 1.0 API Data for Get-RubrikDatabase
VERBOSE: Load API data for Get-RubrikDatabase
VERBOSE: Description: Returns a list of summary information for Microsoft SQL databases.
VERBOSE: Build the URI
VERBOSE: URI = https://<IP_ADDRESS>/api/v1/mssql/db
VERBOSE: Build the query parameters for availability_group_id,instance_id,primary_cluster_id,effective_sla_domain_id
VERBOSE: URI = https://<IP_ADDRESS>/api/v1/mssql/db?instance_id=MssqlInstance:::391a24d2-42e2-4a34-ba13-10eaa1a14cee
VERBOSE: Submitting the request
VERBOSE: Invoking request with a custom timeout of 180 seconds
VERBOSE: GET https://<IP_ADDRESS>/api/v1/mssql/db?instance_id=MssqlInstance:::391a24d2-42e2-4a34-ba13-10eaa1a14cee with 0-byte payload
VERBOSE: received 19986-byte response of content type application/json
VERBOSE: Received HTTP Status 200
VERBOSE: Formatting return value
VERBOSE: Filter the results
VERBOSE: Filter match = AvailabilityGroupID
VERBOSE: Filter match = Instance
VERBOSE: Filter match = Name
VERBOSE: Filter match = Hostname
VERBOSE: Filter match = SLA
VERBOSE: Applying Rubrik.MSSQLDatabase TypeName to results

Name           Instance Name               Recovery Model SLA Domain            ID
----           -------------               -------------- ----------            --
Cats           JANSQLVIP\MYMSSQL SIMPLE         Gold DBs     MssqlDatabase:::ba6979b8-575c-c60a-a9ce-bdca08aca55b
Dogs           JANSQLVIP\MYMSSQL BULK_LOGGED    Gold DBs     MssqlDatabase:::b9cd2bb6-ccac-cabb-8558-a6b8c9c9e7bb
Cars           JANSQLVIP\MYMSSQL BULK_LOGGED    Gold DBs     MssqlDatabase:::bacccab6-bcbb-ca88-90b6-0bd6cb9cb7b9
msdb           JANSQLVIP\MYMSSQL SIMPLE         Gold DBs     MssqlDatabase:::c5aabb6b-cd5e-cb6d-aaca-d8cebcada7aa
model          JANSQLVIP\MYMSSQL FULL           Gold DBs     MssqlDatabase:::89ab7c05-ec08-c75a-985b-9870a9a8c0ca
master         JANSQLVIP\MYMSSQL SIMPLE         Gold DBs     MssqlDatabase:::aba5a797-6adb-c5c6-8ba2-ecd55eb55a7b

Expected Behavior:
When using Get-RubrikDatabase with -ServerInstance, it should be sufficient to use a single backslash and return output (JANSQLVIP\MYMSSQL).
Steps to Reproduce:

Setup a Windows Cluster with SQL.
Add it to Rubrik and discover DBs.
Run Get-RubrikDatabase -ServerInstance "<instance>".

Context:

Rubrik PowerShell Module Version:

PS C:\Users\Jan> Get-Module -ListAvailable Rubrik

    Directory: C:\Program Files\WindowsPowerShell\Modules

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     5.3.0      Rubrik                              {Connect-Rubrik, Disconnect-Rubrik, Export-RubrikDatabase,...

PowerShell Version:

PS C:\Users\Jan> $PSVersiontable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      19041  1023

Operating System:

PS C:\Users\Jan> (Get-WMIObject win32_operatingsystem).Name
Microsoft Windows 10 Pro|C:\Windows|\Device\Harddisk0\Partition3

Failure Logs
None

I think there is some confusion behind what ServerInstance is.
ServerInstance should never be used for the Host\MSSQLSERVER combination. When you have a default instance, a default instance is one where the name of the instance is MSSQLSERVER, then the value put into ServerInstance is just the host name.
When you have a named instance, a named instance is any value other than MSSQLSERVER, then the value put into ServerInstance is HOST\InstanceName.
When you have a failover cluster, this changes slightly. You do not use a hostname. Host name will refer to a node of a cluster. SQL Server when installed in as an FCI will create a virtual name. It will either be a default instance or named instance. When connecting to SQL Server that is installed as an FCI, then you would connect as just the Virtual Name if a default instance, or Virtual Name\InstanceName if a named instance.
With Rubrik, Rubrik does not understand the concept of a Virtual Name (the virtual name is actually a resource under each cluster resource). All FCIs are registered under their Windows Cluster Name. To use a Rubrik cmdlet with an FCI in Rubrik, you would use Windows Cluster Name\Instance name in the ServerInstance parameter.

@clumnah Sorry Chris, there was a mistake when copying over from my tests to here. The same issue happens when used with -ServerInstance "<non_standard_instance>".

@clumnah I've edited the original description and findings. Also discussed with @jaapbrasser in private.


gridfieldextensions are on the wrong account

The github repo has moved to silverstripe-australia/silverstripe-gridfieldextensions, so at the moment it is not possible to install with composer as it trying to pull from ajshort/silverstripe-gridfieldextensions

Fixed with #59


Bazel test failed

INFO: Analyzed 11 targets (7 packages loaded, 194 targets configured).
INFO: Found 8 targets and 3 test targets...
ERROR: /home/ubuntu/.cache/bazel/_bazel_ubuntu/fc81afcf82036f2c38d6a767bad75ce9/external/com_google_googletest/BUILD.bazel:80:11: Compiling googlemock/src/gmock-cardinalities.cc failed: (Exit 1): gcc failed: error executing command /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer '-std=c++0x' -MD -MF ... (remaining 33 arguments skipped)
Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
In file included from external/com_google_googletest/googletest/include/gtest/gtest-printers.h:114:0,
from external/com_google_googletest/googletest/include/gtest/gtest-matchers.h:48,
from external/com_google_googletest/googletest/include/gtest/internal/gtest-death-test-internal.h:46,
from external/com_google_googletest/googletest/include/gtest/gtest-death-test.h:43,
from external/com_google_googletest/googletest/include/gtest/gtest.h:61,
from external/com_google_googletest/googlemock/include/gmock/gmock-cardinalities.h:48,
from external/com_google_googletest/googlemock/src/gmock-cardinalities.cc:34:
external/com_google_googletest/googletest/include/gtest/internal/gtest-internal.h:635:58: error: wrong number of template arguments (0, should be 1)
typedef ::std::map<std::string, CodeLocation, std::less<>> RegisteredTestsMap;
^
In file included from /usr/include/c++/7/memory:76:0,
from external/com_google_googletest/googlemock/include/gmock/gmock-cardinalities.h:44,
from external/com_google_googletest/googlemock/src/gmock-cardinalities.cc:34:
/usr/include/c++/7/bits/stl_function.h:381:12: note: provided for 'template struct std::less'
struct less : public binary_function<Tp, Tp, bool>
^~~~
In file included from external/com_google_googletest/googletest/include/gtest/gtest-printers.h:114:0,
from external/com_google_googletest/googletest/include/gtest/gtest-matchers.h:48,
from external/com_google_googletest/googletest/include/gtest/internal/gtest-death-test-internal.h:46,
from external/com_google_googletest/googletest/include/gtest/gtest-death-test.h:43,
from external/com_google_googletest/googletest/include/gtest/gtest.h:61,
from external/com_google_googletest/googlemock/include/gmock/gmock-cardinalities.h:48,
from external/com_google_googletest/googlemock/src/gmock-cardinalities.cc:34:
external/com_google_googletest/googletest/include/gtest/internal/gtest-internal.h:635:59: error: template argument 3 is invalid
typedef ::std::map<std::string, CodeLocation, std::less<>> RegisteredTestsMap;
^~
external/com_google_googletest/googletest/include/gtest/internal/gtest-internal.h: In member function 'bool testing::internal::TypedTestSuitePState::AddTestName(const char*, int, const char*, const char*)':
external/com_google_googletest/googletest/include/gtest/internal/gtest-internal.h:612:23: error: request for member 'insert' in '((testing::internal::TypedTestSuitePState*)this)->testing::internal::TypedTestSuitePState::registered_tests', which is of non-class type 'testing::internal::TypedTestSuitePState::RegisteredTestsMap {aka int}'
registered_tests.insert(
^~~~~~
external/com_google_googletest/googletest/include/gtest/internal/gtest-internal.h: In member function 'bool testing::internal::TypedTestSuitePState::TestExists(const string&) const':
external/com_google_googletest/googletest/include/gtest/internal/gtest-internal.h:618:30: error: request for member 'count' in '((const testing::internal::TypedTestSuitePState*)this)->testing::internal::TypedTestSuitePState::registered_tests_', which is of non-class type 'const RegisteredTestsMap {aka const int}'
return registered_tests_.count(test_name) > 0;
^~~~~
external/com_google_googletest/googletest/include/gtest/internal/gtest-internal.h: In member function 'const testing::internal::CodeLocation& testing::internal::TypedTestSuitePState::GetCodeLocation(const string&) const':
external/com_google_googletest/googletest/include/gtest/internal/gtest-internal.h:622:40: error: qualified-id in declaration before 'it'
RegisteredTestsMap::const_iterator it = registered_tests_.find(test_name);
^~
In file included from external/com_google_googletest/googlemock/include/gmock/internal/gmock-port.h:57:0,
from external/com_google_googletest/googlemock/include/gmock/gmock-cardinalities.h:47,
from external/com_google_googletest/googlemock/src/gmock-cardinalities.cc:34:
external/com_google_googletest/googletest/include/gtest/internal/gtest-internal.h:623:5: error: 'it' was not declared in this scope
GTEST_CHECK_(it != registered_tests_.end());
^
external/com_google_googletest/googletest/include/gtest/internal/gtest-internal.h:623:5: note: suggested alternative: 'int'
external/com_google_googletest/googletest/include/gtest/internal/gtest-internal.h:623:5: error: request for member 'end' in '((const testing::internal::TypedTestSuitePState*)this)->testing::internal::TypedTestSuitePState::registered_tests_', which is of non-class type 'const RegisteredTestsMap {aka const int}'
GTEST_CHECK_(it != registered_tests_.end());
^
In file included from external/com_google_googletest/googletest/include/gtest/gtest-printers.h:114:0,
from external/com_google_googletest/googletest/include/gtest/gtest-matchers.h:48,
from external/com_google_googletest/googletest/include/gtest/internal/gtest-death-test-internal.h:46,
from external/com_google_googletest/googletest/include/gtest/gtest-death-test.h:43,
from external/com_google_googletest/googletest/include/gtest/gtest.h:61,
from external/com_google_googletest/googlemock/include/gmock/gmock-cardinalities.h:48,
from external/com_google_googletest/googlemock/src/gmock-cardinalities.cc:34:
external/com_google_googletest/googletest/include/gtest/internal/gtest-internal.h:624:12: error: 'it' was not declared in this scope
return it->second;
^~
external/com_google_googletest/googletest/include/gtest/internal/gtest-internal.h:624:12: note: suggested alternative: 'int'
return it->second;
^~
int
INFO: Elapsed time: 12.675s, Critical Path: 1.59s
INFO: 42 processes: 34 internal, 8 linux-sandbox.
FAILED: Build did NOT complete successfully
//mesh_renderer:mesh_renderer_test                                    NO STATUS
//mesh_renderer:rasterize_triangles_test                              NO STATUS
//mesh_renderer/kernels:rasterize_triangles_impl_test           FAILED TO BUILD
FAILED: Build did NOT complete successfully
How to fix this

Hello, please is your problem solved, I am also experiencing the same problem.

this command works for me:bazel test ... --cxxopt='-std=c++14'