AssertionError

I keep getting undefined for message.text.

This is my code:
const assert = require('assert')
const botmock = require('botkit-mock')
const skill = require('../../server/skills/profile')

describe('[skill]: profile', function () {

  afterEach(function () {
    this.controller.shutdown()
  })

  beforeEach(function () {
    this.userInfo = {
      slackId: 'user123',
      channel: 'channel123'
    }

    this.controller = botmock({
      stats_optout: true,
      debug: false
    })

    this.bot = this.controller.spawn({
      type: 'slack'
    })

    skill(this.controller)
  })

  describe('hears profile', function () {
    beforeEach(function () {
      this.term = 'profile'
    })

    describe('as direct message', function () {
      beforeEach(function() {
        this.sequence = [
          {
            type: 'direct_message',
            user: this.userInfo.slackId,
            channel: this.userInfo.channel,
            messages: [
              {
                text: this.term,
                isAssertion: true
              }
            ]
          }
        ]
      })
      describe('with [1] trigger and [1] convos', function () {
        beforeEach(function () {
          this.bot.receive({ type: 'heard_trigger' })
          this.bot.receive({type: 'conversationStarted'})
        })

        it (`should return text: "Here's your preferences"`, function () {
          return this.bot.usersInput(this.sequence).then((message) => {
            console.log(this)
            return assert.equal(
              message.text.indexOf(`Here's your profile preferences`) > -1,
              true
            )
          })
        })
      })
    })
  })
})

Did I miss anything? I'm following the botkit-starter-slack example

@pauldariye could you print this.bot.detailed_answers instead of this in your console.log(this)?

hey @amplicity,
I'm getting this error:

hey @amplicity, I think the issue is that I am trying to make some api calls to enrich the data. To get the tests passing, I'll have to figure out a way to stub those.

Apologies for the late reply.
Let us know if this works and I'll close this issue, @pauldariye

Thank you @ihorrusinko @amplicity, I'll give this a try tomorrow and let you know if it resolves the issue.

hey @amplicity, just checking on this. I'm looking to add startPrivateConversation in the slackBotWorker module to test it that will resolve the issue I'm having.

@pauldariye we've released version 0.1.8 with support for the function createPrivateConversation.
fyi here is example how to provide correct im.open response for this function
https://github.com/gratifyguy/botkit-mock/blob/a19fa059916e3bbca2564ff12973a5eef8c2a695/tests/extendSlackBotMochaSpec.js#L57

Thank you @ihorrusinko !!! :fire:

@ihorrusinko I just upgraded to v0.1.8 and I'm getting an error when I try using bot.createPrivateConversation (see below). However, it works just fine with either bot.createConversattion or bot.startPrivateConversation.
Code snippet:
const conversation = require('./conversation')
module.exports = (controller) => {
  controller.hears(
    ["check-in", "checkin"],
    "direct_message, direct_mention",
    (bot, message) => {
      bot.startPrivateConversation(message, (err, convo) => {
        if (!err) conversation(controller, bot, convo)
      })
    })
}

Error message using createPrivateConversation

@pauldariye we're checking this out.

Thank you @amplicity

@pauldariye see version 0.1.9
example here
https://github.com/gratifyguy/botkit-mock/blob/f8b0586118dfade61140de085231630f12f442c5/tests/extendSlackBotMochaSpec.js#L101-L145

@pauldariye let us know if this works and we'll close this out.

it works @amplicity @ihorrusinko !!!  Thanks a lot, guys. This lib has saved me a lot of work!!! Feel free to close this issue.
I have one last question, how do I preload variables before a conversation I'm testing?

Hmmm, I'm not exactly sure what you mean here. Could you show me an example of what you're trying to do?

Hey @amplicity, somehow didn't get to see this early.
So  have a scripts that use the beforeThread hooks to pass in data to enrich the conversation.
Like so:

module.exports = (controller, bot, conversation) => {
  conversation.addMessage(
    {
      text: "You're email is *{{vars.user.email}}*.",
      action: "completed"
    }, 'default')
  )
/*
 * Before hooks
 */
conversation.beforeThread('default', async (convo, next) => {
    const { user: userId } = convo.context
    const [err, user] = await to(controller.storage.users.get(userId))
    ...
    convo.setVar('user', user)
    ...
})
}

@pauldariye i've tested this flow, i noticed you don't invoke next() in beforeThread.
btw i think your logic doesn't not visit beforeThread, you need invoke convo.gotoThread('default') before.

hey @ihorrusinko, good catch there. By default, all conversations start with the default thread. So once activated, a conversation will visit the default thread if one exists unless otherwise specified.

@pauldariye i tried your example, it does not work for me, beforeThread is  never invoked

That's really strange because I've been using it this way for some time.
Here's an example from the botkit doc:
bot.createConversation(message, function(err, convo) {

    // create a path for when a user says YES
    convo.addMessage({
            text: 'You said yes! How wonderful.',
    },'yes_thread');

    // create a path for when a user says NO
    convo.addMessage({
        text: 'You said no, that is too bad.',
    },'no_thread');

    // create a path where neither option was matched
    // this message has an action field, which directs botkit to go back to the `default` thread after sending this message.
    convo.addMessage({
        text: 'Sorry I did not understand.',
        action: 'default',
    },'bad_response');

    // Create a yes/no question in the default thread...
    convo.addQuestion('Do you like cheese?', [
        {
            pattern: 'yes',
            callback: function(response, convo) {
                convo.gotoThread('yes_thread');
            },
        },
        {
            pattern: 'no',
            callback: function(response, convo) {
                convo.gotoThread('no_thread');
            },
        },
        {
            default: true,
            callback: function(response, convo) {
                convo.gotoThread('bad_response');
            },
        }
    ],{},'default');

    convo.activate();
});

Does this works for you?

Just confirmed @ihorrusinko and you're right. I needed to explicitly invoke conversation.gotoThread('default') after the .activate()


Support

Over in https://github.com/w3c/webdriver-bidi/issues/101 we'd like an index of the CDDL snippets in https://w3c.github.io/webdriver-bidi/, similar to what we have for Web IDL.
Also nice would be syntax highlighting for CDDL.

If we have this, we should then file an issue on https://github.com/w3c/webref to extract the CDDL and perhaps publish a @webref/cddl package to NPM.

Since the syntax highlighting comes from https://pygments.org/, that part probably needs a request there for that part

It looks like there's already some support: https://pygments.org/languages/

Yeah, per https://pygments.org/docs/lexers/#lexer-for-the-concise-data-definition-language-cddl-a-notational highlight=cddl will give you syntax highlighting.
I can see a feature letting you specify elements that should be collected into an index, so you can get your cddl stuff all together at the bottom of your spec as well.

Indeed, an index is what we're hoping for. And maybe splitting that by "local" and "remote" definitions.
cc @christian-broman who has worked a bit on this in the WebDriver BiDi spec.

I have implemented a CDDL parser that currently can build an AST based on some CDDL source code. I plan to do some CDDL validation and eventually autogenerate some client code. It seems that most of the bikeshed code is written in Python so not sure if the cddl package can be useful here. Not sure if I have the time to implement the same in Python but happy to advise someone who would take this up.


Can't import the named export 'HDKey'

🐛 Bug Description
Hello,
I am writing to report an issue related to Can't import the named export 'HDKey' from non EcmaScript module in my development environment, and I'm using react 18 node js 16 @rarible/sdk -  ^0.13.68-fix.19, @aptos-labs/ts-sdk - ^1.5.1.
Please check this issue, I have an attached issue related to the Screenshot.
Thank you

Hi @raviradadiya0142 , thank you for reporting!
Could you share your package.json file? prefer not as a screenshot but as a text (so it would be easy to copy-past)
Also, i'd recommend updating the aptos ts-sdk package to latest 1.22.2 version

Hello team,
I have attached package.json.
Regards
Ravi
On Mon, Jul 8, 2024 at 9:05 PM Maayan @.***> wrote:

Hi @raviradadiya0142 https://github.com/raviradadiya0142 , thank you
for reporting!
Could you share your package.json file? prefer not as a screenshot but as
a text (so it would be easy to copy-past)
Also, i'd recommend updating the aptos ts-sdk package to latest 1.22.2
version
—
Reply to this email directly, view it on GitHub
https://github.com/aptos-labs/aptos-ts-sdk/issues/457#issuecomment-2214460049,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BD2F6BGHLT4NKISHEZ67VTTZLKWTZAVCNFSM6AAAAABKOF7JKCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJUGQ3DAMBUHE
.
You are receiving this because you were mentioned.Message ID:
@.***>

{
"name": "fineart_ledger_frontend_marketplace",
"version": "0.1.0",
"homepage": ".",
"private": true,
"dependencies": {
"@aptos-labs/ts-sdk": "^1.22.2",
"@emotion/react": "^11.9.0",
"@emotion/styled": "^11.8.1",
"@ethereumjs/common": "^2.4.0",
"@ethereumjs/tx": "^3.3.0",
"@fortawesome/fontawesome-svg-core": "^6.4.0",
"@fortawesome/free-solid-svg-icons": "^6.4.0",
"@fortawesome/react-fontawesome": "^0.2.0",
"@mui/material": "^5.6.4",
"@rarible/api-client": "^0.0.13-beta11",
"@rarible/ethers-ethereum": "^0.12.78",
"@rarible/protocol-ethereum-sdk": "^0.12.79",
"@rarible/sdk-wallet": "^0.9.13-beta.imx.2",
"@rarible/types": "^0.9.6",
"@rarible/web3-ethereum": "^0.12.78",
<EMAIL_ADDRESS>"^1.68.1",
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.1.1",
"@testing-library/user-event": "^13.5.0",
"@truffle/hdwallet-provider": "^2.0.8",
"@types/jest": "^28.1.1",
"@types/node": "^17.0.42",
"@types/react": "^18.0.12",
"@types/react-dom": "^18.0.5",
"autoprefixer": "10.4.5",
"axios": "^0.27.2",
"bootstrap": "4.6.1",
"country-state-city": "^3.1.4",
"crypto": "^1.0.1",
"depcheck": "^1.4.3",
"eth-rpc-errors": "^4.0.3",
"eth-sig-util": "3.0.1",
"ethereumjs-util": "^7.1.0",
"ethers": "^5.7.2",
"http": "^0.0.1-security",
"https": "^1.0.0",
"install": "^0.13.0",
"ipfs-http-client": "^50.1.2",
"jquery": "^3.6.0",
"lodash": "^4.17.21",
"moment": "^2.29.3",
"npm": "^9.7.1",
"os": "^0.1.2",
"postcss-preset-env": "^7.4.4",
"prop-types": "^15.8.1",
"react": "^18.1.0",
"react-bootstrap": "^2.4.0",
"react-copy-to-clipboard": "^5.1.0",
"react-datepicker": "^4.8.0",
"react-dom": "^18.1.0",
"react-flash-message": "^1.0.8",
"react-icons": "^4.3.1",
"react-otp-input": "^2.4.0",
"react-phone-number-input": "^3.2.11",
"react-redux": "^8.0.1",
"react-router-dom": "^6.3.0",
"react-scripts": "4.0.3",
"react-select": "^5.7.3",
"react-share": "^4.4.0",
"react-simple-image-viewer": "^1.2.2",
"redux": "^4.2.0",
"redux-devtools-extension": "^2.13.9",
"redux-persist": "^6.0.0",
"redux-thunk": "^2.4.1",
"sass": "^1.51.0",
"serve": "^13.0.2",
"stream": "^0.0.2",
"styled-components": "^5.3.5",
"sweetalert": "^2.1.2",
"tslib": "^2.4.0",
"typescript": "^4.7.3",
"util": "^0.12.4",
"uuid": "^9.0.0",
"web-vitals": "^2.1.4",
"web3": "^1.7.5",
"web3-eth-contract": "^1.7.5",
"web3-utils": "^1.7.5",
"web3modal": "^1.9.12",
"yup": "^0.32.11"
},
"scripts": {
"start": "react-scripts --max_old_space_size=4096 start",
"build": "react-scripts --max_old_space_size=4096 build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@rarible/sdk": "^0.13.68-fix.19",
"assert": "^2.0.0",
"buffer": "^6.0.3",
"crypto-browserify": "^3.12.0",
"https-browserify": "^1.0.0",
"os-browserify": "^0.3.0",
"prettier": "^2.6.2",
"process": "^0.11.10",
"react-app-rewired": "^2.2.1",
"stream-browserify": "^3.0.0",
"stream-http": "^3.2.0",
"url": "^0.11.0"
}
}

@raviradadiya0142 thanks! could you share steps to reproduce the error?

Hello Maayan,
I'm working on a fine art NFT related project, in this project have
Rarible SDK version 0.13.7 (old version). Now I installed a new version of
Rarible SDK 0.13.68-fix.19. That time showed
@./aptos-sdk/build/index.js Module not found: Can't
resolve @./ts-sdk' " and I installed @aptos-labs/ts-sdk' package.
after, showed Can't import the named export 'HDKey' from non EcmaScript
module.
Regards
Ravi
On Tue, Jul 9, 2024 at 9:44 PM Maayan @.***> wrote:

@raviradadiya0142 https://github.com/raviradadiya0142 thanks! could you
share steps to reproduce the error?
—
Reply to this email directly, view it on GitHub
https://github.com/aptos-labs/aptos-ts-sdk/issues/457#issuecomment-2218114456,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BD2F6BB2QXIBWBAHELM4J4LZLQD5HAVCNFSM6AAAAABKOF7JKCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJYGEYTINBVGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

Have you checked this?

Hello team,
issue solved to upgrade packages version and downgrade node js version (v16 to v14).
thank you


Fix max connections

When the server dies, the number of connections wasn't getting decremented.
When having max_connections set to anything but nolimit, once the maximum number of connections is reached, the server dies, but doesn't decrement, meaning that the only max_connections -1 connections are available from there on. Next time there is a connection above that, only max_connections -1 -1 connections are available from there on, etc.
The 2nd commit handles the badmatch that surfaces in yaws:set_opts/3 - when the socket is closed, inet:setopts returns {error, einval}, which doesn't match ok -  as a "normal"=expected exit error reason.
PS: in #218 I mentioned that at times I could notice my appmod's out function was still called (my function was later failing because of another badmatch on {error, einval}). I cannot reproduce that now, with this fix, but it seems like a race-condition issue, which means it might surface in other contexts.

How did you test these changes? If the testing can be automated, please include some new tests to prevent regressions.

The issue can be reproduced with a simple appmod
-module(test-max-connections).
-export([out/1]).

out(_Arg) ->
    sleep(60),
    [{status, 204}].

Given max_connections = 1, run 2 requests towards it, and you notice the
2nd one will create an INFO REPORT about "Max connections reached - closing
conn to <IP_ADDRESS>:XXXXX" and an ERROR REPORT
Yaws process died: {{badmatch,{error,einval}},
                    [{yaws,setopts,3,
                         [{file,
                              ".../lib/yaws/src/yaws.erl"},
                          {line,2229}]},
                     {yaws,http_recv_request,2,
                         [{file,
                              ".../lib/yaws/src/yaws.erl"},
                          {line,2254}]},
                     {yaws,do_http_get_headers,2,
                         [{file,
                              ".../lib/yaws/src/yaws.erl"},
                          {line,2234}]},
                     {yaws_server,aloop,4,
                         [{file,
                              ".../lib/yaws/src/yaws_server.erl"},
                          {line,1182}]},
                     {yaws_server,acceptor0,2,
                         [{file,
                              ".../lib/yaws/src/yaws_server.erl"},
                          {line,1070}]},
                     {proc_lib,init_p_do_apply,3,
                         [{file,"proc_lib.erl"},{line,255}]}]}

I don't have any automatic tests, despite trying to set one up. It's taking
too long to figure out how to hook it up (not being mean, just honest) and
I don't see a "similar" test either, that I can just modify quickly.
PS: consider https://github.com/hawk/lux for cleaning up the black-box tests
On Thu, May 21, 2015 at 2:49 PM, Steve Vinoski<EMAIL_ADDRESS>wrote:

How did you test these changes? If the testing can be automated, please
include some new tests to prevent regressions.
—
Reply to this email directly or view it on GitHub
https://github.com/klacke/yaws/pull/219#issuecomment-104258120.

--
andreineculau.com http://www.andreineculau.com

I'll see if I can add a test along with this pull request.

Much appreciated. Thanks!
On Sun, May 24, 2015 at 2:40 PM, Steve Vinoski<EMAIL_ADDRESS>wrote:

I'll see if I can add a test along with this pull request.
—
Reply to this email directly or view it on GitHub
https://github.com/klacke/yaws/pull/219#issuecomment-105010823.

--
andreineculau.com http://www.andreineculau.com

Finally got back to this, and it's now on master. Thanks again for the contribution.


GUI installer: set a title to the confirmation screen.

During the whole installation I see the title being "Liana installer".
This issue is probably already fixed.

I mean the title at the OS level, not at the top of the window. For me on Gnome it's still "unknown" with a default icon.


Upgrade Versioning

Testing upgrading versions from older version:
bash-5.0# f5 bigip extension ts verify
{
    "installed": true,
    "installed_version": "1.8.0",
    "latest_version": "1.11.0"
}
bash-5.0# f5 bigip extension ts upgrade
Error: Valid component version must be provided: ['1.10.0', '1.9.0', '1.8.0', '1.7.0', '1.6.0', '1.5.0', '1.4.0', '1.3.0', '1.2.0', '1.1.0']
bash-5.0# f5 bigip extension ts verify
{
    "installed": false,
    "installed_version": "",
    "latest_version": "1.11.0"
}

Assuming that --version is always required to be specified, if so the Error message is misleading for versioning.

Additionally on error it removes the previously installed version:
bash-5.0# f5 bigip extension ts verify
{
    "installed": false,
    "installed_version": "",
    "latest_version": "1.11.0"
}
bash-5.0#

Thanks for reporting this bug. I was able to reproduce this behavior and have created Jira TICKET, internal ID AUTOSDK-315.


[#1330] hot fix: access management for feature res in view mode

this hotfix addressed #1330
bug reason: a javascript logic written specifically for feature res type in Edit mode got executed in View mode and failed, causing a “Butterfly Effect” which somehow affected the auto-complete functionality in the access management popup.

@pkdash could you review this hotfix?

@zhiyuli I am not comfortable with JS code review. Can @shawncrawley or @xuezhaokun can review this?

+1


Calling the sales_data method & returning None

Not sure if this is a bug or I'm doing something wrong.

I think Rolimon's changed their code for their sales data page which led to the data being unable to be scraped. I'll push out a fix by the end of the day 👍

Alright, added the fix. Should be in rolimons==1.51, let me know if you encounter further problems.

Thanks a lot, appreciated man!


Nicer way to optionally get a ContextPlugin extension

Describe the feature
A method on context similar to with(MyPlugin::class) but does not throw if the given plugin is not registered. It would simply return null instead.
Additional context
I am developing a utility library that can optionally be augmented by a plugin, and I couldn't find a way into the private pluginManager object, so right now I need to surround the ctx.with call with a try-catch to catch the PluginNotRegisteredException which is a little gross.
private fun <T> Context.maybeWith(clazz: KClass<out ContextPlugin<*, T>>): T? {
    return try {
        with(clazz)
    } catch (e: PluginNotRegisteredException) {
        null
    }
}

I haven't measured but I assume there is a performance overhead to throwing and catching an exception.

I have some utility functions and plugins that are used across several projects, but not every project needs every plugin.
The code just assumes if the plugin is not there, it's not relevant to that app, so it skips a block and continues on.
There's plenty of workarounds like the try-catch, using nullable ctx.attribute to stash some state, (would prefer the more typesafe plugin api), always adding the plugin but configuring it do do nothing sometimes (feels like boilerplate), or making several versions of the functions.
Basically, the idea is augmenting behavior based on a plugin, but not requiring it to be installed.
FWIW I'm translating code from Ktor, which has a pluginOrNull function.

The code just assumes if the plugin is not there, it's not relevant to that app, so it skips a block and continues on.

So something like logging, tracing, analytics?

FWIW I'm translating code from Ktor, which has a pluginOrNull function.

I supposed we could have withOrWithout(MyPlugin) (only half-joking 😄)
I'm not a fan of how withOrNull sounds, so maybe your maybeWith or tryWith. Feel free to submit a PR, and we can discuss the naming there.

Wouldn't it be easier to just cover this with app data?
 // Javalin's key
data class Key<T>(val id: String)

// Define a key
val OptionalMetrics = Key<Metrics?>("optional-metrics")

// Register data
cfg.pvt.appAttributes[OptionalMetrics] // null or not

// Handler
ctx.appData(OptionalMetrics)?.example("abc")

I'm not sure why there's no public register function for app data, so @tipsy may need to clarify this area.

I'm not sure why there's no public register function for app data, so @tipsy may need to clarify this area.

From https://javalin.io/documentation#app-data:
val app = Javalin.create { config ->
    config.appData(myKey, myValue)
}

Okay, my bad, I was looking at 5.4.3-SNAPSHOT 🤦♀

I'll close this due to inactivity.


Error when executing alertmanager_test, the Alertmanager v1 API was deprecated.

I was using alertmanager_test daily, but after upading to the latest version, the alerts stopped coming.
<% if p('alertmanager.test_alert.daily') %>
# Send a test alert daily
cp /var/vcap/jobs/alertmanager/bin/alertmanager_test /etc/cron.daily
<% else %>
# Remove pre-existing daily test alert
rm -f /etc/cron.daily/alertmanager_test
<% end %>

When trying to run it manually, seems there's an error returned, the Alertmanager v1 API was deprecated.

Sshed into the alertmanager vm, then manually run alertmanager_test

alertmanager:~# /var/vcap/jobs/alertmanager/bin/alertmanager_test
{"status":"deprecated","error":"The Alertmanager v1 API was deprecated in version 0.16.0 and is removed as of version 0.28.0 - please use the equivalent route in the v2 API"}

deploy cli

bosh -e $BOSH_ENV -d prometheus deploy $UPSTREAM_PATH/prometheus.yml \
  -o $UPSTREAM_PATH/operators/enable-grafana-uaa.yml \
  -o $UPSTREAM_PATH/operators/monitor-bosh.yml \
  -o $UPSTREAM_PATH/operators/monitor-cf.yml \
  -o $UPSTREAM_PATH/operators/monitor-elasticsearch.yml \
  -o $UPSTREAM_PATH/operators/monitor-concourse.yml \
  -o $UPSTREAM_PATH/operators/enable-service-discovery.yml \
  -o $UPSTREAM_PATH/operators/enable-cf-route-registrar.yml \
  -o $UPSTREAM_PATH/operators/alertmanager-slack-receiver.yml \
  -o $UPSTREAM_PATH/operators/enable-bosh-uaa.yml \
  --vars-file vars.yml $@

version, env
v30.3.0, deployed on AWS

Hi @eyett ,
thanks for reporting the issue.
Are you interested in providing a PR to fix this?

Hello @benjaminguttmann-avtq
I would be interested, however I'm pretty new to this bosh/cf system.
I might not know how this release system works..
Thanks for checking.

Hi @eyett ,
there are no specific things to pay attention to.

What was confused for me was, where do these alertmanager binaries come from.
Theses binary executables of alertmanager/alertmanager-0.27.0.linux-amd64.tar.gz, aren't they coming from a remote?
As far as I understood, the binaries including the error causing alertmanager_test, are unzipped from this tar, so may the tar be the one that need to be fixed?
config.yml
alertmanager/alertmanager-0.27.0.linux-amd64.tar.gz:
  size: 30866868
  object_id: 0ff68b26-1e55-4a1f-69da-e1def36708ef
  sha: sha256:23c3f5a3c73de91dbaec419f3c492bef636deb02680808e5d842e6553aa16074

packages/alertmanager/packaging
set -eux

# Copy common utils
mkdir -p ${BOSH_INSTALL_TARGET}/common
cp -a ${BOSH_COMPILE_TARGET}/common/* ${BOSH_INSTALL_TARGET}/common

# Extract alertmanager package
mkdir -p ${BOSH_INSTALL_TARGET}/bin
tar xzvf ${BOSH_COMPILE_TARGET}/alertmanager/alertmanager-0.27.0.linux-amd64.tar.gz
cp -a ${BOSH_COMPILE_TARGET}/alertmanager-0.27.0.linux-amd64/* ${BOSH_INSTALL_TARGET}/bin

The alertmanager binaries get pulled from the upstream and added as a blob to be used by the BOSH release. Nothing you need to worry about.

Ah ha.. I think I might get it now..
Tried creating a PR...


Broken on jupyter 3.3.2

The extension "jupyterlab-execute-time" does not yet support the current version of JupyterLab.
Conflicting Dependencies:
JupyterLab                  Extension      Package

=3.3.2 <3.4.0              >=2.0.2 <3.0.0 @jupyterlab/application
=3.3.2 <3.4.0              >=2.0.2 <3.0.0 @jupyterlab/notebook
=3.3.2 <3.4.0              >=2.0.1 <3.0.0 @jupyterlab/settingregistry

Please see install directions for 3.x: https://github.com/deshaw/jupyterlab-execute-time#install


[Map] DM-Aztec

Hash: 10d5ca985df45adf14481fdbce6b41bc41f9e20a
Current name: DM-Aztec
The author's name appears as Ben Burkart "TinkerBell" in the readme

Updated


make BucketInfo and ObjectInfo JSON-aware

This is not javascript style avoid underscore and hyphens - change this to 'creationDate'

I see this was modified, LGTM.


Download Kubernetes link goes to right page #31794

Why are we solving this issue?
https://kubernetes.io/docs/home/ has a link (styled as a button) titled “Download Kubernetes”. At the moment that link goes to https://kubernetes.io/releases/notes/ which isn't quite right.

To address this issue, are there any code changes? If there are code changes, what needs to be done in the code and what places can the assignee treat as reference points?
content/en/docs/home/_index.md changed the link to  directory of the download page.

How can the assignee reach out to you for help?
Gmail -<EMAIL_ADDRESS>

/assign @onlydole

/close
#31804 has already fixed this link. Thank you for proposing this fix anyway.
(I've merged that one before this because as the PR number is suggesting, that one comes in before this one).


New Functionality added SpGEMM (SpMxSpM) CSR Format Single Precision

Sparse Matrix times Sparse Matrix

@kvaragan, I'm really interested in this code but I will not review it until the builds will be successfull.

@jpola FYI, I've asked @kvaragan to fix-up copyright headers before we merge this PR in.

I will raise new PR after fixing copyright issues


Handle empty masks for segmentation

hi, I have a question about instance segmentation. As far I understand, at the moment mmdet does not handle empty masks, i.e maskrcnn must get both bounding box and instance mask together. Will You handle these situations in the feature or there is boolean variable for empty masks?

What does empty mask means? Do you mean image without object?

What does empty mask means? Do you mean image without object?

@karlind I mean situations, when You have an image and object with bounding box, but You do not have a mask for that object.

If you do not have mask annotations, you can try object detection models such as Faster R-CNN.

You can ignore images without object in mask head.

You can set -1 for the empty mask. e.g. mask = [[-1]*8].  It's ok in my case.
Or, you can assign the bbox as its mask, as the empty mask is not much.

You can set -1 for the empty mask. e.g. mask = [[-1]*8]. It's ok in my case.
Or, you can assign the bbox as its mask, as the empty mask is not much.

where can i set -1 for empty mask? in which config

You can set -1 for the empty mask. e.g. mask = [[-1]*8]. It's ok in my case.
Or, you can assign the bbox as its mask, as the empty mask is not much.

where can i set -1 for empty mask? in which config

You have to manually add in the loading, before transforms.


Update list of deno subcommands

Ref: https://github.com/hayd/deno-docker/issues/119

@hayd You mentioned potentially using some of the code from the script I posted in this comment as a test, but I'm not sure how you were thinking about its implementation. If you have specifics to share, I'd be happy to make an effort at updating this PR with an implementation.

Happy to merge this first, since it's clearly a useful fix!
RE a test I was imagining (though other approaches would be fine!):

get array of deno subcommands (by parsing deno --help ?)
get array of subcommands listed in _entry.sh (look up the line?)
check the arrays are equal :)

Another way, might be to have a script that updates the _entry.sh subcommands, run it in the tests and assert there's no git diff...

thanks!

get array of subcommands listed in _entry.sh (look up the line?)

This seems ok to me, but it:

would require knowing how to target the line (with a regular expression, for example)
might be a brittle approach, because if the file changes, the regex could potentially become invalid and fail to match

Another way, might be to have a script that updates the _entry.sh subcommands, run it in the tests and assert there's no git diff...

I like this approach because it can allow for using the same script to both generate the file and verify it between Deno version updates.
Yet another way could be to get the list of subcommands directly from the Deno repo. I did a search for this before writing the parsing script, but could not find it in the source. Do you have any ideas where the list might be?

something like:
const p =  Deno.run({"cmd": ["deno", "--help"], stdout: "piped",})

const out = new TextDecoder().decode(await p.output())
out.match(/\nSUBCOMMANDS:\n(.*)\n\n/s)[1].split("\n").map((line) => line.split(/\s+/)[1])

If this changes in future then it would fail the test :) so not so worried about brittleness.
I don't think there is a way to get it from js (since it's generated by clap).

If this changes in future then it would fail the test :) so not so worried about brittleness.

I'm not sure I follow you. Perhaps there has been some miscommunication... in my previous message I was referring to _enrtry.sh:

get array of subcommands listed in _entry.sh (look up the line?)

...

might be a brittle approach, because if the file changes, the regex could potentially become invalid and fail to match

but it seems like you were describing an alternative to the method I was using in the script I posted in this comment. I'll just create a PR from the work I did yesterday and we can discuss there how and what to change in order to arrive at the best solution.


WIP: Rework JWT with scopes in GOA design

Hey, I've looked at some swagger with @tinakurian and we found out about scopes in JWT and GOA. This PR exists to show how we might want to integrate scopes as presented by @alexeykazakov and @sbose78 into our endpoints.
The PR was inspired by this example usage of JWT: https://github.com/goadesign/examples/blob/master/security/design/jwt.go#L10
Notice that we were not using the newly created JWT global variable anywhere but just defined.
As you can see the scopes can be placed on each action of a resource which is close to what we want, no? What's missing in the generated swagger are information about the Authorization header that should be provided in requests. The required scopes for each action are appended to the description of each action.
I have no idea what effect the changes will have on our endpoints. Do the reject a request if a scope is missing now?

Ike Plugins (test-keeper)
Thank you @kwk for this contribution!

It appears that no tests have been added or updated in this PR.
Automated tests give us confidence in shipping reliable software. Please add some as part of this change.
If you are an admin or the reviewer of this PR and you are sure that no test is needed then you can use the command /ok-without-tests as a comment to make the status green.
For more information please head over to official documentation. You can find there how to configure the plugin.

Codecov Report

Merging #2138 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2138   +/-   ##
=======================================
  Coverage   69.37%   69.37%
=======================================
  Files         165      165
  Lines       15277    15277
=======================================
  Hits        10598    10598
  Misses       3719     3719
  Partials      960      960

Continue to review full report at Codecov.

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

@kwk that's interesting yes. I didn't find what exactly is expected in the token by GOA JWT security middleware is some scopes are defined in design. But it looks like it's just top level scope claim.
It's not enough for out case. We will need to specify scopes for the resource ID (or set of resources). We use scopes per resource.
Another problem with this built-in middleware is that if there is no any information for the required resource in the token then WIT should not just reject access. It should try to obtain a new token from Auth.
We still could use GOA middlewares for that I think. But we will need to create our own custom one. We (auth team) also were thinking about creating common libs/tools for our go/Java/JS etc, clients/resource services which we could re-use instead of forcing each team to re-implement it from scratch.
We could do something for our goa repos/services too.

But it looks like it's just top level scope claim.
It's not enough for out case. We will need to specify scopes for the resource ID (or set of resources). We use scopes per resource.

@alexeykazakov If I'm not mistaken you can put scopes on GOA resources and even actions (like I did) of a particular resource. Can you elaborate on how your resource definition differs from the GOA one?

@kwk GOA resources != AuthZ resources.
If I understand correctly GOA JWT Middleware will check top level scope claim in the token when accessing some endpoint (resource/action):
“scopes”:[“view”,”contribute”]
But we need scopes for AuthZ resources, like spaces or org:
“resources”:[
{“id”:”12345”, “scopes”: [”view”]},
{“id”:”54321”, “scopes”: [”view”, “contribute”]}
]
See the difference?
In the first token there is global scopes but we need to define and check scopes per space as in the second token where “12345” and “54321” are space IDs.

See the difference?

Yes I see that.


Pusher integration

Hello!
First of all, I would like to thank you for this package. I am trying to integrate Pusher but is seems like I can not figure out how to properly do it. Right now, I receive inputs into the database and I show them in the development server but I am not able to dinamically use it with Pusher.
Could you please, provide me with some futher explanations? Find below the config/pusher files and others:
config/chatmessenger.php
<?php

return [

    'user_model' => App\User::class,

    'message_model' => App\Models\Message::class,

    'participant_model' => App\Models\Participant::class,

    'thread_model' => App\Models\Thread::class,

    /**
     * Define custom database table names - without prefixes.
     */
    'messages_table' => 'messages',

    'participants_table' => 'participants',

    'threads_table' => 'threads',

    /**
     * Define custom database table names - without prefixes.
    */

    'use_pusher' => true,
];

config/app.php
<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Application Name
    |--------------------------------------------------------------------------
    |
    | This value is the name of your application. This value is used when the
    | framework needs to place the application's name in a notification or
    | any other location as required by the application or its packages.
    |
    */

    'name' => env('APP_NAME', 'Laravel'),

    /*
    |--------------------------------------------------------------------------
    | Application Environment
    |--------------------------------------------------------------------------
    |
    | This value determines the "environment" your application is currently
    | running in. This may determine how you prefer to configure various
    | services your application utilizes. Set this in your ".env" file.
    |
    */

    'env' => env('APP_ENV', 'production'),

    /*
    |--------------------------------------------------------------------------
    | Application Debug Mode
    |--------------------------------------------------------------------------
    |
    | When your application is in debug mode, detailed error messages with
    | stack traces will be shown on every error that occurs within your
    | application. If disabled, a simple generic error page is shown.
    |
    */

    'debug' => env('APP_DEBUG', false),

    /*
    |--------------------------------------------------------------------------
    | Application URL
    |--------------------------------------------------------------------------
    |
    | This URL is used by the console to properly generate URLs when using
    | the Artisan command line tool. You should set this to the root of
    | your application so that it is used when running Artisan tasks.
    |
    */

    'url' => env('APP_URL', 'http://localhost'),

    /*
    |--------------------------------------------------------------------------
    | Application Timezone
    |--------------------------------------------------------------------------
    |
    | Here you may specify the default timezone for your application, which
    | will be used by the PHP date and date-time functions. We have gone
    | ahead and set this to a sensible default for you out of the box.
    |
    */

    'timezone' => 'UTC',

    /*
    |--------------------------------------------------------------------------
    | Application Locale Configuration
    |--------------------------------------------------------------------------
    |
    | The application locale determines the default locale that will be used
    | by the translation service provider. You are free to set this value
    | to any of the locales which will be supported by the application.
    |
    */

    'locale' => 'en',

    /*
    |--------------------------------------------------------------------------
    | Application Fallback Locale
    |--------------------------------------------------------------------------
    |
    | The fallback locale determines the locale to use when the current one
    | is not available. You may change the value to correspond to any of
    | the language folders that are provided through your application.
    |
    */

    'fallback_locale' => 'en',

    /*
    |--------------------------------------------------------------------------
    | Encryption Key
    |--------------------------------------------------------------------------
    |
    | This key is used by the Illuminate encrypter service and should be set
    | to a random, 32 character string, otherwise these encrypted strings
    | will not be safe. Please do this before deploying an application!
    |
    */

    'key' => env('APP_KEY'),

    'cipher' => 'AES-256-CBC',

    /*
    |--------------------------------------------------------------------------
    | Autoloaded Service Providers
    |--------------------------------------------------------------------------
    |
    | The service providers listed here will be automatically loaded on the
    | request to your application. Feel free to add your own services to
    | this array to grant expanded functionality to your applications.
    |
    */

    'providers' => [

        /*
         * Laravel Framework Service Providers...
         */
        Illuminate\Auth\AuthServiceProvider::class,
        Illuminate\Broadcasting\BroadcastServiceProvider::class,
        Illuminate\Bus\BusServiceProvider::class,
        Illuminate\Cache\CacheServiceProvider::class,
        Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
        Illuminate\Cookie\CookieServiceProvider::class,
        Illuminate\Database\DatabaseServiceProvider::class,
        Illuminate\Encryption\EncryptionServiceProvider::class,
        Illuminate\Filesystem\FilesystemServiceProvider::class,
        Illuminate\Foundation\Providers\FoundationServiceProvider::class,
        Illuminate\Hashing\HashServiceProvider::class,
        Illuminate\Mail\MailServiceProvider::class,
        Illuminate\Notifications\NotificationServiceProvider::class,
        Illuminate\Pagination\PaginationServiceProvider::class,
        Illuminate\Pipeline\PipelineServiceProvider::class,
        Illuminate\Queue\QueueServiceProvider::class,
        Illuminate\Redis\RedisServiceProvider::class,
        Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
        Illuminate\Session\SessionServiceProvider::class,
        Illuminate\Translation\TranslationServiceProvider::class,
        Illuminate\Validation\ValidationServiceProvider::class,
        Illuminate\View\ViewServiceProvider::class,

        /*
         * Package Service Providers...
         */
        Pusher\Laravel\PusherServiceProvider::class,
        Lexx\ChatMessenger\ChatMessengerServiceProvider::class,

        /*
         * Application Service Providers...
         */
        App\Providers\AppServiceProvider::class,
        App\Providers\AuthServiceProvider::class,
        // App\Providers\BroadcastServiceProvider::class,
        App\Providers\EventServiceProvider::class,
        App\Providers\RouteServiceProvider::class,

    ],

    /*
    |--------------------------------------------------------------------------
    | Class Aliases
    |--------------------------------------------------------------------------
    |
    | This array of class aliases will be registered when this application
    | is started. However, feel free to register as many as you wish as
    | the aliases are "lazy" loaded so they don't hinder performance.
    |
    */

    'aliases' => [

        'App' => Illuminate\Support\Facades\App::class,
        'Artisan' => Illuminate\Support\Facades\Artisan::class,
        'Auth' => Illuminate\Support\Facades\Auth::class,
        'Blade' => Illuminate\Support\Facades\Blade::class,
        'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
        'Bus' => Illuminate\Support\Facades\Bus::class,
        'Cache' => Illuminate\Support\Facades\Cache::class,
        'Config' => Illuminate\Support\Facades\Config::class,
        'Cookie' => Illuminate\Support\Facades\Cookie::class,
        'Crypt' => Illuminate\Support\Facades\Crypt::class,
        'DB' => Illuminate\Support\Facades\DB::class,
        'Eloquent' => Illuminate\Database\Eloquent\Model::class,
        'Event' => Illuminate\Support\Facades\Event::class,
        'File' => Illuminate\Support\Facades\File::class,
        'Gate' => Illuminate\Support\Facades\Gate::class,
        'Hash' => Illuminate\Support\Facades\Hash::class,
        'Lang' => Illuminate\Support\Facades\Lang::class,
        'Log' => Illuminate\Support\Facades\Log::class,
        'Mail' => Illuminate\Support\Facades\Mail::class,
        'Notification' => Illuminate\Support\Facades\Notification::class,
        'Password' => Illuminate\Support\Facades\Password::class,
        'Queue' => Illuminate\Support\Facades\Queue::class,
        'Redirect' => Illuminate\Support\Facades\Redirect::class,
        'Redis' => Illuminate\Support\Facades\Redis::class,
        'Request' => Illuminate\Support\Facades\Request::class,
        'Response' => Illuminate\Support\Facades\Response::class,
        'Route' => Illuminate\Support\Facades\Route::class,
        'Schema' => Illuminate\Support\Facades\Schema::class,
        'Session' => Illuminate\Support\Facades\Session::class,
        'Storage' => Illuminate\Support\Facades\Storage::class,
        'URL' => Illuminate\Support\Facades\URL::class,
        'Validator' => Illuminate\Support\Facades\Validator::class,
        'View' => Illuminate\Support\Facades\View::class,
        'Pusher' => Pusher\Laravel\Facades\Pusher::class,

    ],

];

The connections are included in config/pusher but nothing is sent to the pusher area or at least I don't see in the Pusher dashboard any connection.
thank you in advance!

Hello, thanks for reaching out.
Now, after persisting the data in the database, are you dispatching/broadcasting an event to Pusher itself? What do you see in Pusher's dashboard? Any activity?

Hello again,
I see how differents users connects to pusher but nothing happens when I send a message between users. Perphaps, there is a problem with the listener? I don't know how to the bugg it.
Thank you for help

Hi. Could you provide some piece of code for your controller?

yes,sure
`<?php

namespace App\Http\Controllers;

use App\User;
use Carbon\Carbon;
use App\Models\Message;
use App\Models\Participant;
use App\Models\Models;
use App\Models\Thread;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Session;
use Pusher; // Pusher\Laravel\Facades\Pusher
use Illuminate\Http\Request;

class MessagesController extends Controller
{
  public function __construct()
    {
        $this->middleware('auth');
    }
    /**
     * Show all of the message threads to the user.
     *
     * @return mixed
     */
    public function index()
    {
        // All threads, ignore deleted/archived participants
        $threads = Thread::getAllLatest()->get();
        // All threads that user is participating in
        // $threads = Thread::forUser(Auth::id())->latest('updated_at')->get();
        // All threads that user is participating in, with new messages
        // $threads = Thread::forUserWithNewMessages(Auth::id())->latest('updated_at')->get();

        return view('messenger.index', compact('threads'));
    }
    /**
     * Shows a message thread.
     *
     * @param $id
     * @return mixed
     */
    public function show($id)
    {
        try {
            $thread = Thread::findOrFail($id);
        } catch (ModelNotFoundException $e) {
            Session::flash('error_message', 'The thread with ID: ' . $id . ' was not found.');
            return redirect()->route('messages');
        }
        // show current user in list if not a current participant
        // $users = User::whereNotIn('id', $thread->participantsUserIds())->get();
        // don't show the current user in list
        $userId = Auth::id();
        $users = User::whereNotIn('id', $thread->participantsUserIds($userId))->get();
        $thread->markAsRead($userId);
        return view('messenger.show', compact('thread', 'users'));
    }
    /**
     * Creates a new message thread.
     *
     * @return mixed
     */
    public function create()
    {
        $users = User::where('id', '!=', Auth::id())->get();
        return view('messenger.create', compact('users'));
    }
    /**
     * Stores a new message thread.
     *
     * @return mixed
     */
    public function store()
    {
        $input = Input::all();
        $thread = Thread::create([
            'subject' => $input['subject'],
        ]);
        // Message
        $message = Message::create([
            'thread_id' => $thread->id,
            'user_id' => Auth::id(),
            'body' => $input['message'],
        ]);
        // Sender
        Participant::create([
            'thread_id' => $thread->id,
            'user_id' => Auth::id(),
            'last_read' => new Carbon,
        ]);
        // Recipients
        if (Input::has('recipients')) {
            // add code logic here to check if a thread has max participants set
            // utilize either $thread->getMaxParticipants()  or $thread->hasMaxParticipants()
            $thread->addParticipant($input['recipients']);
        }
        // check if pusher is allowed
        if(config('chatmessenger.use_pusher')) {
            $this->oooPushIt($message);
        }
        if(request()->ajax()) {
            return response()->json([
                'status' => 'OK',
                'message' => $message,
                'thread' => $thread,
            ]);
        }
        return redirect()->route('messages');
    }
    /**
     * Adds a new message to a current thread.
     *
     * @param $id
     * @return mixed
     */
    public function update($id)
    {
        try {
            $thread = Thread::findOrFail($id);
        } catch (ModelNotFoundException $e) {
            Session::flash('error_message', 'The thread with ID: ' . $id . ' was not found.');
            return redirect()->route('messages');
        }
        $thread->activateAllParticipants();
        // Message
        $message = Message::create([
            'thread_id' => $thread->id,
            'user_id' => Auth::id(),
            'body' => Input::get('message'),
        ]);
        // Add replier as a participant
        $participant = Participant::firstOrCreate([
            'thread_id' => $thread->id,
            'user_id' => Auth::id(),
        ]);
        $participant->last_read = new Carbon;
        $participant->save();
        // Recipients
        if (Input::has('recipients')) {
            // add code logic here to check if a thread has max participants set
            // utilize either $thread->getMaxParticipants()  or $thread->hasMaxParticipants()

            $thread->addParticipant(Input::get('recipients'));
        }
        $html = view('messenger.partials.html-message', compact('message'))->render();
        // check if pusher is allowed
        if(config('chatmessenger.use_pusher')) {
            $this->oooPushIt($message);
        }
        if(request()->ajax()) {
            return response()->json([
                'status' => 'OK',
                'message' => $message,
                'html' => $html,
                'thread_subject' => $message->thread->subject,
            ]);
        }
        return redirect()->route('messages.show', $id);
    }
    /**
     * Send the new message to Pusher in order to notify users.
     *
     * @param Message $message
     */
    protected function oooPushIt(Message $message, $html = '')
    {
        $thread = $message->thread;
        $sender = $message->user;
        $data = [
            'thread_id' => $thread->id,
            'div_id' => 'thread_' . $thread->id,
            'sender_name' => $sender->name,
            'thread_url' => route('messages.show', ['id' => $thread->id]),
            'thread_subject' => $thread->subject,
            'message' => $message->body,
            'html' => $html,
            'text' => str_limit($message->body, 50),
        ];
        $recipients = $thread->participantsUserIds();
        if (count($recipients) > 0) {
            foreach ($recipients as $recipient) {
                if ($recipient == $sender->id) {
                    continue;
                }
                $pusher_resp = Pusher::trigger(['for_user_' . $recipient], 'new_message', $data);

                // We're done here - how easy was that, it just works!
            }
        }
        return $pusher_resp;
    }
    /**
     * Mark a specific thread as read, for ajax use.
     *
     * @param $id
     */
    public function read($id)
    {
        $thread = Thread::find($id);
        if (!$thread) {
            abort(404);
        }
        $thread->markAsRead(Auth::id());
    }
    /**
     * Get the number of unread threads, for ajax use.
     *
     * @return array
     */
    public function unread()
    {
        $count = Auth::user()->unreadMessagesCount();
        return ['msg_count' => $count];
    }
}

I was able to connect different users to the channels created in the pusher dasboard but when I submit the message I don't receive any live alert or nothing. (Data is sent and stored in the DB)
I see the following message in the console.log when I connect one user to the channel. Could it be the reason?
Pusher.ScriptReceivers[1](null, { host: 'timeline33-clientstats1.pusher.com' });

Hi there!
Finally, I found the problem. There was a mismatch between the server time and pusher. Which is already solved and now the app works as intented.
Thank you for you help!

... Just a follow-up, package now support laravel 6. The docs/examples hav been updated, and Pusher is now used slightly different than before. It is more alligned to how laravel likes it.
Cheers!


elem: Use single space between sentences.

Go style uses single space between sentences. See https://dmitri.shuralyov.com/idiomatic-go#single-spaces-between-sentences.
Fixes gofmt issue.
Fixes #97.
Updates #95.

Very nice! I wonder if the event subpackage / generator also suffers from this issue and needs the same fix?

I wonder if the event subpackage / generator also suffers from this issue and needs the same fix?

The event package does not have any gofmt issues, nor double spaces at this time. But that can still happen in the future. I'll send a PR to update its generator, and to keep them in sync.


Enable sorting the Standard Tooltip Values

Is your feature request related to a problem? Please describe.
The placement of the Attribute/Modifier/Save option leads to the abilities being displayed in several columns, depending on number of rows

Describe the solution you'd like
Being able to reorder the Standard Tooltip Values
Describe alternatives you've considered
Increasing the number of rows displayed to 8
What system(s) do you want this feature to work with?
DnD5e

I'd like to bump this request. Starting to look into using more of the options available on this tooltip, such as defenses/immunities. I feel these would be better appear after the some of the other options with less information.


[Windows] Install Google Chrome for Testing

Description
Google have released Google Chrome for Testing - it's special version of Google Chrome browser with auto-updates disables and some other optimizations for testing and automation. It might worth switching to that version.
Related issue: -
Check list

[ ] Related issue / work item is attached
[ ] Tests are written (if applicable)
[ ] Documentation is updated (if applicable)
[ ] Changes are tested and related VM images are successfully generated

/azp run windows2019,windows2022

/azp run windows2019,windows2022

/azp run windows2019,windows2022

/azp run windows2019,windows2022


What version of you are using?

Hi Panda, I saw the pip install -r requirements command in README, and want to confirm you are using python2 or python3? because my pip and pip3 version are all is 22.3.

Hi I'm using python 3, so you may use pip3 for pip install

Thanks~


chore: remove hard-coded volume from Dockerfile

the Dockerfile has a VOLUME /data defined. However, there are multiple reasons to skip this:

volumes can be (are expected to be?) defined when running with docker run or docker-compose
this volume is unnecessary and not useful if sqlite db backend is not being used
it is easier to define a volume as needed than to undefine a hard-coded volume
this creates lots of stale volumes during repeated builds with docker or compose

also, the readme already shows a docker run command complete with volume definition, and the docker-compose.yml in this PR defines a persistent volume for db data.

Not familiar with volumes.
From reading https://stackoverflow.com/questions/39317669/dockerfile-persist-data-with-volume, it seems that the VOLUME instruction in Dockerfile does not result in a persistent volume. Instead, a fresh volume is created for each instance of docker run. In this case, I agree that VOLUME should be removed from Dockerfile.
I also agree that the db should have a volume specified in docker-compose.yml.
One minor comment in that {} may not be necessary on line 29, but the changes look good to me.
Thanks @bdeshi!

Looks good to me. Thank you!


Error and Usage Reports

What do Denise and the Trustees need as error and usage reports?
Geoff

Usage appears at bottom RHS of researchers screen.
This item is on the FreeCEN Roadmap.
Geoff

FreeCEN committee felt that definition of reports should come from Trustees
Should I set up a document to capture existing reports and wanted, e.g. does it exist (where/who has access), if not who wants it, how freequently, how urgent is it/is it just a nice to have?

Are there perhaps two issues here: this one (error and usage reports for coordinators) and reports for trustees (which will include, but not be limited to error and usage information).
I'll be doing some work on the latter in the new year but as I understand it, this is "non-phase specific", so out of the scope of the Roadmap? Happy to be corrected though!

Do you want another story making for the Reports for Trustees, Denise?  That isn't part of the FreeCEN roadmap, so maybe not needed on this board?

Pat
My view is Yes.
If we designate the existing story as Reports for Coordinators then we can work on the two issues independently.
We will need to do the development of anything specifically FreeCEN so it does belong in our Roadmap.
Denise – your thoughts?
Geoff
From: Pat Reynolds @.>
Sent: Friday, January 19, 2024 3:00 AM
To: FreeUKGen/FreeCENMigration @.>
Cc: Geoff J @.>; Author @.>
Subject: Re: [FreeUKGen/FreeCENMigration] Reports for Coordinators (was Trustee Reports, and before that was Error and Usage Reports) (Issue #1584)
Do you want another story making for the Reports for Trustees, Denise? That isn't part of the FreeCEN roadmap, so maybe not needed on this board?
—
Reply to this email directly, view it on GitHub https://github.com/FreeUKGen/FreeCENMigration/issues/1584#issuecomment-1898867984 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AKCPIFK4Q7WGOBWNXTDCJCTYPFIHJAVCNFSM6AAAAAA7HD4NVSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJYHA3DOOJYGQ .
You are receiving this because you authored the thread.  https://github.com/notifications/beacon/AKCPIFJFZZQANLXO33JIIH3YPFIHJA5CNFSM6AAAAAA7HD4NVSWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTRFZWRA.gif Message ID: @.*** @.***> >

Transcribers: need a report of their completed pieces - including progress eg no online.
NB this to become an epic, with separate stories.

Agree with all of the above

Since the discussion during the scrum I believe that this can be achieved by creating a new format based on the County Statistics report.
Within the existing report there are 2 sections vld files and csv files. We know that all vld files are online so this suggestion refers specifically to the csv files. VLD files will all be reported as online.
CSV files can be sorted into three categories:
Files being transcribed or proofread;
Files being validated;
Files Incorporated.
So our report would be in those three categories.
The current County Statistics report already shows the Incorporated files, who incorporated them and when they were incorporated.
That leaves the other pieces which are currently recorded as simply in progress.
The pieces that are being validated are flagged - the Coordinator can already view a listing of the pieces being validated. These pieces can be included in the section 'Being Validated'. (There is no need for a Validated waiting Incorporation column because the Coordinator generally Incorporates the piece as soon as the Validator reports that it is ready for Incorporation). Files being validated will show the UserId of the validator and the date that the piece was last tested.
The balance of the pieces that have been uploaded belong in the Being transcribed / Being Proofread group. There will be multiple entries in this section. Each entry will have the UserId and the date of last upload to that Userid.
This can be further enhanced by data drawn from the proposed DAP/CAP/RAP PARMS fields of the PARMS to create a truly comprehensive overview of each piece in each county/year.
Geoff

Awaiting completion of #247


Add CI using GitHub Actions

From @streeve tells me that setting up CI with GitHub Actions is pretty easy and is worth looking into.

If you give me push access I can add a draft

You're a good man, @streeve. @jeanlucf22, I don't think I have administrator rights to give Sam push access. Any objections to adding CI?

just made @streeve an admin. No objection to adding CI!


Paket does not use global nuget cache directory set in configuration file

Description
Using nuget config it's possible to select an alternative nuget cache location: https://docs.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior
However, Paket does not properly use the configured value, causing some strange and confusing error messages, for example:
Package C:\src\project\packages\Microsoft.AspNet.Razor\microsoft.aspnet.razor.4.0.0-beta7.nupkg couldn't be extracted to "C:\src\project\packages\Microsoft.AspNet.Razor". System.IO.InvalidDataException: End of Central Directory record could not be found.. Trying to extract files individually.
Repro steps

Set an alternate cache directory: nuget config -set globalPackagesFolder=e:\nuget\packages

Verify the configuration: nuget config globalPackagesFolder, should return e:\nuget\packages

Use paket restore

Expected behavior
Downloaded packages should be put in e:\nuget\packages
Actual behavior
Downloaded packages end up in C:\Users\user\.nuget\packages
Known workarounds
Setting the environment variable set NUGET_PACKAGES=e:\nuget\packages works.

A bit more complete error log:
  ==> Trying again
Downloading Microsoft.AspNet.Razor 4.0.0-beta7
Not moving as 'C:\Users\user\.nuget\packages\microsoft.aspnet.razor\4.0.0-beta7\microsoft.aspnet.razor.4.0.0-beta7.nupkg' already exists (maybe some other instance downloaded it as well)
Download of Microsoft.AspNet.Razor 4.0.0-beta7 done in 3 seconds. (878 kbit/s, 0 MB)
Package C:\src\project\packages\Microsoft.AspNet.Razor\microsoft.aspnet.razor.4.0.0-beta7.nupkg couldn't be extracted to "C:\src\project\packages\Microsoft.AspNet.Razor". System.IO.InvalidDataException: End of Central Directory record could not be found.. Trying to extract files individually.
Something went wrong while downloading Microsoft.AspNet.Razor 4.0.0-beta7
Message: Error during extraction of C:\src\project\packages\Microsoft.AspNet.Razor\microsoft.aspnet.razor.4.0.0-beta7.nupkg.


Return group creation properties on GET request to group

The HDF5 specification expects a group that is closed and re-opened to maintain its group creation properties. Right now, because HSDS does not return the creation properties of a group, this functionality can't be implemented in any application that uses HSDS (in my specific case, the REST VOL).
An implementation similar to how a Dataset item returns the creationProperties field (https://github.com/HDFGroup/hdf-rest-api/blob/master/DatasetOps/GET_Dataset.md#creationproperties) would solve the problem.
Implementing the actual functionality of each creation property might not make sense for HSDS in particular, but it would be good not to lose the information.

I've checked in a first pass for this here: https://github.com/HDFGroup/hsds/commit/e05975589c66ff55de641f9cc9baca787bf48059.

Merged into master.


Setting warn-on-reflection in the REPL has no effect

user=> (.GetType (make-array System.Single 2 2))
Reflection warning, NO_SOURCE_PATH:0:0 - reference to field/property GetType can't be resolved (target class is unknown).
System.Array[]

user=> (set! *warn-on-reflection* false)
false

user=> (.GetType (make-array System.Single 2 2))
Reflection warning, NO_SOURCE_PATH:0:0 - reference to field/property GetType can't be resolved (target class is unknown).
System.Array[]

user=>

I believe *warn-on-reflection* is only consulted at the beginning of an evaluation, not during. So

(binding [*warn-on-reflection* true]
  (fn [x]
    (.Glorp x)))

does NOT raise a warning if evaluated in the repl with *warn-on-reflection*already set to false. *warn-on-reflection* must be set to true before that form is evaluated.

We aren't carrying *warn-on-reflection* around with repl sessions (unlike *ns* and *print-meta*, maybe stupidly`). Therefore to set it from the repl one should usually use the following somewhat cumbersome form:

(alter-var-root #'*warn-on-reflection* (constantly true))


feat: support transform function

This PR add transform function trait and following implementation:

identity
void
temporal

related issue: #32

cc @liurenjie1024 @Xuanwo @JanKaul @nastra @Fokko PTAL

Hi, I have implemented the bucket and truncate transform in icelake and I'm ready to port them. Do you prefer to port them in this PR or another PR. I'm concern whether that cause this PR so big that hard to review. Anyway, I'm ok with both way and it's up to you.  @liurenjie1024 @Xuanwo @JanKaul @nastra @Fokko

Hi, I have implemented the bucket and truncate transform in icelake and I'm ready to port them. Do you prefer to port them in this PR or another PR. I'm concern whether that cause this PR so big that hard to review. Anyway, I'm ok with both way and it's up to you. @liurenjie1024 @Xuanwo @JanKaul @nastra @Fokko

Both are good to me. I prefer to put them in one pr so that it's easier to review.


Improve utf8 offset

I want nyagos to improve the implementation of utf8.offset.
Currently, nyagos has utf8.offset, but the returned value is different from the one of the original implementation in a certain condition.
For example, utf8.offset("ab", 3) returns not 3 but 2.
This patch fixes the returned value of this kind of corner case.

Thank you !


Create a github page for the documentation

Many projects host a static website for their documentation. This can be done using github pages so that the docs are contained within the project right next to the code. I'm familiar with Hugo and it'd be nice to stick with a Go SSG so less needs to be installed. There is a free theme that looks nice geekdocs but I'm not particular and we may want to customize this anyway.

k0s uses github pages and we can leverage their project structure to get everything up and running
The detailed docs should be within the docs folder of the project. Certain markdown files may need to be outside the folder so that github can find them in the github UI. Hugo should be setup to know about these
A makefile command make docs should be added to run the docs locally while working on them
A github action should be setup to publish updates to the docs when a release is made. This may be out of scope of this issue

And sometimes it goes back and forth, like on https://containerd.io/docs/getting-started/

Moved to https://github.com/containerd/containerd/blob/main/docs/getting-started.md

This is satisfied by #215 and @227, right?

@2rs2ts Correct. Thanks for pointing that out. This can be closed


[TKW] Modify Wave Codegen and runtime to run natively on ROCM tensors

This PR introduces zero-copy runtime/codegen work on top of Wave. This means, Wave can take in torch.Tensor who lives on the GPU and read/write/operate on them directly, without allocating new memory on GPU. This in theory should make Wave's eager mode much more performant. In order to achieve above, we added:

Introduce "inplace" compilation flag in compile_and_invoke, this is to enable the zero-copy runtime/codegen mode. Currently the old/default path is still maintained for iree_ref.
Implemented inplace_invoke that takes in the inputs and outputs of kernel as torch.Tensors on GPU, and apply dlpack to get zero-copy move to IREE bufferview. It also treats the output tensors as regular argument since with modification in dispatch_codegen we will be able to write to output tensors in place.
Added some logic for "inplace" mode to figure out which UUID is the input torch.Tensors coming in from and instantiate the HalDevice based on that UUID.
Modification to dispatch_codegen S.T kernel we generate have signature that is ordered as (inputs, outputs, dynamic_dims), instead of (inputs, dynamic_dims, outputs).
Modified host_codegen to use output also as an argument(by using kernel_buffer_bindings instead of kernel_input_bindings in argument generation. Additionally, we also specified the outputs as tied_operands. This is what let us write/modify data of our arguments, as opposed to allocating new memory to write the results to.
Since now in host_codegen, outputs are also arguments, we need to add a fix to generating of arguments that represent dynamic dim to not repeat themselves.
Modified pytorch pin and tests to use torch ROCM.

.to("cuda") copypaste in tests is not ideal. I think it's better to create our own versions of randn and zeros in utils (which call torch impls and immediately do to("cuda")) and use them.

Thanks for the comment @Hardcode84, do you perhaps some examples on this? I can't think of a way at the top of my mind on how to do it while making it look cleaner than just .to("cuda") haha

@Hardcode84 I see I see, will do that, thanks! :)

something like
def randn(*args, **kwargs):
    return torch.randn(*args, **kwargs).to("cuda")

And put into wave/utils.py

Done(I think), thanks for the tip! :)


fix(avm-simulator): always set revertReason when reverting

Part of the current setup seems to assume that a simulation reverts if and only if there's a revertReason. This is why some e2e tests were failing to see the revert (and throw an exception) when the revert message was empty.

#6297  👈
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @fcarreiro and the rest of your teammates on  Graphite


Array.of(...).optional does not work as expected

Can't define optional array attributes with  Array.of(...).optional
To Reproduce
require "dry-struct"
class TestStruct < Dry::Struct
  attribute :id, Dry::Types["string"]
  attribute :arr, Dry::Types["array"].of(Dry::Types["string"]).optional
end

TestStruct.new(id: "abc")

will raise:
[TestStruct.new] :arr is missing in Hash input (Dry::Struct::Error)
Expected behavior
I expect it not to raise any errors.
Your environment
dry-struct (1.1.1)

Ruby version: ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]
OS: Docker container FROM ruby:2.6.5

This is not a bug. .optional is related to the value, to the key. If you want the key to be optional, use attribute?. See the docs: https://dry-rb.org/gems/dry-struct/1.0/recipes/#tolerance-to-missing-keys


Mocha requires Electron to be installed globally

Hello,
I used mocha to test my Electron app and got an error: "Can not find 'electron' in the $PATH and $ELECTRON_PATH is not set. Please either set $ELECTRON_PATH or 'npm install electron'". My workspace contains electron and not the machine itself. Is there a way I could circumvent the installation of Electron on my build machine? As, Electron will in turn require Node and NPM on the build machine. I am not sure if Spectron can help achieve the goal.
Thanks!

As, Electron will in turn require Node and NPM on the build machine

How do you imagine you would run mocha tests with node and NPM?
Also when you say mocha I think you mean electron-mocha.  To use that tool you need to either npm install electron or just npm install with Electron in your package.json.
Regardless however, if you have issues with electron-mocha please raise them on the correct repository.

I am not sure if Spectron can help achieve the goal.

Spectron runs in whatever test runner you want, it is test runner agnostic as it were 👍


Package request: Unrud/video-downloader

Project description
This is an easy video downloader app, for youtube or other websites.
I build it manually from source until now.
I put here the code, because the python-wrapping is quite tricky (for a Nix newbie like me).
If it can help...
PS : even if it is not the place to do that, I'm open to advices to improve my nix-usage (via private message or anything). Thanks !
{ config, lib, pkgs, ... }:
let
  pname = "video-downloader";
  version = "v0.12.8";
  rev = "29c651584b3170f31d6825a86847874a65c5d70c";
  sha256 = "KtwJH461HQHgAxqhJNCXDeMQ2PUs+m3+NJFdfxCc60A=";

  python =
    with import <nixpkgs> {};
    python3.withPackages (ps : with ps; [ pygobject3 yt-dlp ]);

in
{
  environment.systemPackages =
  let
    video-downloader =
      with import <nixpkgs> {};
      stdenv.mkDerivation rec {
        inherit pname;
        inherit version;

        src = fetchFromGitHub {
          owner = "Unrud";
          repo = "${pname}";
          inherit rev;
          inherit sha256;
        };

        nativeBuildInputs = [
          desktop-file-utils
          appstream-glib
          meson
          ninja
          pkg-config
          python3
          wrapGAppsHook4
        ];

        buildInputs = [
          gtk4
          libadwaita
          haskellPackages.gi-gdk
          haskellPackages.gi-gtk
          yt-dlp
          ffmpeg
        ];

        preFixup = ''
          wrapProgram $out/bin/$pname \
            --prefix PYTHONPATH : ${python}/${python.sitePackages} \
        '';

      };

  in [
    video-downloader
  ];

}

Metadata

homepage URL: https://github.com/Unrud/video-downloader
source URL: https://github.com/Unrud/video-downloader
license:  GPL-3.0 license
platforms: linux

Duplicate of https://github.com/NixOS/nixpkgs/issues/239832


[Monitor] Ask users to consent during APM migration

This is to ask users to consent during APM migration which is described in https://github.com/Azure/azure-cli/issues/14787.

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

If this PR is for a new extension or change to an existing extension, use the following to try out the changes in this PR:
docker run -it microsoft/azure-cli:latest
export EXT=<NAME>
pip install --upgrade --target ~/.azure/cliextensions/$EXT "git+https://github.com/jsntcy/azure-cli-extensions.git@apm-migration#subdirectory=src/$EXT&egg=$EXT"

Monitor


Align definition of API "time" parameter with WFS 3 "datetime" parameter

The STAC definition for the time parameter is currently "Single date, date+time, or a range ('/' separator), formatted to RFC 3339, section 5.6"
There are also several syntax and semantic differences:

WFS 3 now calls this "datetime" http://docs.opengeospatial.org/DRAFTS/17-069r1.html#_parameter_datetime .  Our examples of WFS 3 in examples.md are wrong wrt to this.
Duration syntax is  not supported.
ranges allow open and closed datetimes and intervals.
RFC 3339 defines complete datetime w/ timezone, so a date only (e.g, 2019-01-01) is not a valid string. Our only /stac/search example in examples.md does this.
Our examples with an interval like P1Y2M10DT2H30M are not supported.  In WFS 3, an interval is explicitly two strings separated by /, of which the strings must be an RFC3339 datetime or ..

I think the work is simply to align our name and definition of this parameter with what WFS 3 has.

So we inherit this from WFS or is this defined in STAC openAPI files? If this is inherited from WFS, this will probably solve with #472

See #521 for discussions.

Done with #525.


OPSEXP-2603 Adopt jekyll for docs website

Add workflow and config for publishing docs via jekyll on github pages.
Look and feel customized with the current alfresco docs.
Ref: OPSEXP-2603

We can't really remove that --- block which is used to define variables used in jekyll template rendering (https://jekyllrb.com/docs/front-matter/) but we can keep the h1 titles and they even look better on the website


message field not supporting full text search for database logs

The message field that is created for database logs does not seem to support full-text searching
To do

[ ] Figure out why message does not support full-text search for database logs
[ ] Apply fix
[ ] Deploy to dev
[ ] Deploy to stage
[ ] Deploy to prod

I think this works as long as the pattern is active

Fixed via https://github.com/cloud-gov/opensearch-boshrelease/pull/172


Error Installing with pnpm

OS: Manjaro Linux x64
pnpm version : 7.9.0

I will look into it.

This should be fixed with version 0.0.2. Let me know if it works.


rename master branch to devel

Hi organizers,
Perhaps Charlotte @csoneson or someone can change the default branch name to align with Bioconductor's code of conduct.
See here for more information: http://contributions.bioconductor.org/branch-rename-faqs.html
I can also take care of this, if you'd like.
Best regards,
Marcel

Thanks @LiNk-NY - I don't think I have permissions to change the branch name, so if you could do that, it would be great.

Done! Thank you Charlotte!

Thank you!


[WIP] Fix testwineryrepositoryclient

This enables a test of the Winery Repository Client. - A Java-wrapper around the REST API.

TODO Check usages at https://github.com/saatkamp/topology-prodec/blob/67e47227b7944336d1eb13e1c53338300c2ef7b0/src/main/java/io/github/saatkamp/TopologyProblemRecognizer/PrologFactTopologyGenerator.java#L23 whether there are methods used which are removed here.

In the new version, I did not remove any methods to avoid issues. All tests enabled and fixed.


Fixes in the verification scripts and documentation

Added renderer in the curl command of publish-verification-info.sh. This is necessary because we changed the URL of the web application that stores the published verification results from http to https
Added the necessary commands in the extract-verification-info.sh script so that it works in MAC as well.
Updated the documentation that explains how to extract the logs of the verification process to match the current status.
Added a section in the documentation that explains how to publish the verification process in the certification web application.

@jsfakian please address comments from Rene. If you did already, please resolve the conversation or respond with "done" on each message, otherwise is not  clear is this PR abandoned, or everything done and we merge it.

@jsfakian please address comments from Rene. If you did already, please resolve the conversation or respond with "done" on each message, otherwise is not clear is this PR abandoned, or everything done and we merge it.

Sorry for the delay @rouming.


trial to get signing to work on windows

Doesn't look like it did... :(

Doesn't look like it did... :(

First need to merge, can only release from master


Can we train it on GPU?

@miteshgithub
fine_tune.py and inference.py are automatically executed using gpus if your machine has more than one gpu and the backend library `tensorflow-gpu' is correctly installed. Please refer to https://www.tensorflow.org/install/gpu for details.

Thanks a bunch! One more question. I trained two models: one with 3 class and high resolution images 1080p, model trained with good accuracy. But when I trained another model with 10 classes with less than or equal to 720p then I am not getting accuracy. I run more than 25 epochs with same lr as in previous model. Is image resolution a problem?


ClangImporter: Adjust call to BinaryOperator constructor after clang change r298877.

Thanks @anemet for the fix.

@swift-ci Please smoke test and merge

@shahmishal Can you force merge this? CI is still working on it but everything compiled so it should work.

@eeckstein We might also have to cherry pick this fix in swift-4.0-branch.

It's https://github.com/apple/swift/pull/8605


Segmentation fault on arrayjoin

Hey @augustocdias,
Awesome work on this repo! I am using it for a personal project and noticed array join causes a segmentation fault. The segmentation fault occurs when I attempt to join a specific number of images, the example I provided shows my attempt to join 7 images. However, it also fails on a size of 8, 9, 10 and 11. If I try to join 4 images it succeeds. Very odd behaviour! I attempted to read the source code but it looks fine to me. I attempted to use the libvips command line and it works fine with any size of images in an arrayjoin. I looked at the source code for arrayjoin but saw no obvious flaws. Might be a problem with how bindgen generated the functions, not sure if it also effects other libvips commands in your library.
Example code:
fn main() {

    // Init Libvips
    let app = VipsApp::new("Libvips", false).expect("Cannot initialize libvips");

    let mut images  = vec![
        VipsImage::new_from_file("turtle.png").unwrap(),
        VipsImage::new_from_file("turtle.png").unwrap(),
        VipsImage::new_from_file("turtle.png").unwrap(),
        VipsImage::new_from_file("turtle.png").unwrap(),
        VipsImage::new_from_file("turtle.png").unwrap(),
        VipsImage::new_from_file("turtle.png").unwrap(),
        VipsImage::new_from_file("turtle.png").unwrap(),
        ];

    let result = ops::arrayjoin(&mut images[..])
            .and_then(|image| image.image_write_to_file("./output.png"));
    match result {
        Err(error) => {
            println!("{}", error);
            println!("error: {}", app.error_buffer().unwrap());
        },
        Ok(_) => println!("Image created.")

It worked perfectly in C
    VipsImage *in[7];
    VipsImage *out;

    for (int i = 0;  i < 7; i++) {
        in[i] = vips_image_new_from_file("/Users/augusto.dias/projects/dali/tests/resources/img-test", NULL);
    }

    vips_arrayjoin(in, &out, 7, NULL);

    vips_image_write_to_file(out, "./output.jpeg", NULL);

There must be something wrong in the rust to C array conversion.
I'm not sure what is going wrong. As far as I researched this is the correct way to do it. I'll try to look into it

Apparently the problem is being caused by using iterators to generate the bindings input.
This code works fine:
unsafe {
        let filename = CString::new("./img-test.jpeg").unwrap();
        let out_file = CString::new("./output.png").unwrap();
        let mut images = vec![
            bindings::vips_image_new_from_file(filename.as_ptr(), NULL),
            bindings::vips_image_new_from_file(filename.as_ptr(), NULL),
            bindings::vips_image_new_from_file(filename.as_ptr(), NULL),
            bindings::vips_image_new_from_file(filename.as_ptr(), NULL),
            bindings::vips_image_new_from_file(filename.as_ptr(), NULL),
            bindings::vips_image_new_from_file(filename.as_ptr(), NULL),
            bindings::vips_image_new_from_file(filename.as_ptr(), NULL),
        ];
        let mut images = dbg!(images);
        let mut out: *mut bindings::VipsImage = null_mut();
        bindings::vips_arrayjoin(images.as_mut_ptr(), &mut out, images.len() as i32, NULL);
        bindings::vips_image_write_to_file(out, out_file.as_ptr(), NULL);
    }

I pushed a new version to crates.io. Can you check if it fixed the problem? Basically it was crashing because I was getting a reference from the slice instead of consuming it (I'm not sure why this would fail though).

Yes, problem fixed! Augusto, you are a legend! Lightning fast reply and fix, feeling that open source love!


Update some parameters for the scheduler trigger

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: ironyee sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@ironyee : Thanks for your contribution to the Azure documentation! The author, @derek1ee, has been notified to review your proposed change.


Develop

Template now has Terraform infrastructure and acceptance testing code in place and working

This is a good working version for the EOEPCA system template. Ready to to deliver or to extend with new features.


fuse: correct nlink count for directories

Extracted code from #799

looks fine with me

Codecov Report

Merging #800 into master will decrease coverage by -0.07%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #800      +/-   ##
==========================================
- Coverage   54.23%   54.16%   -0.07%
==========================================
  Files          96       96
  Lines        7368     7377       +9
==========================================
  Hits         3996     3996
- Misses       2791     2800       +9
  Partials      581      581

Impacted Files
Coverage Δ

src/restic/fuse/file.go
79.26% <ø> (ø)
:white_check_mark:

src/restic/fuse/link.go
0% <ø> (ø)
:white_check_mark:

src/restic/fuse/dir.go
0% <ø> (ø)
:white_check_mark:

Continue to review full report at Codecov.

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

Okay then!


Added zip feature and more code refactoring

Hey @alok8bb ,
As I'd promised earlier, this is my first iteration on creating the zip feature. You can try to test it and lemme know if nothing's broken. Added some more features like allowing the user to download multiple URLs. You can look at the commits if you want more details on that

Hello @winterrdog, Sorry for the delay. I tested the build and the multiple URLs feature works perfectly. The zip feature didn't work for me, there was missing field name at line 1 column 279 error while downloading the directories. I think that is a bug because now I'm getting the same error while cloning any directory as well, and If I remember correctly, I've encountered this error before too. I got this error after successfully cloning some directories, I used the same URL to clone and it worked perfectly right after compiling but after some time I started getting the same error for every single URL.
`~/Temp
 cloneit https://github.com/alok8bb/BMI-Calculator-Android
        Getting: "https://github.com/alok8bb/BMI-Calculator-Android"

[1/3] 🔍  Validating url...
[2/3] 🚚  Downloading...
missing field name at line 1 column 279
    [+] Downloaded 1 file(s).`

Hey @alok8bb , I'll definitely check that out. Thanks for the response and effort to try out the PR . I'll be updating you soon

I used the same URL to clone and it worked perfectly right after compiling but after some time I started getting the same error for every single URL.

Maybe it's the github.com API frustrating our efforts🤔. Lemme carry out some more research

 cloneit https://github.com/alok8bb/BMI-Calculator-Android
        Getting: "https://github.com/alok8bb/BMI-Calculator-Android"

[1/3] 🔍  Validating url...
[2/3] 🚚  Downloading...
missing field name at line 1 column 279
    [+] Downloaded 1 file(s).

Woo! You do Java!?  😬 😬
😅😅🙌.
Anyways... after sometime that URL worked and got some Java that i quickly evaded!😅

there was missing field name at line 1 column 279 error while downloading the directories. I think that is a bug because now I'm getting the same error while cloning any directory as well, and If I remember correctly, I've encountered this error before too.

It's caused by serde_json's failure to correctly parse the json sent by the github.com api


Document Plaster command, configuration and version used to create this project

This would be useful if I wanted to create another, similar project.

See .\etc\Invoke-ScienceOvenPlaster.ps1.


Homework 4

https://video.drift.com/v/abpDujAs2WefXLw9rSA7zfEJg1Vk8bikQmOsnTtUyTY/

Metric
Value

alert_status
:white_check_mark: OK

bugs
0

code_smells
17

reliability_rating
A (0 Bugs)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0

Metric
Value

alert_status
:white_check_mark: OK

bugs
0

code_smells
16

reliability_rating
A (0 Bugs)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0


add image upload functionality

At some point, Sandstorm will actually disallow embedding off-site resources via Content-Security-Policy since otherwise it is trivial to leak data out of a Sandstorm app, something we'd like to prevent. (Currently, this client-side sandbox is incomplete.) - Kenton

We'll also need to modify reveal.js's CSS themes, since they currently load Google web fonts.  Perhaps add a build step that pre-fetches the various font files and adjusts the .scss to use the locally-cached copies?

Would be nice to allow uploading of more than just images. It might be useful to upload video, audio, etc. Even if off-site embeds are allowed, I might want my presentation to be entirely self-contained so Sandstorm's own backup/restore mechanisms capture the whole thing.

Agreed @ndarilek. Eventually I think Hacker Slides should integrate with a file upload app like Filedrop or Davros via the powerbox and allow any file to be embedded within a presentation.

Sounds excellent @jacksingleton . This would be the best solution for the sandstorm environment.

For the moment, there's a hacky way to do this with Davros
upload image to Davros
view image and copy the link from “Download Original”
eg:

<img src="https://16290b47747ab678fb611bf4741ss.yoursever.net/remote.php/webdav/tutorials/images/voyager.jpg" width=300>
include this link in Hackerslides, and size to fit


Missing dependencies?

I did a clean clone, fetched and built deps and tried running mix to just compile everything and got a warning.
Generated inky_zero_nerves app
You have configured application :nerves_firmware_ssh in your configuration file,
but the application is not available.

This usually means one of:

  1. You have not added the application as a dependency in a mix.exs file.

  2. You are configuring an application that does not really exist.

Please ensure :nerves_firmware_ssh exists or remove the configuration.

You have configured application :nerves_init_gadget in your configuration file,
but the application is not available.

This usually means one of:

  1. You have not added the application as a dependency in a mix.exs file.

  2. You are configuring an application that does not really exist.

Please ensure :nerves_init_gadget exists or remove the configuration.

Having looked at the issue a bit more, I realise that it's just a matter of configuration not looking at the mix target. It can probably be resolved by creating template config files for the supported targets.
config.exs could contain something like import_config "config.#{Mix.Project.config()[:target]}.exs"

Did you fix this while working on the other stuff?

Nope. It requires a bit of thought and is just a printed warning, so it can wait.


forecast model slides

missing a picture for statistical models but otherwise consider this to be all we need at this stage

these look great to me too :)

any suggestion for a figure for statistical models?

Anything from here work? https://www.pnas.org/doi/full/10.1073/pnas.2111453118?doi=10.1073%2Fpnas.2111453118

Or our old friend MUNI-ARIMA
https://www.math.muni.cz/~krausd/covid19stat/covid_pred_dashboard.html?v=2022-01-26

or https://krausstat.shinyapps.io/covid19global/


Add category post stream endpoint

https://www.pivotaltracker.com/story/show/154940601

@alanpeabody Do you want me to add post view tracking here or do you want to hit it after it's merged?

Also, when I fixed the merge conflicts in your PR, the new files that I created were accidentally carried over. I guess git stash doesn't stash newly created files :(

@Justin-Holmes I think the biggest thing this is missing is support for the new category featured stream.
I am opening a PR with post view tracking support.


Sometimes GroupNext is being typed into the text field on web demo

Steps:

Run "Chromium	90.0.4430.212 (Developer Build) built on Debian 11.0" on Linux/X11, having set Caps Lock key to switch between input languages
Go to https://emilk.github.io/egui/#demo
Do various iteractions, focusing on the text field
Type some text into text field, switching between languages using Caps Lock

Expected:
Text appears when I input letters, but nothing new appears when I switch the language.
Actual:
Rarely, GroupNext starts appearing when I press the language switching key. Text example: GroupNextsdfGroupNextываGroupNextsdfGroupNext
Going to other control, then back to text field seems to resolve issue. The same maneuver can reintroduce the bug.
For example, repeatedly pressing Caps Lock while focusing the text field and the button below alternately with a mouse seem to reproduce it more or less reliably.

<offtopic> Can there be a thing that works like egui, but uses native text fields, positioned on top of the canvas in browsers? </offtopic>


auto Scale tableau according to viewport width

We need the ability to scale down tableaus (flag based) for different viewports widths. There can be multiple solutions to this:

Using several breakpoints and transform: scale accordingly.
Calculating dynamic width of the wrapper component using calc().
Using iframe resizer https://github.com/davidjbradshaw/iframe-resizer , it has good set of defaults for cross content scaling.

Looks good


Add space at the bottom of user profile view

At present, we don't leave any space below the "Send private message" button in the user profile view when the screen is full. It would be better to allow the user to scroll up further.

Adding some bottom margin on that button, like 8px or 16px, should solve the problem nicely. Posting a couple of screenshots on the CZO discussion thread for this issue would be a good start.

Thanks, @olof-sky! I've just assigned this issue to you.

I couldn't get the setup done correctly, other people had same issues but the solutions didn't fix anything for me. I think It's better to reassign this to someone else. @chrisbobbe

OK! I'm sorry that the development environment setup didn't work for you, and I'm curious what went wrong. It's possible that the answer could help us improve our setup documentation.
Thanks for trying, and we're always available to help in the Zulip development community if you decide to try the setup again.

I might post the issue in the community later, maybe someone have a clue on what went wrong. Would be nice to help out with the development!
I'll comment here again and take the issue if i get it to work properly.

Hi Alya, Chris,
I've raised PR to address this issue.
I've tested the same on my end on ios-simulator.
I'm not aware if any other tests are needed.
Kindly help me with review.

@zulipbot claim


Send JSON-RPC rework

The Access Node is making a JSON-RPC api available in addition to its already existing HTTP-gRPC interface. There are many benefits to migrating over to the JSON-RPC api. This story is about adding support for the JSON-RPC Access Node, and having it as our main form of communication once it becomes available.
Expected Outcome

[ ] Remove all mention of gRPC from the flow-js-sdk repo
[ ] The flow-js-sdk communicates with the Access Node via JSON-RPC

Closing in favour of: https://github.com/onflow/flow-js-sdk/issues/679


Add ".graphqls" as a GraphQL file extension

Description

Often, developers use .graphqls specifically for GraphQL schema definitions to separate them from GraphQL queries, which are put into .graphql files.
It's easy to know what's in a file by just looking at its extension. This is especially useful in projects where both schema and queries are used. For example, one could have .graphql files for queries which tests their schema defined in .graphqls files. Or in a frontend project where an apollo client schema is defined in a .graphqls file while using .graphql files to define the queries.
Checklist:

[x] I am associating a language with a new file extension.

[x] The new extension is used in hundreds of repositories on GitHub.com

Search results for each extension:

https://github.com/search?l=&p=100&q=type+extension%3Agraphqls&type=Code

[x] I have included a real-world usage sample for all extensions added in this PR:

Sample source(s):

https://github.com/magento/magento2/blob/779f39c71e3b801c9a9e8650f2acd05889643daf/app/code/Magento/CatalogGraphQl/etc/schema.graphqls
https://github.com/digiaonline/graphql-php/blob/f9b538f074f961c74bfe941106b7a1da9630e404/tests/Functional/Language/schema-kitchen-sink.graphqls

Sample license(s):

Open Software License ("OSL") (Magento)
MIT (graphql-php)

[ ] I have included a change to the heuristics to distinguish my language from others using the same extension.

About the sample file, do I just put the schema-kitchen-sink.graphqls from https://github.com/digiaonline/graphql-php in the sample folder (MIT license is probably best)? Should I add a comment in the file for illustration?

You need to add at least one, you can add both. Both licenses look okay. It's better if you don't modify the file.

I added both schema files and the check passed.


Cannot run when yarn uses global cache as repository and the project and cache are in same drives

Describe the bug
Follow up to https://github.com/vitejs/vite/issues/15801#issuecomment-1934173136
My setup:
D:\Company\Workspace\
-                    vite-15801
-                    programs\.yarn\Berry\

So https://github.com/mcenkar/vite-15801/ is checked out to d:\Company\Workspace\vite-15801\ and yarn global cache is in d:/Company/Workspace/programs/.yarn/Berry/
Steps to reproduce:

checkout mentioned repo to mentioned folder,
in  project's .yarnrc.yml add entry: globalFolder: "d:/Company/Workspace/programs/.yarn/Berry/"
yarn
yarn dev

Reproduction
https://github.com/mcenkar/vite-15801/
Steps to reproduce
No response
System Info
NA

Used Package Manager
yarn
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

I was able to reproduce. But this is a bug in yarn. yarn's pnp.resolveToUnqualified returns a incorrect path.
const result = pnp.resolveToUnqualified('vue', 'D:/foo/vite-15801-master', { considerBuiltins: false })
console.log(result)
// D:\foo\vite-15801-master\.yarn\__virtual__\vue-virtual-42724c22b5\4\d:\foo\.yarn\Berry\cache\vue-npm-3.4.15-11fe9fcc84-10c0.zip\node_modules\vue\

https://github.com/vitejs/vite/blob/76f30ae23b92f9af910ec02d98e2baaefa12141f/packages/vite/src/node/packages.ts#L66-L68
Closing as this is not a bug in Vite. Please report to yarn.