Lazy but finite reduce for recursive data structures and an unbounded number of reducers  (see comments)

Good day everyone!
Over the past weeks we've been working with arbitrarily nested objects and arrays (mixed altogether), up until we've spotted the necessity of a recursive reduce function that could be used to transform, but at least to obtain, certain if not every property of this nested structure, which could also be stopped at any given point if a condition is sufficient. Essentially, we've been looking at what in haskell would be a fold takeWhile, but for deep/recursive objects/arrays.
After several iterations, the function valid for these use cases that we haven't been able to simplify anymore is the following:
// Recursive fold takeWhile (like in haskell)
// fn is the iterator
// obj is the iteratee
// r is the accumulator
const foldWhile = (fn, obj, r = []) => {
  let innerFold = o => !(typeof o === 'object') ? o
    : Object.keys(o).every(k => fn(r, o[k], k) && innerFold(o[k]))
  innerFold(obj)
  return r
}

Note: this is implemented with lodash in our code, but since it doesn't need lodash, I'm using generic es6 to show what it does.
Note2: Besides using functions from the Ramda ecosystem, this would benefit from a trampoline.
The main point of the function is combining the use of every recursively to stop at any point of the (lazy) evaluation of the nested object/array, with the use of an accumulator, which is handled to the user.
To see use cases and tests, see this gist: https://gist.github.com/sadasant/de106b879c61f21797dffdaa577f7868
We have been looking for opensource alternatives, but we haven't been successful.
I know that there have been several issues in this repo about lazy evaluation and nested data structures, however there doesn't seem to be an agreement on how to combine both the nested structures and the stopping of the fold at any given point. I know that Ramda has reduceWhile and until, but they don't work over nested structures, right?.
Having that said,
I wonder if this is interesting to anybody. We would definitely prefer using opensource instead of maintaining our own code.
Thank you for the time.

( I also asked this on lodash https://github.com/lodash/lodash/issues/3058 )

Here's an alternative that works for infinitely many reducers (pardon my lodash):
// Recursive reduce nested objects of any kind that
// stops at any point if a falsy value is returned.
export const flowReduce = (...fns) => (obj, acc = []) => {
    if (typeof obj !== 'object') return acc
    let _acc = acc
    let type = typeof acc
    _.every(k => {
        let cont = _.every(f => {
            let r = f(_acc, obj[k], k)
            if (typeof r === type) _acc = r
            return r
        }, fns)
        if (cont) _acc = flowReduce(...fns)(obj[k], _acc)
        return cont
    }, _.keys(obj))
    return _acc
}

Simple test with mutable referenced accumulators:
expect(f.flowReduce(acc => acc < 3, acc => ++acc)([ 1, 2, 3, 4 ], 0)).to.equal(3)

One test from the ones we did with foldWhile:
        const target = {
            something: {
                mostly_empty: {}
            },
            deep: {
                object: {
                    matching: {
                        key: 'value'
                    }
                }
            }
        }

        let found = f.flowReduce(
            r => r.length < 2,
            (r, v, k) => k === 'matching' ? r.concat({ [k]: v }) : r
        )(target)

        expect(found).to.deep.equal([{
            matching: { key: 'value' }
        }])

Full tests: https://github.com/smartprocure/futil-js/pull/61/files

Note: If you are available, please give feedback on better code styles or any improvement anyone might spot 👍 thank you!

The name lacks the every part, which is important. Perhaps the name should be: manyfoldwhile 😂 flowReduceWhile ? flowEvery... recursiveFlowEvery ... 😵

Studied a bit and found out that the foldWhile/flowReduce were an implementation of an automata, a finite state machine, but with non-deterministic data structures and an unbounded number of generators... which is generalized in Category Theory as the Groupoid Category. See https://en.wikipedia.org/wiki/Automata_theory#Connection_to_category_theory
This implementation satisfies exactly the same tests as flowReduce, but is completely stripped of lodash utilities for clarity.
The name is particularly tempting since is easy to pronounce, funny enough to remember, and technically precise 😱
Full tests: https://github.com/smartprocure/futil-js/pull/63/files
Please review 😻
// General variable automata is the definition of
// non-deterministic input iterators over discrete state changes
// aka groupoid category
// See: https://en.m.wikipedia.org/wiki/Automata_theory#Connection_to_category_theory
export const groupoid = (...funs) => function G (field, acc = []) {
    if (typeof field !== 'object') return acc
    let accepted = acc
    let state = acc
    let keys = Object.keys(field)
    let key = keys.shift()
    let fN = 0
    while (state !== false) {
        accepted = state
        if (!funs[fN]) {
            key = keys.shift()
            fN = 0
        }
        if (!key) break
        let result = G(field[key], funs[fN](state, field[key], key))
        if (result !== true) state = result
        fN++
    }
    return accepted
}

I don't want you to think you're being ignored.  I'm interested by this, but have not been able to dedicate any real time to it.  I expect to look at it over the weekend.

Hi!
Don't worry! Any time you can give is valuable \o/ I've been crazy trying to make this the most solid / reusable / etc. Any feedback is welcome!

If this issue can be useful to define a solution for these general use cases, even if that means not using any of my code at all, I would have done my job here, since we don't want to maintain any form of private (and probably biased) code, and since having this peer reviewed and available externally will better help us reuse it in many places in our codebase. So thanks for whatever is posible!

(just to keep this up to date with lodash issue, and to share the picture)
I know that all of this has been somewhat confusing, but here's the argument on favor of Groupoid in a picture as pretty as I could come up with. Please feel free to counter it, what I really want is to find a general solution ♥

Here is a new version that allows breadth first, bottom to top depth and breadth first and allows easy maps/automorphisms (which shouldn't be hard with any general reducer/endomorphism) because it sends the full parents path to the reducers. The implementation is focused on making it work with some clarity rather than making it pretty (or even perfect), but the ideas are there!
// General variable automata is the definition of
// non-deterministic input iterators over discrete state changes
// aka groupoid category
// See: https://en.m.wikipedia.org/wiki/Automata_theory#Connection_to_category_theory
// Use it as:
//   groupoid(reducer1, reducer2, ...reducerN)(field, ...)
// Each reducer will receive:
//   - The result of the previous reducer
//   - The current value
//   - The key where the current value is located
//   - The key names of the parents of the current key
export const groupoid = (...funs) => function G (
    field, // input n-dimensional field
    acc = [], // accumulator
    breadth, // falsy by default
    orientation = 1, // > 0 by default
    path = [] // only used for recursion purposes
) {
    // return the current accumulator if the field is not iterable
    if (!field || typeof field !== 'object') return acc
    let accepted = acc
    let state = acc
    let keys = Object.keys(field)
    let fN = 0
    let nextBreadth = []

    if (orientation < 0) keys = keys.reverse()
    let key = keys.shift()

    // unless the user stops us (or we don't have more keys)
    while (state !== false) {
        accepted = state
        let f = funs[fN]
        // if we have no more functins to look at,
        // get the next key and reset the function
        // counter. Lets us avoid having two whiles.
        if (!f) {
            key = keys.shift()
            fN = 0
            f = funs[fN]
        }
        if (!key) break
        let val = field[key]
        // result of reducer f[fN]
        let result = f(state, val, key, path)
        // Either we accumulate iterables to go deeper
        // after all the current level (breadth),
        // or we go recursive right now.
        if (breadth && val && typeof val === 'object') {
            nextBreadth.push({ val, key })
        } else {
            result = G(val, result, breadth, orientation, path.concat(key))
        }
        if (result !== true) state = result
        fN++
    }
    if (nextBreadth.length) {
        accepted = [accepted].concat(nextBreadth).reduce((a, { val, key }) => {
            let result = G(val, a, breadth, orientation, path.concat(key))
            if (result === true) return a
            return result
        })
    }
    return accepted
}

It passes all the previous use cases, and some other more. Here's a reversed breadth first test:
   it('groupoid reverse breadth first for nested objects', () => {
        const target = {
            something: {
                matching: {
                    key: 'value3'
                }
            },
            matching: {
                key: 'value1'
            },
            matchingToo: {
                key: 'value2'
            },
            deep: {
                object: {
                    matching: {
                        key: 'value4'
                    },
                    matchingToo: {
                        key: 'value5'
                    }
                }
            }
        }

        let found = f.groupoid(
            (acc, val, key, path) =>
                key.indexOf('matching') >= 0
                ? acc.concat({ [key]: val, path }) : acc
        )(target, [], true, -1)

        expect(found).to.deep.equal([{
            matchingToo: { key: 'value2' },
            path: []
        }, {
            matching: { key: 'value1' },
            path: []
        }, {
            matchingToo: { key: 'value5' },
            path: [ 'deep', 'object' ]
        }, {
            matching: { key: 'value4' },
            path: [ 'deep', 'object' ]
        }, {
            matching: { key: 'value3' },
            path: [ 'something' ]
        }])
    })

And here is a proof of concept of a string map made with a groupoid:
    it('groupoid changing values in place, like a map', () => {
        let target = {
            key: 'root',
            items: [{
                key: 'x',
                items: [{
                    key: 'y',
                    items: [{
                        key: 'z',
                        extra: 'blah'
                    }, {
                        key: 's'
                    }]
                }]
            }]
        }

        const fixArrayKeys = k => isNaN(parseInt(k)) ? k : `[${k}]`
        const fixPath = _.flow(_.map(fixArrayKeys), _.join('.'), x => x.replace(/\.\[/g, '['))
        const mapStrings = (fn, obj) => f.groupoid(
            (o, v, k, path) => {
                if (!_.isString(v)) return o
                let loPath = fixPath(path.concat(k))
                return _.has(loPath, o) ? _.set(loPath, fn(v), o) : o
            }
        )(obj, obj)

        const result = mapStrings(x => x.toUpperCase(), target)

        expect(result).to.deep.equal({
            key: 'ROOT',
            items: [{
                key: 'X',
                items: [{
                    key: 'Y',
                    items: [{
                        key: 'Z',
                        extra: 'BLAH'
                    }, {
                        key: 'S'
                    }]
                }]
            }]
        })
    })

Full tests: https://github.com/smartprocure/futil-js/pull/63

i'm interested in seeing a PR for this

Hi! I can do it (probably starting in 12 hours), however I was wondering if we could get feedback on the ideas, specially on the approach, for example, on what's exposed: groupoid( ...functions )( targetObject, accumulator, < breadth? , orientation? >), would it be better differently?, perhaps something else could be better?

(thanks for the interest 😍)

we have almost no variadic functions. So the first thing I would recommend is taking a list (or stream?) of functions rather than a variable number of arguments:
export const groupoid = ([funs]) =>
//...

we also have no functions with optional params, so you may want to consider that:
export const groupoid = (...funs) => function G (
    // REQUIRED
    field, // input n-dimensional field
    // Optional parameters
    acc = [], // accumulator
    breadth, // breadth first is falsy by default
    orientation = 1, // > 0 by default, goes bottom to top if < 0 // TODO: Expose a groupoidRight to make this easier
    path = [] // only used for recursion purposes, to expose the parent keys of the current key value pair
)

One possibility would be to expose e.g. bfs and dfs as separate functions derived from this one, and maybe not have groupoid on the public API at all?
Then let's consider whether the accumulator should in fact be a required param; I'm inclined to say it should -- let the user explicitly control the shape of the output:
export const groupoid = [funs] => curry((field, acc) => //...etc );

Then we should consider what order of arguments is optimal for this function. Which things are least likely to change? Different functions over one field? Or different fields using the same list of functions?
This looks very similar to a fold but with a list of functions instead of one. But the sig of the funs takes 3 arguments; can we align it with the binary fold-style function?
I also agree a generic trampoline helper may be helpful here. A long time ago we had one ... maybe that was in the other lib ...

In the PR I can also avoid recursuion, the code won't be nice but we won't be having maximum stack errors ✌

got it @buzzdecafe ! I'll follow your guidelines 👍👍👍

@buzzdecafe also, yes! this is just a fold, but goes deep. So in summary, we want:

A generic trampoline? or just avoid recursion?
A ... depth first deep fold?
A ... breadth first deep fold?
The Right version of those above? (for the orientation?)

if you are not recurring on G you may be able to curry the whole thing then?
// is the sig something like this?
// g :: [((a, x) -> a)] -> a -> Object -> [Object]
const g = curry(([funs], acc, field) => {
  // etc.
});

btw, this sig is appealing to me since it looks so much like reduce, the connection is obvious.

the connection is obvious yes! All I need is... a deep reduce that conditionally stops.

In fact you can use the groupoid just like reduce, it works for one reducer and one-dimensional input fields.

wow this is starting to look like a lot of work! For now, it may be easiest to implement iteratively; let's not overload this. Maybe do the dfs version first, and leave the right version for a future PR. I wanna keep this manageable for you and for anyone reviewing this

In fact you can use the groupoid just like reduce, it works for one reducer and one-dimensional input fields.

That makes sense, it is more general.

It's not that much work! I have a working implementation 😂

Proposal: Four functions that,

Stop the iteration if a false value is sent.
Ignore true results from the reducer passed.
Accept only one reducer since we can compose before sending.

depthFold(reducer, [accumulator], target)
breadthFold(reducer, [accumulator], target)
depthFoldRight(reducer, [accumulator], target)
breadthFoldRight(reducer, [accumulator], target)
@buzzdecafe would that be fine for you? I can make separate PRs (or all in one PR!)

Stop the iteration if a false value is sent.

This makes me a little nervous. Transducers e.g. uses a {reduced: true} object as the token to terminate the iteration.

@buzzdecafe sure! we can stop if R.reduced is passed.

not suggesting that necessarily, esp. since transducers may get pulled from core lib. but looking for a better way to indicate "stop iterating"

Well, unless we have R.reduced, I think we should trust on false, since it might be obnoxious to tell users to use some value other than false for any conditional function. I personally don't see much benefit of allowing boolean values to be accumulated.

You know the right answer, @buzzdecafe. :stuck_out_tongue_winking_eye:

@davidchambers what's the right answer? 👀

I expect @davidchambers is suggesting using an ADT to handle either the return case or the recurse case, and pattern matching on the type to do the right thing.

@buzzdecafe what's an ADT?

We can separate the reducer with the conditional stop, but I think it's better to use the reducer... at least prettier! But however is better for Ramda \o/

@buzzdecafe wins the prize!
Rather than have the function return a value of type a we could have it return a value of type Maybe a, where Nothing (a value of type Maybe a) would signal completion. As we would not even inspect the a value, there would be no special cases. S.unfoldr uses this approach (whereas R.unfold requires the function to return either false or an array, which is rather odd).
To avoid introducing the Maybe type we could use Array a as the return type: [] would signal completion; [42] would signal that the computation should continue with 42.

@davidchambers woah! [] to stop is wonderful! Thanks for the idea :v:

@davidchambers wait, what if I only want to aggregate some of the values that pass through the reducer? I can be printing empty arrays for a while.

I'm not following this issue closely. What I'm suggesting is using [] rather than false (or some other sentinel value) and using [x] rather than x. If x is [1, 2, 3], say, you'll use [[1, 2, 3]].

I'm a bit late to the party here, but instead of using a specific value or object structure, wouldn't this be a good use case for a Symbol? I think it easier than introducing specific types or structures and is part of the official JS standard

@davidchambers no, no, the reducer returns always the accumulator, so if at some point it returns [x], x, [z] all of them are valid changes to the accumulator

Perhaps some code would help to convey my idea.
Before:
//  result :: a
var result = f(x);
if (result === false) {
  // terminate
} else {
  // continue with `result`
}

After:
//  result :: Array a
var result = f(x);
if (result.length === 0) {
  // terminate
} else {
  // continue with `result[0]`
}

Note that in the first case false is treated specially, whereas in the second case result[0] can be absolutely any JavaScript value.

@davidchambers if I'm following what you're saying, always wrapping results in array and returning [] to stop is the same as just returning undefined, isn't it? That's also a valid option - return undefined to stop, and if you want no value you return null. With that said, in general I think any kind of value has the potential to be what you're looking for in JS, so the only way to know for sure that the return value is not an accumulator result is to make something specific to the method.

See my comment above, @daedalus28. There is absolutely no possibility of conflict. [undefined] signals continue with undefined, [[1, 2, 3]] signals continue with [1, 2, 3], etc. The array's length (0 or 1) determines whether or not to terminate.

@davidchambers ok I'm buying it, but only if Ramda already does that somewhere else.

Got it, it's treating an array as a maybe where the array is just the container, which either has stuff in it or doesn't, e.g. KindaSortaLikeaMaybeContainer = x => [x]. That's neat :)
To @sadasant's point, is there any precedent of using arrays as quick and dirty functional containers?

[I]s there any precedent of using arrays as quick and dirty functional containers?

I don't think so.

@buzzdecafe are you on board with @davidchambers 's solution? It's super nice, but it needs to make sense in Ramda's context.

definitely prefer the single return type. So yes, on board.

"ADT" = Algebraic Data Type
and we should fix unfold, that is pretty gross

@buzzdecafe got it, makes sense!
PR's coming through the day and/or tomorrow.
@buzzdecafe @davidchambers @daedalus28 thank you all for the feedback!

We have a first PR for depthReduce only 😸 https://github.com/ramda/ramda/pull/2133 once we adjust it to Ramda needs, the rest of the PRs will follow quickly 😱
Please review! But thanks in advance for the all time you've already invested 🙇

Hello, @CrossEye ! I'm curious, were you able to see this? ^

@buzzdecafe @davidchambers So, I recognize I'm pretty excited about contributing 😅, but I also want to make that energy useful: and we should fix unfold, that is pretty gross, I'm guessing an unfold where the iterator is only expected to return a single-element array? or an empty array if we want to stop? I can do that o/

Since we don't have the option of using Maybe (Pair a b), we'd need to use Array (Pair a b) and assume that the array's length will either be zero or one ([] or [['foo', 42]], say).

@davidchambers I made an issue to continue there, it has a sketch of the upcoming unfold, I'll be making the PR later today :v: https://github.com/ramda/ramda/issues/2138

Actually, I just found that partial.lenses exist: https://github.com/calmm-js/partial.lenses
L.select([L.elems, "y"], [{x:1},{y:2},{z:3}])
L.selectAs(x => x > 3 ? -x : undefined, L.elems, [3,1,4,1,5])

That works over nested structures. Is exactly what I've been looking for, but also formalized.
I'm still wondering if there's value in this for ramda though.

partial.lenses author also has https://github.com/polytypic/fastener which works for structures of unknown shape.

Why was this issue closed when the PR (#2133) is still open?
And why is the PR still open?


use config_path when writing new config in ecto.gen.repo. closes #3202

What
Should close https://github.com/elixir-ecto/ecto/issues/3202
This adds to the changes in https://github.com/elixir-ecto/ecto/commit/a8a102cfb7abe0b170acd2da248f6aefab592098 to use the same correct path when writing back the file.
Output sample
Run from a mix application under an umbrella, now we see this output
pwd
==> /Users/javierevans/code/umbrella_test_umbrella/apps/repository

mix ecto.gen.repo -r Repository.Repo
==> repository
* creating lib/repository
* creating lib/repository/repo.ex
* updating ../../config/config.exs
Don't forget to add your new repo to your supervision tree
(typically in lib/repository/application.ex):

    {Repository.Repo, []}

And to add it to the list of ecto repositories in your
configuration files (so Ecto tasks work as expected):

    config :repository,
      ecto_repos: [Repository.Repo]

Testing
I had some trouble figuring out how to test a different value for config[:config_path] so I'm asking for help to do it in a way that is in line with the tests in the project.

:heart: :green_heart: :blue_heart: :yellow_heart: :purple_heart:


Missing content directory throws unhelpful error

What version of starlight are you using?
0.10.1
What version of astro are you using?
3.1.2
What package manager are you using?
npm
What operating system are you using?
Linux
What browser are you using?
Firefox
Describe the Bug
A missing content folder throws an obscure error. It's not an error I'd expect people to frequently encounter, but I this we can add a more useful error, just to cover this case.
11:48:31 [vite] Error when evaluating SSR module<EMAIL_ADDRESS>|- TypeError: (intermediate value).map is not a function
    at eval (/home/otterlord/Documents/Repos/api/test/node_modules/@astrojs/starlight/utils/routing.ts:10:66)
    at async instantiateModule (file:///home/otterlord/Documents/Repos/api/test/node_modules/vite/dist/node/chunks/dep-df561101.js:55974:9)

11:48:31 [vite] Error when evaluating SSR module<EMAIL_ADDRESS>failed to import<EMAIL_ADDRESS>|- TypeError: (intermediate value).map is not a function
    at eval (/home/otterlord/Documents/Repos/api/test/node_modules/@astrojs/starlight/utils/routing.ts:10:66)
    at async instantiateModule (file:///home/otterlord/Documents/Repos/api/test/node_modules/vite/dist/node/chunks/dep-df561101.js:55974:9)

 error   (intermediate value).map is not a function
  File:
    /home/otterlord/Documents/Repos/api/test/node_modules/@astrojs/starlight/utils/routing.ts:38:66
  Code:
    37 | /** All entries in the docs content collection. */
    > 38 | const docs: StarlightDocsEntry[] = (await getCollection('docs')).map(({ slug, ...entry }) => ({
         |                                                                  ^
      39 |   ...entry,
      40 |   slug: normalizeIndexSlug(slug),
      41 | }));
  Stacktrace:
TypeError: (intermediate value).map is not a function
    at /home/otterlord/Documents/Repos/api/test/node_modules/@astrojs/starlight/utils/routing.ts:38:66
    at async instantiateModule (file:///home/otterlord/Documents/Repos/api/test/node_modules/vite/dist/node/chunks/dep-df561101.js:55974:9)

My proposal would be to check getCollection returns an array, then if not, throw an error about content not being found.
Link to Minimal Reproducible Example
No response
Participation

[ ] I am willing to submit a pull request for this issue.

Adding a note, but not closing yet until I confirm the cause. It looks like this is related to a behaviour change in Astro, post 3.0.6. I need to confirm if this is intentional. Tf it is, I'll continue working on my edge-case fix, if not, I'll close this and follow up with core

Confirming this was an accepted behaviour change in 3.1.2 (https://github.com/withastro/astro/issues/8336). I'll add something to address this in Starlight.

Another note. The behaviour introduced in 3.1.2 is not what is expected, so we'll have to wait for a patch release to finalise behaviour before I can fix this.


error

File "t.py", line 1, in
from whatsapp import WhatsApp
File "D:\download\Simple-Yet-Hackable-WhatsApp-api-master\Simple-Yet-Hackable-WhatsApp-api-master\whatsapp.py", line 36, in
class WhatsApp:
File "D:\download\Simple-Yet-Hackable-WhatsApp-api-master\Simple-Yet-Hackable-WhatsApp-api-master\whatsapp.py", line 41, in WhatsApp
browser = webdriver.Chrome()  # we are using chrome as our webbrowser
File "C:\Python37\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 75, in init
desired_capabilities=desired_capabilities)
File "C:\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 156, in init
self.start_session(capabilities, browser_profile)
File "C:\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 245, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 314, in execute
self.error_handler.check_response(response)
File "C:\Python37\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 75

im use this https://chromedriver.storage.googleapis.com/75.0.3770.8/chromedriver_win32.zip

ok all work thx

can you help me fix the buffering


:recycle: chore: Refactory bundler into smaller packages

Description
Break up bundler into smaller packages so it can build more incrementally and be easier to navigate. Bundler is currently the biggest package and the only package I struggle finding stuff in.

keep bundler specific code in @evmts/bundler
move runtime generation code to @evmts/runtime
move solc compiler code and solidity resolution code to @evmts/solc

Testing
Explain the quality checks that have been done on the code changes
Additional Information

[ ] I read the contributing docs (if this is your first contribution)

Your ENS/address:

Current dependencies on/for this PR:

main

PR #596

PR #597

PR #598   👈

This comment was auto-generated by Graphite.


Deploy webapi package that matches memories selection in ARM template

Currently the Deploy to Azure buttons use an ARM template that defaults the memories selection to "Volatile" but does allow the user to change this to Qdrant or ACS. The problem is that the webapi package that is deployed is configured to use volatile memories and so changing this in the ARM deployment results in a resource that is deployed but is not being used.
One option to fix this is to publish webapi artifacts with all configurations in the pipeline, and then use the memories selection in the ARM template to pick the correct one.

Spoke with @alliscode - The problem description does not actually occur.
Not a bug.


"Default external uri opener" no-ops

Testing #114962

Contribute a link opener with a Default priority
Click on a link
Select the Default external uri opener
Nothing happens 🐛

Followed the same steps and now the url is opened directly in browsers, even though my default url opener only does console.log.

Followed the same steps and now the url is opened directly in browsers, even though my default url opener only does console.log.

@rebornix The bug was that the default VS Code url opener was no opening links in the browser. Instead selecting it did nothing.
I just tested this in the latest insiders and it seems to work now. @connor4312 Could you confirm?
PS: I also renamed the default opener. It is now labeled as: Open in default browser:

@rebornix The bug was that the default VS Code url opener was no opening links in the browser. Instead selecting it did nothing.
I just tested this in the latest insiders and it seems to work now. @connor4312 Could you confirm?
PS: I also renamed the default opener. It is now labeled as: Open in default browser:

Closing for verification

Closing for verification


cannot use operator[] with a string argument with string

What is the issue you have?

Unable to parse valid JSON.

Please describe the steps to reproduce the issue. Can you provide a small but working code example?

Take the first JSON example from; https://json.org/example.html

What is the expected behavior?

That it could be parsed.
Other software, like for example; codebeautify, can parse it just fine.

And what is the actual behavior instead?

json.exception.type_error.305: cannot use operator[] with a string argument with string

Which compiler and operating system are you using? Is it a supported compiler?

Visual Studio 2017

Did you use a released version of the library or the version from the develop branch?

3.7.3

Appears to be an error 40 instead


[Bug? / question]: Screenshots of certificates and security...

Avoid duplicates

[X] Bug is not mentioned in the FAQ
[ ] Bug is specific for Android only, for general issues / questions that apply to iOS and Android please raise them in the documentation repository

iOS not checked / unknown.

[X] Bug is not already reported in another issue

Technical details

Android version: 11
App version: 2.7.1

Describe the bug / question
It is very helpful to create screenshots in CWA, for example for documentation, reports etc.
But shouldn't screenshots of saved certificates be prevented?
Cross-reference: Screenshots are not possible in the CovPass app (e.g. v1.28.7).
Steps to reproduce the issue
See, for example, Screenshots in: Vaccination Certificate Android 2.6 ... screenshots #3926

Start CWA
Select 'Certificates'
Select a certificate
Make a screenshot

Additional context
Note: However, I do not know whether it is possible in Android / iOS to allow / prevent screenshots for certain screens.
Best regards, Joachim.

@Jo-Achim Any reasons why screenshots should be disabled?

@Ein-Tim,

Users are very unhappy that CovPass restricts screenshots, ...

I know.

Any reasons why screenshots should be disabled?

Maybe to avoid the use of 'stolen' certificates?
Maybe the developers of CovPass have good reasons to forbid screenshots!?
But I don't want to finally clarify the question myself - only ask.
With regard to the screenshots, which are not possible under CovPass, I only remember arguments regarding security, avoidance of unauthorized use (e.g. by copying the scanned certificates) etc.

IHMO disabling screenshots for the certificates tab does not add an additional layer of security, since if you intended to share your certificate, you can still just take a photo of the paper you got.
Additionally, CWA 2.9 will add an export feature, so user can export their certificates.

The basic idea behind the certificates is, that they're only valid when
a) the person presenting also shows its ID
b) the digital signature is validated with a verifier app like CovPassCheck.
When these points are handled correctly, then abuse of the certificate is not possible. Hence, screenshots are not a security risk in this regard.
Unfortunately, this is not the case yet...
Screenshots can even introduce a layer of security to the certificate holders: In case app breaks, or papers get lost, they still have one additional source...

@Ein-Tim, @vaubaehn,
then it's very simple... thank you for information.
And I am closing.


Support buttons functioning as links

Allows rendering buttons using <a /> as the root element.
{widget("components.atom.button", {
  href: href("community.configure", { handle }),
  label: "Configure community",
  type: "link",
})}

Preview
Mainnet: https://near.org/carina.akaia.near/widget/gigs-board.pages.community.activity?handle=protocol&nearDevGovGigsContractAccountId=devgovgigs.near

Yes, I'll deploy preview right away

Preview
Mainnet: https://near.org/carina.akaia.near/widget/gigs-board.pages.community.activity?handle=protocol&nearDevGovGigsContractAccountId=devgovgigs.near

Looks good!


Use a minimum of monolog 1.5 instead of only version 1.5

Updated monolog as discussed in #5547

@mlocati can you see what I was describing now? See
https://github.com/concrete5/concrete5/pull/5560/files#diff-1da2c7edc898c70e5a79a9997c98ceccR2117

I still don't see it :wink:
It seems to me that this  PR does not change anything: see
https://semver.mwl.be/#?package=monolog%2Fmonolog&version=^1.5.0&minimum-stability=stable
vs
https://semver.mwl.be/#?package=monolog%2Fmonolog&version=~1.5&minimum-stability=stable
What I'm asking is a change in composer.lock not in composer.json: why in composer.lock we have monolog 1.5.0?

I'm not seeing the difference between what we had in composer.json and what you put there in this PR. The two are equivalent are they not?
I agree the issue that we're really trying to resolve is what's int he composer.lock file for the sake of what's shipping with the packaged core.

This PR was different because it allows concrete5 to be installed alongside a dependency that requires 1.5.0. I see that without @mlocati's change to making monolog require ^1.22.1 the composer.lock ends up being the same.


Allow Keras ModelCheckpoint to save the best N checkpoints

The callback tf.keras.callbacks.ModelCheckpoint allows to save the best checkpoint using save_best_only=True. In the Estimator API we can use tf.estimator.BestExporter that saves the top N checkpoints (parameter exports_to_keep).
It seems using the Estimator API is becoming discouraged, for example I need to use compat v1 symbols to use the BestExporter.
Is it possible to update the Keras ModelCheckpoint class to allow to save the top N models instead of just the best?
System information

TensorFlow version (you are using): 2.0
Are you willing to contribute it (Yes/No): No

Describe the feature and the current behavior/state.
Will this change the current api? How?
Yes, the constructor of tf.keras.callbacks.ModelCheckpoint needs a new parameter which is the equivalent of tf.estimator.BestExporter exports_to_keep. We can keep save_best_only but the two parameters can't be used as the same time.
Who will benefit with this feature?
Everybody that wants to save several models. For example for model averaging.
Any Other info.

I wrote a ModelCheckpoint subclass that implements this if you're still looking for this functionality.

@schustmi Thanks for the implementation.
@iteal Sorry for the late response. Do you think @schustmi 's custom callback will work for you?
Are you still interested in contributing? If yes, please feel free to open a PR in  keras-team/keras repo. repository.
Please note that Keras development moved to keras-team/keras repository to focus on only keras. Thanks!


Adds gov-uk custom filters lib file

Adds custom nunjucks filters lib file and automatically registers them with Nunjucks. Adds filter for outputting a standard UK date as per the gov.uk guidance (with scope for adding more features via the moment.js api).
In templates using this filter you could do: {{ '09/12/1981' | formatDate }}  and that would output 9 December 1981
This PR is essentially the same as one I did earlier but perhaps addresses issues like: #170 - Create filter / macro for outputting dates and allows some future extensibility.
The name of the 'standardDate' filter I've created could easily be changed to something more name-spaced or understandable.
It's also possible to leverage all the API from moment.js (Moment.js formatting docs) should we need to. As a quick test I've made it should you can pass in a format string for example:
{{ '09/12/1981' | formatDate('ll') }}  outputs 9 Dec 1981 for those cases where space is limited.
Also included in this PR is the ability to 'log' template/context data to the browser. Makes it quick and easily to debug things and see what the output of a filter such as 'standardDate' is, etc. For example:
{{ '09/12/1981' | formatDate | log | safe }}

Discussed a little in this issue with @tsmorgan.

how about formatDate?

That's much better. Done.

Thanks for working on this @paulmsmith.
Open question - we're trying to get to a point where everything a regular user might want to touch is in /app and all the kit stuff is outside. Does this imply two filter files? one in app and one in lib? Or do we not expect users to make filters? (cc @timpaul @joelanman ).
I wonder if a few of the variables should be spelt out more explicitly: would help for readability where more novice users are seeing how things are done. eg filter rather than fi.
For the date formatting:

Is dd/mm/yyyy the common format? For my use case on wednesday I had a javascript date as it was dynamically generated - would this work?

I think it does imply two - it makes updating easier if we keep /app as vanilla as possible. A blank app/filters file might be good

No problem. Good points.
I think @joelanman is right. It implies two. A 'core' set of generic standardised filters such as the 'formatDate' example and then a blank file for users to create their own with some commented or documented guidance for how they can do so.
As for date formatting, I'm I can make it so that it will accept a range of date styles in accordance with the moment.js api to allow people to use what they have. (A javascript date being one of them).
I'm quite busy for the next few days but as I see it, I can do the following:

Separate the filters to a 'core' + 'instance specific' set of files. This will need to encompass some feature to ensure users don't run into method naming collisions, etc.

Update the basic example of the formatDate filter to allow a range of common date patterns to be converted to the agreed GOV.UK standard.

Make the JS a little friendly for less experienced developers/kit users

How does that sound? Incidentally, I'm at the XGov Design meeting in a week's time, so be good finally say Hi. :)

What is the use case for toHyphenated and toCamelCase?

what's the use case for newDate in a template, and can you call a filter with no input?

I write my filters functionally so my thinking was they could be used in templates as well as to compose other filters. toHypthenated, toCamelCase are operations I seem to do a lot when dealing with JSON data within templates so they are useful as filters. The same goes for newDate I exposed that as a filter because it might have been useful.

@joelanman Off the top of my head. I don't believe you can call a filter in templates without passing it something.
I think without passing something you'd have to create an 'extension' (some people refer to them as 'helpers'): see Nunjucks custom tags

Ah sorry I misread newDate and thought it didn't take input. I wonder if toDate might be clearer? I'm not totally sure about putting low level filters like this one in the templates. If you need to do complex data manipulation I think it'd be easier and more flexible in a route

Fixed conflicts with latest from master.

This is great work, and we do want to include filters in the kit, even if it's just to show how to use them so people could add their own. However I'm not sure we know that all the filters included in lib/filters have a general user need. log looks like it could be generally useful, but I'm not sure on the others?

@joelanman I can give some usecases for the others, very quickly:
toHyphenated:
You want to dynamically create a class, slug or string from post data being played back to the user?
toCamelCase:
You want to create an ID on headings/content based on dynamic or structured data.
I name them as what they do functionally but we could expose them via aliases that make more sense to users perhaps? E.g:
filter.toCamelCase = filter.createDynamicId = function toCamelCase(b, md) {
...
}

To recap some private slack talk. I've stripped this back a little. Removed dependancy on lodash and given the ability for filters to get access to some nunjucks API methods such as 'getFilter', etc: (https://mozilla.github.io/nunjucks/api.html#getfilter)

@joelanman Does this look like something that can be merged now?

Closing this PR in favour of a new one with clean commits and easier audit trail. Could rebase but probably nicer that just the details necessary are in the PR.


Use Microsoft.Azure.Services.AppAuthentication for getting access to service bus

It would great if we could use the current user's to connect to service bus using Microsoft.Azure.Services.AppAuthentication nuget so that you won't need to store a connection string or fetch it from the azure portal everytime.

This only works for applications running on Microsoft Azure, how would you see this working then?
Do you want to run it on a VM or? If so, not sure if this is supported.

No, I didn't mean to run it on a VM but just on my machine under my user. Using this library as a token provider instead of shared access key, like: https://azure.microsoft.com/en-us/resources/samples/app-service-msi-servicebus-dotnet/

Interesting. But MSI only works nicely in Azure given "Managed" service identity is managed by MSFT.
See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview#how-does-the-managed-identities-for-azure-resources-worka-namehow-does-it-worka

Yes, but I want to benefit from it when running it on my own pc under my own account. I've written Web Api's using this nuget to access other azure resources (like key vault or service bus) by using an azure managed service identity and I can run the web api's locally without any change in code. It will use the current user to get access token (if the user has access of course).
For service bus you do need explicit rights (not implicit rights like when you are subscription owner).

@Zenuka would you like to help the project and send a PR?
I'm not an expert on MSI, so if you don't have the bandwidth, could you help with getting the knowledge how to achieve this on a local app? Thanks.

Hi @Zenuka, using Microsoft.Azure.Services.AppAuthentication to adopt the user's credentials to authenticate against an Azure Active Directory tenant and use Azure RBAC to access a Service Bus namespace looks an interesting option. You also need to make sure to add your use to the Service Bus Data Owner role specifying as scope your Service Bus namespace(s),  or the resource group / subscription that contains them. I'm closing this issue, in case please submit a PR if you haven't done it yet (I'm reviewing past issues one by one right now).

I'll investigate when I have some time. I used the ManagedServiceIdentityTokenProvider but that assumes that you create a system-assigned managed identity on Azure, even if when running the code locally it impersonates the developer credentials. In other words, it works if you run the app from Visual Studio, not sure how it works if you do it from the command-line.

The AppAuthentication nuget uses one of 3 options:

MSI endpoint (available when running in Azure)
An access token Visual Studio provides (I think using an environment var)
A token used from the Azure CLI (stored in your user folder somewhere)

So if you would be authenticated using the Azure CLI that might work.

I might be mistaken, but MSI can also work with environment variables.
Saying that AZ CLI sounds like the best option.


Model::incrementQuietly() and Model::decrementQuietly() can't be used publicly

Laravel Version
10.4.1
PHP Version
8.2
Database Driver & Version
No response
Description
incrementQuietly() and decrementQuietly() can't be used outside the model since they are defined as protected.
The following code is currently failing;
$post = Post::first();

$post->incrementQuietly('views'); // Call to undefined method App\Models\Post::incrementQuietly().

Is this an intentional behavior?
Made an attempt to fix this here https://github.com/laravel/framework/pull/47480, but no luck.
Steps To Reproduce
Fetch a new model and attempt to invoke incrementQuietly.
$post = Post::first();

$post->incrementQuietly('views'); // Call to undefined method App\Models\Post::incrementQuietly().

Fixed:
https://github.com/laravel/framework/commit/42173c82a477ade12c9fc2acd6d586e39c370b45

Awesome @ahmed3mar thanks.
I'm still curious to learn why Taylor would rather add them to an array check, instead of just making the methods public.
Is there something I'm missing tho?


New icons for ParallaxBackground & ParallaxLayer

ParallaxLayer only works inside ParallaxBackground, icons make sense now.

Sorry for the late review.
This makes sense but having two icons with different size like this looks weird. The "superimposed" icon makes sense logic wise but since it's never used it doesn't really matter.
I would make the ParallaxBackground icon the same size as the ParallaxLayer one, and the difference is that one is full, and one is only a contour.

It seems that something went wrong with rebase. If you want, I can do it instead 😊

i add the change of https://github.com/godotengine/godot/pull/72472 removing opacity too
and i think icons can't need transform=translate info and g tag i remove here too. (some icons yet have this things and can be cleaned)
// remove
<g transform="translate(0 -1036.4)">
transform="translate(0 1036.4)"

@junkajii I'm not sure what it is that you're doing on your end, but it doesn't look like you're rebasing your PR against the current master. Make sure you fetch all the changes in the upstream (this) repository before attempting to rebase.

@YuriSizov maybe i fix now

Thanks, and congrats on the first merged PR! Sorry it took as so long.


The right border of the marketplace extension install button is a bit weird in high contrast theme

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.83.0
OS Version: macOS Sonoma(14.0)

Steps to Reproduce:

Change the color theme to high contrast any theme
Go to extension search github (I have attached a picture below which you will see there)
you will see no border-right edge of the install button

I'll start trying to fix this weird border-right


Update tray api docs

Edited documentation for OpenAPI
Updated application to use renamed end points
Updated postman collection to use renamed end points

Addresses:https://github.com/WebServiceDevelopment/PrivateInvoice/issues/58


Created nx_tutorial_script.py file

Completed task #5 and created a python script file. @MridulS please guide me if  I have done any mistakes. Thank you

@MridulS I have created a python script file and commented on the output in the code itself. I have also attached the picture of the graph network that was coming as output when this code is compiled.

Hi, @MridulS I have linked task #4 commits to this branch. Is it ok to do that or I should create a separate branch and raise a separate PR? Please guide me if I have done any mistakes. Thankyou.

I have linked task https://github.com/networkx/outreachy/issues/4 commits to this branch. Is it ok to do that or I should create a separate branch and raise a separate PR? Please guide me if I have done any mistakes. Thankyou.

It's fine for now, but it's recommended to use clean branches while doing changes :)

I have linked task #4 commits to this branch. Is it ok to do that or I should create a separate branch and raise a separate PR? Please guide me if I have done any mistakes. Thankyou.

It's fine for now, but it's recommended to use clean branches while doing changes :)

Sure, I will keep this in my mind. Thank you @MridulS

Hi @MridulS. I changed my code a little bit so that the output will be understandable way. Please guide me if you need more requirements in this code. I will make sure that I try my best to fulfill all your requirements for code. Please correct me if I am wrong. Looking forward to your guidance. Thank you.

Thanks!


Directory /var/cache/nipap-www/eggs does not exist

Starting the investigation on issue #1225 I checked file /etc/nipap/www/nipap-www.wsgi and identified that this setting points to a directory that does not exist: /var/cache/nipap-www/eggs
root@ct201-nipap:~# more /etc/nipap/www/nipap-www.wsgi
#
# Set up a wsgi environment for mod_wsgi
#

import os, sys
os.environ['PYTHON_EGG_CACHE'] = '/var/cache/nipap-www/eggs'

from paste.deploy import loadapp

application = loadapp('config:/etc/nipap/nipap-www.ini')

Can you please comment if this is an issue for working WebUI?

Same scenario here, and my web is working..


Status Suspended or schläft ein

Since approx. 17th june i can not get my tesla x sleeping. It stays in state suspended forever. One of my collegues has the same so i dont think its my setup. Anybody else has seen that issue? I am working with streaming API

See if this is a duplicate of https://github.com/adriankumpf/teslamate/issues/818. (Yes, I know that mine might have been a duplicate of yours...)

Issue is solved since last update to 2020.24.6. I think it was a tesla bug


SomaC center

Hello,
The documentation states:
    Type C: multiple points soma
    Represented by a contour.
    Reference: neuromorpho.org
    The first point constitutes the center of the soma,
    '''

But I'm having problems confirming that the first point is the center of the soma on neuromorpho.org, could you please provide a pointer to this?

I can't find it either. I found this:

Soma can be a single point or more than one point. When the soma is encoded as one line in the SWC, it is interpreted as a "sphere". When it is encoded by more than 1 line, it could be a set of tapering cylinders (as in some pyramidal cells) or even a 2D projected contour ("circumference").

@lidakanari could you comment on this?

I used this definition: http://neuromorpho.org/neuroMorpho/SomaFormat.html which apparently has been removed!!!

We can remove the reference to neuromorpho and say this is how we interpret a multiple point soma, in the absence of any means to know what it is supposed to represent. We could also think of some heuristics to guess what three or more points represent.

So we should define the three types of soma by ourselves? (That seems like the only solution in the absence of a meaningful definition in the web).

Update: new location found!
http://neuromorpho.org/SomaFormat.html

Cool, thanks for finding that.  I read the quoted string as saying that the soma center should be the average of the contour points, which is also how the h5 calculates it.  Right now, I don't think that is happening: it's just picking the first point and assuming it's the center which means the soma.center property is confusing.

It assumes that the first point contains those info. We definitely have to look into this and probably confirm it! I'd like to add this as a proper function but I'm still waiting for a concrete format for the soma structures.

I think I fixed it here: #233
Also, I think it would be a good idea to name the soma classes more descriptively:
SomaA -> SomaSinglePoint
SomaB -> SomaThreePoint
SomaC -> SomaContour

Fixed in #233.

I completely agree with @mgeplf !


Fixed assembly names.

Fixed assembly names to show the either the assembly, name or reference designator as a last resort. Also fixed issue with names being repeated.

@Bobfrat @FBRTMaka

:+1:


Issue with mapping driver Win 11 23h2

So let me start off by saying I'm very new when it comes to developing drivers. Im using the HelloWorld from this project and when i try to load it it just runs a cmd window and instantly closes. I sent it to a friend who is on win 10 22h2 and it worked and mapped properly. So i'm wondering if it is a me issue or a issue with the mapper itself.
--Edit:
I have also added std::cin.get(); to everywhere the script returns to try and get it to work but that didn't do anything either

You just need to open kdmapper with a CMD with admin rights to see the output and your possible issue

Im having the same problem

I will close the issue until there is not real information about the issue


Add type formatter to Log keyword

Add a formatter=type to Log keyword for verification of variable type

I think this would be a good idea. We already support formatter=repr and formatter=ascii to get the message formatted using Python's repr() and ascii() built-in functions, respectively. Supporting also type() would be convenient and totally backwards compatible.
We could also consider adding support for formatter=<any-built-in> so that you could use also e.g. formatter=len. I'm not sure are there many/any other built-in that could even in theory be useful as such a formatter, but implementation this way would probably be simpler than handling named formatters specifically.
We could also consider formatter=<any-callable> so that we'd evaluate the specified formatter in Python similarly as we evaluate expressions using the Evaluate keyword. Because our evaluation logic imports modules automatically, this would allow thinks like formatter=math.ceil. This gets more complicated and is also harder to explain than just being able to use any built-in. Probably not worth the effort (and can be implemented later if needed).
Finally, we could consider supporting multiple formatters like formatter=str,type to get the message logged multiple types. The output
Log    example    formatter=str,repr,type

could be something like this:
str:    example
repr:   'example'
type:   string

This was implemented in PR #4126 by @Wolfe1. Thanks for contribution!
The PR added both type and len formatters. We agreed there aren't other Python builtins that could really be used here and that supporting any Python function is probably not worth the effort. We could still consider adding support for multiple formatters (e.g. formatter=type,repr) like I proposed in a comment above, but a separate issue can be submitted about that.

I realized it's better to log only the name of the type, not the type itself, with the type formatter. That changes, for example, <class 'str'> to just str. I'll do that change myself. I'll also add a note that type and len are new in RF 5.0 to the documentation.


Memory leak when running testcontainers with jest

Hi,
I have some problems with high memory allocation in my unit test running with jest and node-testcontainers.
I have reduced the problem to a single test file that only starts and stops a single GenericContainer.
After running this test a small amount of memory does not get garbage collected.
This could be tested by running the test suite multiple times (in a single jest run) with and without the GenericContainer.
Expected Behaviour
If I am running the exact same test suite in jest that starts and stops a single GenericContainer instance,
I expect the maximum amount of used memory to be the same for all test suites.
Actual Behaviour
The amount of used memory increases from run to run by ~15Mb.
Running the same tests without the generic container stuff, the memory does not increase.
Testcontainer Logs
If you need any logs, please tell me.
Steps to Reproduce

Create a little project with jest installed. I am using typescript with ts-jest, but I do not think it is related to typescript. So a pure javascript version should be fine.
Create a basic jest config
Create a file MemoryLeakBase.ts with content like shown below.
Create a up to 10 copies of the test suite MemoryLeak1 as shown below.
Run these tests with "node --inspect --expose-gc node_modules/jest/bin/jest.js --runInBand --logHeapUsage --no-cache --config ./jest.config.js MemoryLeak"
Inspect the console output from jest showing the used memory per test suite.
Remove the creation of the GenericContainer from the test function and try again.

Environment Information

Operating System: Windows 10 64 bit
Docker Version: 20.10.17, build 100c701
Node version: 18.6.0
Testcontainers version: 8.12.0

My Console output
~: node --inspect --expose-gc node_modules/jest/bin/jest.js --runInBand --logHeapUsage --no-cache --config ./jest.config.ts MemoryLeak
Debugger listening on ws://<IP_ADDRESS>:9229/41af492b-a25e-46e6-9971-9e5edcc9db1e
For help, see: https://nodejs.org/en/docs/inspector
Debugger attached.
PASS  tests/MemoryLeak6.test.ts (17.248 s, 657 MB heap size)
PASS  tests/MemoryLeak5.test.ts (10.122 s, 672 MB heap size)
PASS  tests/MemoryLeak4.test.ts (10.882 s, 685 MB heap size)
PASS  tests/MemoryLeak3.test.ts (10.142 s, 698 MB heap size)
PASS  tests/MemoryLeak2.test.ts (10.227 s, 710 MB heap size)
PASS  tests/MemoryLeak1.test.ts (10.542 s, 723 MB heap size)
MemoryLeakBase
import { GenericContainer, StartedTestContainer, Wait } from "testcontainers"

export function runMemoryLeakTest() {
    let dockerContainer: StartedTestContainer
    jest.setTimeout(300_000)

    beforeAll(async () => {
        // testDb = await TestDb.create(databaseName);
        dockerContainer = await new GenericContainer("mcr.microsoft.com/mssql/server:2022-latest")
            .withEnv("ACCEPT_EULA", "Y")
            .withEnv("MSSQL_SA_PASSWORD", "Aa123456#")
            .withEnv("MSSQL_PID", "Express")
            .withExposedPorts(1433)
            .withWaitStrategy(Wait.forLogMessage(/.*Server is listening on.*1433.*/))
            .start()
    })

    afterAll(async () => dockerContainer?.stop({timeout: 30_000}))

    test("emptyTest", async () => {})
}

MemoryLeak1
import {runMemoryLeakTest} from "./MemoryLeakBase"

runMemoryLeakTest()

Hi @Zomono, thanks for raising the issue.
I've been checking this locally and I think I've found the problem.
When you start a container, we also start a container called ryuk. We do not explicitly stop this container (it stops itself 10s after process termination). This means that as you run multiple instances of testcontainers, that you end up with a growing list of ryuk containers:

I can confirm that running the memory leak test with the following environment variable set results in no leak:
TESTCONTAINERS_RYUK_DISABLED=true
Let me know what you think, else I'll close this issue as I think this is working as intended.

Thanks for your investigation.
Let me clarify the memory thing a little:
With the "maximum amount of memory" I mean the memory allocated by the node process only. Not for the whole system.
And I expect it to stay roughly the same while executing the tests.
The ryuk docker container may stay alive for a while (consuming memory on its own), but if I am calling "dockerContainer.stop()"  and the test suite is stopped/removed by jest, node-testcontainers should no longer hold any memory for container connections created in that test suite.
So could you please retry the test with ryuk enabled while only looking for the memory consumption of the node process that is running jest?

The ryuk docker container may stay alive for a while (consuming memory on its own), but if I am calling "dockerContainer.stop()" and the test suite is stopped/removed by jest, node-testcontainers should no longer hold any memory for container connections created in that test suite.

No, because the socket is unref'd.
This is on purpose so that ryuk is not attached to the node process, so the process can terminate without waiting on ryuk.

With the "maximum amount of memory" I mean the memory allocated by the node process only. Not for the whole system. And I expect it to stay roughly the same while executing the tests.

See above.
Again, I have run your memory leak test and analysed the heap dump and can confirm the resources are those held by the socket, specifically the docker-modem. I have also run your memory leak test with ryuk disabled and can confirm it "fixes" the memory leak. If you have any opinion to the contrary, please provide evidence, else I will be closing this ticket.

Sorry. I thought calling the stop method would clean up all references and frees all memory including the ryuk connection. No reason here to wait until the ryuk container really has been shutdown by docker.
If it is on purpose that there are dangling connection after calling "stop", this ticket can be closed.


[stable/fluentd-elasticsearch] Add ability to specify nodePort and protocol.

[stable/fluentd-elasticsearch] Add ability to specify nodePort and protocol.
Signed-off-by: Li Jialin<EMAIL_ADDRESS>
What this PR does / why we need it:
I hope to use NodePort and UDP in stable/fluentd-elasticsearch, cause rsyslog need it.
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

may be help with #8254

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

/assign @scottrigby

@scottrigby @monotek Please let me know if you need anything from me to better understand this PR. Thanks.

@lachie83 @sameersbn @scottrigby @monotek Is there any problem in merging this chart into the helm/fluentd-elasticsearch ?

/approve

/lgtm

Test files because of to long volumname. Could you fix this in your pr too please?
Replacing "config-volume-{{ template "fluentd-elasticsearch.fullname" . }}"  with "config-volume" in daemonset.yaml should do the trick.

@monotek
thanks for your suggestion, I think I have fixed this problem.
How does it look now?

/lgtm


Prepare Basic Tests

Description:
Prepare and introduce basic tests such as build tests, health check tests, and unit tests. These tests should run against pull requests (PRs) and prevent merging if any tests fail. Integrate these tests into the existing testing pipeline.
Tasks:

Prepare Basic Tests:

Develop build tests to ensure the application builds successfully.
Create health check tests to verify the application's basic functionality and endpoints.  (docker run)
Implement an action to ensure we can't merge the PR until tests are passed.
Implement linting checks

Integrate Tests into Pipeline:

Add the prepared tests to the testing pipeline.
Ensure tests run automatically against all PRs.
Configure the pipeline to block merging of PRs with failing tests.

Acceptance Criteria:

[ ] Build tests are developed and verify successful application builds.
[ ] Health check tests are created and validate the basic functionality and endpoints. (docker run)
[ ] All tests are integrated into the testing pipeline.
[ ] Tests run automatically against PRs, and merging is blocked if tests fail.
[ ] Linting checks are implemented (PR)

Create GitHub Action for:

linting using ruff
type checking using mypy
formatting using black

Execute these using poethepoet
Fix all found linting, type checking and formatting errors
PR: kyma-companion/#66

ERRO[0000] Error while retrieving image from cache: python:3.12.4-slim-bullseye image not found on any configured mapped registries for python:3.12.4-slim-bullseye
We need to add the python:3.12.4-slim-bullseye to the image-syncer as @grischperl suggested


Text file formatting for readability

@ramsharma-prog I don't think we can fix the security error currently, see discussion in https://communities-govuk.slack.com/archives/C02PHBER287/p1664794101631599 I suggest you revert the last changes and merge anyway as this shouldn't block merge.


Allow non-ipfs.io accounts to log into ipfs.io google groups

This is really annoying. Somehow, somewhere in the settings of the ipfs.io google apps account, it's set to only allow ipfs.io accounts to view the google groups. That means we can subscribe other email addresses but those people can't change their subscription preferences or view the conversations in the google groups web UI.
How can we fix this? As working groups grow some of them are inevitably going to want mailing lists. I want to be able to provision those lists easily.

Moved to it repo https://github.com/protocol/it/issues/5


Add rule to ignore requests from localhost

Suppresses log entries that are coming from localhost,
e.g. a sidecar like the Apache exporter.
I'm not sure what ctl:ruleRemoveById=920300 does, please indicate whether this is correct.

@franbuehler Can you review it?

Looks good to me.

@bittner please merge when ready


How to add new Fiat Currency

I am looking to add new Fiat currency, can anyone help with this topic. I want to add USD, EURO and other

can you contact me<EMAIL_ADDRESS>

https://peatio.io/

@mod do you provide deployment or installation services? if yes you can email me ar<EMAIL_ADDRESS>

we offer all installation
https://peatio.io

we can list all coins

@mod do reach out via email or pm<EMAIL_ADDRESS>Thanks

@coinlisting Kindly email your details on<EMAIL_ADDRESS>

@mod @coinlisting please email me at<EMAIL_ADDRESS>would like to set up.

@rahulkhairnarr @litecoinpro @johnngo
Complete Peatio Help and Support
http://peatio.algobasket.com
Free Technical Documentation below :
https://github.com/peatio/peatio/files/2457278/PeatioCryptoExchange.pdf
https://www.youtube.com/watch?v=tpieNIMSBuQ
Contact me on Skype : algobasket
Thanks in advance !!!


[Feature Request] Add Panel Component

Existing Component
No
Component Name
Panel
Description
This days I needed this component.
Here have almost all components, but this no, I like in make it
Like
 <el-panel
    :style=""
    :title=""
    :class="">
  </el-panel>

:title is the panel-heading
I think it is good

I will make it now and post here

oks, like it
index.js
import Panel from './src/panel'

/* istanbul ignore next */
Panel.install = function (Vue) {
  Vue.component(Panel.name, Panel)
}

export default Panel

src/panel.vue
<template>

{{title}}

    <slot></slot>

</template>

We have no plan to add this.


Custom JsonConverter for FileInfo and DirectoryInfo no longer works

I have two JsonConverters handling FileInfo and DirectoryInfo objects respectively - serializing to FullName and vice versa.
They worked as expected in version 10.0.3, but after upgrading to version 11.0.1 the CanConvert method is no longer called for FileInfo and DirectoryInfo. But only for .NET Core projects.
I've attached a zip (ReproduceDirectoryInfoJsonConverterIssue.zip) that reproduces the problem.
Note that the solution has two projects: one for .NET Core that prints an exception when run, and one for .NET Framework that prints the expected JSON. The .NET Framework version references the Program.cs file from the .NET Core project so the code is by definition the same.
Downgrading the version of Newtonsoft.Json used to 10.0.3 makes the .NET Core version work.
I've included the code here for easier reading:
using System;
using System.IO;
using Newtonsoft.Json;

namespace ReproduceDirectoryInfoJsonConverterIssue
{
    public class Program
    {
        public static void Main()
        {
            var value = new Foo
                        {
                            Bar = new DirectoryInfo(@"c:\temp")
                        };

            try
            {
                var json = JsonConvert.SerializeObject(value, new DirectoryInfoJsonConverter());

                // Expected behavior is to print this
                // This works in .NET Framework app
                Console.WriteLine(json);
            }
            catch (Exception ex)
            {
                // Actual behavior in .NET Core 2.0 app
                Console.WriteLine(ex);
            }

            Console.ReadLine();
        }
    }

    public class Foo
    {
        public DirectoryInfo Bar { get; set; }
    }

    public class DirectoryInfoJsonConverter : JsonConverter
    {
        public override bool CanConvert(Type objectType)
        {
            return objectType == typeof(DirectoryInfo);
        }

        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader.Value is string s)
            {
                return new DirectoryInfo(s);
            }

            throw new ArgumentOutOfRangeException(nameof(reader));
        }

        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (!(value is DirectoryInfo directoryInfo))
            {
                throw new ArgumentOutOfRangeException(nameof(value));
            }

            writer.WriteValue(directoryInfo.FullName);
        }
    }
}

Ah ok. Stick with 10.0.3 and there will be a new version with a fix in a week or so.

Fixed https://github.com/JamesNK/Newtonsoft.Json/commit/8bb337debb338179a64cfdd366d764ce57492aef


Some snow plugins don't work with Fix W3TC enabled

On a guild website that I run I looked into a plugin to add snow to the frontpage to be festive. Unfortunately I encountered an issue when I tried to use either plugin.
So far I've tried two plugins:

Super Snow
Snow Flurry

Interestingly enough, when I disabled Fix-W3TC both plugins work. I attempted to whitelist the *.js files used and unfortunately this did not help. I believe it's because these plugins add javascript code at the end of the body tag.
I'd rather do without snow and have the site loading extremely well. Fix-W3TC is far too valuable!

Hi @Tarun80!  I will have a look at both plugins now and see if i can fix it.

Thanks! I poked around with some of the settings to no avail. I can only assume it's cause of the small <script> section that gets added that's where the problem may be.

Hi @Tarun80
Super Snow
Seems to works pefectly for me.  I will play with it more to hopefully get it to break.
Snow Flurry
I found the problem. In the /wp-content/plugins/snow-flurry/js/h5ab-snow-flurry.min.js file the author has the line +i+ +o.  He is unnecessarily adding "+" symbol infront of two variables.  The line is simply adding two variables together.  When the minify engine runs it removes the space so it now looks like +i++o.  That is no longer two variables being added, its a syntax error.  There is no reason the author should have added those "+" signs.
So to get Snow Flurry to work

Open /wp-content/plugins/snow-flurry/js/h5ab-snow-flurry.min.js
Search for +i+ +o
Replace it with: i+o
Enjoy

I will now return to Super Snow to figure out how to make it not work so i can hopefully see what u are seeing. :pray:
Cheers
Kimberly :octocat:

If it helps, I can provide more information (url, other plugins) and the config I use. Could be something on the server end.
It just struck me as odd that it worked when Fix-W3TC was disabled.

For Super Snow, yea it is very likely due to the javascript ordering being placed in the wrong position among the other plugins js files when minified.  Super Snow only has 1 file being included: wp-super-snow/src/client-s/js/snow.min.js
For the fun of it, keep w3tc enabled but disabling minify.  It should now work fine.
I assume you are using Minify: Auto mode?  Or are you using Manual mode?
Yea what other plugins are you using?  I will install them too.

An update: Reset to default settings and Super Snow now works. Now to figure out what setting caused it to stop working.
I'm using Manual Mode, with most of the recommendations from GTMetrix and the Hueman theme recommendations.
Thanks for the help!

Further narrowed, it's part of the JS Minify.

Since u are using manual mode i figure you have
http://0ssd.com/wp-content/plugins/wp-super-snow/src/client-s/js/snow.min.js?ver=151204
in your JS Minify list?

Actually, I do not. I held off adding that until it was working.

Yea, add it in  It is definitely needed to get it working.

So this is interesting indeed.
wp-includes/js/jquery/jquery.js
Add that, and it will break. Nothing will display for the snow. How strange.

oh jquery is definitely needed...usually the first thing (and only once) in your js list...for example my list looks like this (note how my jquery is the first entry, and my snow.min.js is my 5th).  It doesnt really matter where snow.min.js is as long as it comes after jquery.  You don't want to have more than 1 jquery.js btw

Solved it.
Before </head> 	x Minify Combine only
When set to Non-blocking using "async" you can keep jquery.js in there and it will load just fine.

Ahhhhh...great to hear its working!

To be complete, i should point out that for Snow Flurry, the other plugin, i totally forgot to say that you could have also added the line: h5ab-snow-flurry.+\.js into the Never Minify the Following JS Files field and it would have solved that snow plugin's coding issue.
Cheers


Add a blackjack command to gamble

Adds the blackjack game to the gamble command.
Allows players to win up to 2x their stake by beating the dealer/bot.

[x] I have tested all my changes thoroughly.

you madlad, i love it

Big tip: Try to code this in a fully abstracted way, so that its a lot easier to test (which is important so we know exactly for a fact the odds/rates of this, and just generally to test it for bugs), e.g. such as how hunterActivity.ts is in bso. I like the blackjack idea


ci need to bump the version in the packwiz toml file as well as thats the one that is used in cf

 yarden.zamir on Discord says

Right now players on cf see the modpack as eternally 1.0.0

 yarden.zamir on Discord says

There should be a jq like tool that messes with tomls then we can do what we do with json a few steps before

i just made my own script to update the values and added into the build pipeline
https://github.com/game-design-driven/ptdye-plus/blob/main/update_version.sh


Add nonce support for metrika

@birhoff please update tests

What's problem it solves?

Add support for nonce token. It's need for CSP. https://w3c.github.io/webappsec-csp/#match-nonce-to-source-list

Ok, I got the reason. We need to do a bit more then you did: add the attribute to another blocks, cover it by tests, update examples in the docs. If you don't want to do it (or don't have enough time), I will do it myself later.


Angular RC5 app updated from CLI beta 10 to webpack 2 giving issues.

OS?  Windows 7, 8 or 10. Linux (which distribution). Mac OSX (Yosemite? El Capitan?)
El Capitan

Versions. Please run ng --version. If there's nothing outputted, please run
in a Terminal: node --version and paste the result here:
angular-cli: 1.0.0-beta.11-webpack.2
node: 4.4.7
os: darwin x64

Repro steps. Was this an app that wasn't created using the CLI? What change did you
do on your code? etc.
The app was created using angular-cli.beta.10 and now trying to upgrade it to 11-webpack-2

The app compiles just fine without any issues.
However the http://localhost:4200 just shows loading.... text.
 Please kindly help me.
P.S: It was a working app before the update to webpack version.

Remove module.id from all components.
This will solve your issues.

Wow thanks @vapits - It really did clear out those errors. I believe this should be mention on the update guide as well.
I now hit another issue if you be kind enough to shine some light on it :)
Error: Uncaught (in promise): TypeError: Cannot read property 'import' of undefined

Also i noticed that if i change the most of the files CLI re-bundles the app but for some reason the it doesn't notice any changes for one of the modules which is really weird. Any ideas what might be wrong?

Well without your code in this can't be sure.
Open a SO question is my proposal with your code and close this issue.

hassan the solution for your problem is not to delete moduleId from everything, that will lead to errors importing if you don't change all of your paths.
The answer to the issue is this pull request.
https://github.com/angular/angular/pull/10595/commits/f54f9efc0e70eb1c71ac8eb6a8ed690f1e7f09f9
For you to apply it yourself all you need to do is change

@antonyRoberts
module.id from components should be removed. Directives also.

So basically i found out that the routes which contain loadChildren property do not detect saved changes for that module.
For example:
const routes: Routes = [
	{ path: 'catalog', loadChildren: './catalog/catalog.module' },
	{ path: 'login', loadChildren: './login/login.module' },
	{ path: 'profile', component: ProfileComponent},
	{ path: '', redirectTo: '/catalog', terminal: true },
	{ path: '**', component: PageNotFoundComponent },
];

export const routing = RouterModule.forRoot(routes);

In the above code - /login and /catalog modules do not push saved changes for webpack to rebundle. Perhaps its intentional? (because thats a separate NgModule)

Update: This is actually an issue with webpack version of Angular. Here is a solution that should work while angular-cli is being updated: https://gist.github.com/brandonroberts/02cc07face25886fe142c4dbd8da1340

module.id removal is mentioned on the upgrade procedure: https://github.com/angular/angular-cli/blob/master/WEBPACK_UPDATE.md

./src/app/app.component.ts (and all other components) - removed module.id, sass/less/stylus preprocessing now uses the real extension in styleUrls instead of .css.

The loadChildren issues are addressed by https://github.com/angular/angular-cli/pull/1632


feat: preemtive retreival based on p90

This change is

Codecov Report

Merging #2706 (0c94e24) into master (f3f8e6e) will increase coverage by 0.00%.
The diff coverage is 82.02%.

@@           Coverage Diff           @@
##           master    #2706   +/-   ##
=======================================
  Coverage   63.81%   63.81%
=======================================
  Files         236      236
  Lines       26757    26744   -13
=======================================
- Hits        17075    17067    -8
+ Misses       8157     8153    -4
+ Partials     1525     1524    -1

Impacted Files
Coverage Δ

pkg/retrieval/retrieval.go
70.49% <78.57%> (+6.56%)
:arrow_up:

pkg/pushsync/pushsync.go
69.68% <94.73%> (-0.12%)
:arrow_down:

pkg/localstore/subscription_pull.go
84.24% <0.00%> (-6.85%)
:arrow_down:

pkg/p2p/libp2p/headers.go
77.77% <0.00%> (-5.56%)
:arrow_down:

pkg/localstore/subscription_push.go
77.19% <0.00%> (-5.27%)
:arrow_down:

pkg/chainsyncer/chainsyncer.go
79.71% <0.00%> (-1.45%)
:arrow_down:

pkg/p2p/libp2p/libp2p.go
60.92% <0.00%> (-0.58%)
:arrow_down:

pkg/p2p/libp2p/internal/reacher/reacher.go
92.20% <0.00%> (+1.29%)
:arrow_up:

... and 1 more

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 f3f8e6e...0c94e24. Read the comment docs.


undefined binding error(s) if null value present.

A query with null value would throw a undefined binding(s) error.
User.forge({ name: null }).fetch()

Is it better to generate SQL
SELECT * FROM users WHERE name IS NULL

rather than throw a binding error ?

I've only a concern about this change
var foo = null if(bar == false){foo = "jack";} User.forge({ name: foo }).fetch()
in this case maybe the developer want to know with an error if the variable is null


Replacing logger.debug with logger.error

Maintainers will complete the following section

[ ] Commit messages are descriptive enough
[ ] Code coverage from testing does not decrease and new code is covered
n/a JSON/YAML configuration changes are updated in the relevant schema
n/a Changes to metadata also update the documentation for the metadata
n/a Pull request has a link to an osbs-docs PR for user documentation updates

@chmeliik @mkosiarc @tkdchen  @MartinBasti please review this PR

Why do we need this change? Error for user is constructed and added into exception, this output is more for debug


mmlu isn't consuming multiple gpus

Steps to recreate:
Launch mmlu on an instance with multiple gpus.  Run:
ilab model evaluate --model models/instructlab/granite-7b-lab --benchmark mmlu
Only 1 gpu is consumed.  Adjusting batch-size doesn't seem to have any effect.

This might be best fixed with https://github.com/instructlab/eval/issues/50

This is still an issue when the model is smaller than a single GPUs vram.  Moving to vllm has allowed larger models but not parallelizing a single model across multiple gpus


1.21.1 trial spawners

Using the latest version of the mod breaks trial chamber spawners essentially not allowing anything but breeze spawners to work properly

Thanks for reporting the issue! It has now been fixed and a new version with the fix is now available.


Add wrapper for Runhaskell, Fix #304

It works for me, but note the HACK part. I guess there should be a more disciplined way to fetch the path of ghc-stage2

@izgzhen Thank you! I think I can fix the HACK bit.
We have a strange failure of Travis though: I've no idea how your change led to recursive build rules, but somehow that did happen... Let me try to understand what's going on.

@izgzhen Does Hadrian still work for you from a clean build after this change?

Does Hadrian still work for you from a clean build after this change?
Yes, it works for me.

@izgzhen Thanks! I've restarted the CI to see if the error persists.

Looks like Travis is still not happy, and by the way:

My Linux one is GHC 7.10.3. and seemly works fine
I also tried it on my macOS Sierra, GHC 8.0.1. And it break just like Travis:

ghci-8.3: Warning: haddock-interfaces: /Users/zz/Repos/ghc/_build/stage1/libraries/ghci/doc/html/ghci/ghci.haddock doesn't exist or isn't a file
| Remove file _build/stage1/libraries/Cabal/Cabal/libHSCabal-<IP_ADDRESS>.a
/----------------------------------------------------\
| Run GhcCabal (stage = Stage1, package = ghc)       |
|      input: compiler/ghc.cabal                     |
|  => output: _build/stage1/compiler/package-data.mk |
\----------------------------------------------------/
shakeArgsWith    0.000s    0%
Function shake   0.369s    0%
Database read    0.000s    0%
With database    0.000s    0%
Running rules  711.839s   99%  ========================
Total          712.209s  100%
Error when running Shake build system:
* inplace/bin/iserv-bin
* OracleQ (PackageDataKey ("_build/stage1/iserv/package-data.mk","COMPONENT_ID"))
* _build/stage1/iserv/package-data.mk
* OracleQ (PackageDataKey ("_build/stage1/iserv/package-data.mk","COMPONENT_ID"))
Build system error - recursion detected:
  Key type:   OracleQ PackageDataKey
  Key value:  OracleQ (PackageDataKey ("_build/stage1/iserv/package-data.mk","COMPONENT_ID"))
Rules may not be recursive

A rough guess is that I should put runhaskell in a later build stage since it depends on ghc-stage2 -- but I am still struggling in finding how to do that

BTW, I wonder why it is runhaskell rather than runghc. I found such weird co-existing names in my prior Haskell experience as well, but never wrap my head around why it is do.

@izgzhen Many thanks for investigating this!

A rough guess is that I should put runhaskell in a later build stage since it depends on ghc-stage2 -- but I am still struggling in finding how to do that

This can be done by moving runGhc to stage2Packages, see here:
https://github.com/snowleopard/hadrian/blob/master/src/Settings/Default.hs#L114-L146
However, I'm not sure we should be doing that, because the Make build system build it in Stage1.

And how would that have anything to do with iserv?

I have no idea, this looks like a Hadrian bug to me, but I can't figure out the reason.

BTW, I wonder why it is runhaskell rather than runghc. I found such weird co-existing names in my prior Haskell experience as well, but never wrap my head around why it is so.

Indeed, there are many such instances in the GHC source tree. I guess most of these are just historical artefacts that people learned to live with, but which could be easily fixed to make the codebase easier to understand for newcomers.

Ahh! Mystery resolved.
Your PR is not the cause of failure. I've rebuilt one of the previous commits and it failed too -- this must be some new changes in GHC that caused a loop in the build system.
I'm merging your PR, thank you!

BTW, I wonder why it is runhaskell rather than runghc. I found such weird co-existing names in my prior Haskell experience as well, but never wrap my head around why it is so.

Just thought: I'll probably rename things in your commit to runGhc to avoid confusion within Hadrian.

Cool, thank you!

Just thought: I'll probably rename things in your commit to runGhc to avoid confusion within Hadrian.

I think it is a good idea :)

@izgzhen I've renamed everything to runGhc for consistency (see above commit) and also fixed the build. Unfortunately OSX instance of Travis still fails due to timeout -- I'll see what I can do.


fatal error: X11/Xlib.h: No such file or directory

Windows 10
golang 1.8.3
msys2
go get github.com/go-vgo/robotgo
github.com/go-vgo/robotgo
In file included from ./screen/goScreen.h:12:0,
from D:\Home\go\src\github.com\go-vgo\robotgo\robotgo.go:36:
./screen/screengrab_c.h:11:23: fatal error: X11/Xlib.h: No such file or directory
#include <X11/Xlib.h>
^
compilation terminated.

Please read README.md and install dependencies.

got the same issue
Windows 7
golang 1.12.5
msys2
In msys2, there is no libx11 package.


I want to change Int column to Time column.

Proposal:
Short summary of the feature.
Current behavior:
Describe what currently happens.
Desired behavior:
Describe what you want.
Alternatives considered:
Describe other solutions or features you considered.
Use case:
Why is this important (helps with prioritizing requests)?
I write this query. But it is not working.
sql.from(
  driverName: "mysql",
  dataSourceName: "${MYSQL_ACCOUNT}@tcp(mysql)",
  query: "SELECT id, UNIX_TIMESTAMP(created_at) as created_at, gender, birth_year, bank_code FROM tbl_user limit 100"
)
  |> rename(columns: {id: "user_id"})
  |> rename(columns: {created_at: "user_created_at"})
  |> rename(columns: {gender: "user_gender"})
  |> rename(columns: {birth_year: "user_birth_year"})
  |> rename(columns: {bank_code: "user_bank_code"})
  |> duplicate(column: "user_created_at", as: "_time")
  |> set(key: "_measurement", value: "tbl_user")
  |> to(org: "cnf",bucket: "push_user_filter")

Error message is here.
runtime error @18:6-21:4: to: column _time of type string is not of type time

I want to convert "user_created_at" to "_time" But it is very hard. Please save my life. help me!!!

Solution is her.
info = sql.from(
  driverName: "mysql",
  dataSourceName: "${MYSQL_ACCOUNT}@tcp(mysql)",
  query: "SELECT id, UNIX_TIMESTAMP(created_at ) *<PHONE_NUMBER> as created_at, gender FROM tbl_user limit 100"
)
  |> rename(columns: {id: "user_id"})
  |> rename(columns: {created_at: "user_created_at"})
  |> rename(columns: {gender: "user_gender"})
  |> duplicate(column: "user_created_at", as: "_time")
  |> duplicate(column: "user_id", as: "_field")
  |> duplicate(column: "user_gender", as: "_value")
  |> map(fn:(r) => ({ r with _time: time(v: r.user_created_at) }))
  |> yield(name: "info")
  |> set(key: "_measurement", value: "tbl_user")
  |> to(
  bucket:"push_user_filter",
  org:"cnf",
)

First i duplicate "user_created_at" column.
Then use "map()" function with "time()" function.
Set InfluxDB require columns. For example, "_Measurement", "_value"
Use "to()" function for save another bucket
Success my problem!


How to add additional data

How can i add additional data

additional data to what?

to custom actions , if i want to add any more addtional data then how can i achieve

You want to add additional data to the webhook body? The screenshot you are showing is the response body, it controls what Articulate returns when using the API.

I am bit confuse with postscript and these one , both looks similar and don't have much idea with postscript and response format , does both postscript and response format is used for when we trigger any api


Autosize Update Organization/Collection Description Window

https://github.com/dockstore/dockstore/issues/2864
cdkAutosize is apparently deprecated, changed to matTextareaAutosize and that seems to have fixed things. Pop-up window now changes with screen size.
Normal screen:

Mobile (small):

(investigate build issue)

was a flaky test


Update liar's dice to use LegalChanceOutcomes()

Updates liar's poker to use the best practice approach for returning legal chance outcomes from LegalActions(). Closes:https://github.com/deepmind/open_spiel/issues/992

Thanks!!


Adds docs for newly changed onChange callback.

This updates a comment that is no longer true after https://github.com/maxnowack/signaldb/pull/776 was merged in.

Thanks!


Fix for #1647

This fixed #1647, which discusses a compile error when an enum is deserialized and a user-defined struct has a "non default constructible" from_json function defined for it.
The issue was a template instantiation with a const-qualifier on the type. This pull request simply removes that qualifier.
I have extended the existing enum conversion test by adding a class in an anonymous namespace. For this class a "non default constructable" from_json function is defined. The "enum" test iteself did not need to be updated. I verified that the tests no longer compiled after the addition of the new class, and did once again compile after the change in json.hpp.

Note that (as discussed in #1647) this compile error is compiler-specific. It does not happen with e.g. Clang 10.0.0. I'm not actually sure why, I'm thinking GCC is correct here by failing to compile.

Coverage remained the same at 100.0% when pulling ddda67a09642c765f3d0898c3093a0804bb5a308 on AnthonyVH:develop into f272ad533d32a40a3b2154a76f1ae9a45eacd6d3 on nlohmann:develop.

Moved the test. Not sure what's up with the failure in Travis.

Thanks!

🔖 Release item
This issue/PR will be part of the next release of the library. This template helps preparing the release notes.
Type

[ ] ✨ New Feature
[x] 🐛 Bug Fix
[ ] ⚡ Improvement
[ ] 🔨 Further Change
[ ] 🔥 Deprecated function

Description

Non-member operator== breaks enum (de)serialization

Awesome!


remove github.com/spf13/pflag

flag is just fine.

Codecov Report

Merging #124 (62fabe7) into main (929e3f5) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #124   +/-   ##
=======================================
  Coverage   85.63%   85.63%
=======================================
  Files          18       18
  Lines        5074     5074
=======================================
  Hits         4345     4345
  Misses        648      648
  Partials       81       81

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 929e3f5...62fabe7. Read the comment docs.


Update to pyo3 v0.22

Updates to the latest version of py03. They have had quite a few breaking changes, but I attempted to do the minimum amount of changes to get to the latest version

@dicej I don't think I fully grasped that the runtime crate was getting embedded. I'll take another closer look at what made the tests fail before you have to review to save you some time

Looks like the resource tests are failing due to reference count issues; finalizers are either being run too soon or not at all.  Formerly, we relied on pyo3 v0.20's Py::into_ref, which kept the returned reference alive until the GIL was released, which worked perfectly for our case, but it looks like there's no equivalent in v0.22, so we'll either need to implement our own equivalent or come up with a different strategy.  I've got to sign off for the day, but I'll take another look tomorrow.

Thanks for looking. If there isn't an immediately obvious solution, I'm also fine putting this on pause for a bit depending on your availability

Hmm rereading the migration docs (yet again) I think I missed a few things in there as well. I can take another look as well to try and make some of this closer to the previous implementation

@dicej fair points. I think the ultimate issue is that we don't currently have a good way to test the changes. And while pyo3 claims to fix some soundness issues, I am worried I've potentially just created a lot more.
I think I'll put a pause on this to give us both a break as there isn't currently a pressing need to upgrade. And I might try and come at this with fresh eyes later

SGTM.  For what it's worth, I think that if we make appropriate use of the Py, Bound, and Borrowed types, we'll be able to avoid any new unsafe code and end up with something we have at least the same level of confidence in as we did with v0.20 (i.e. not perfect confidence -- there could still be subtle leaks lurking -- but good enough to move forward).


Support Craft 4

We use this plugin in all of our projects and currently it's one of the only plugins that does not have Craft 4 support.
Are there any plans to update this plugin to Craft 4?

also looking for a Craft 4 version

it's been 6 months sincen original post. Looks like this project is now abandonware.


feat(ui): show full address on hover in dapp bridge [LW-100056]

Checklist

[x] https://input-output.atlassian.net/browse/LW-10056
[x] Screenshots added.

As a user reviewing a Tx in the dapp bridge,
I want to be able to see and copy the full address of the recipients displayed in the screen,
So I can verify addresses are correct before signing
Proposed solution
This PR adds a tooltip over shortened addresses in the from/to section which shows the full address which can be checked and copied.
Screenshots

Changes unknown
when pulling 37b5ed49f14790a443c4ff159aa3ab544b078922 on feat/lw-10056-show-full-address-on-hover-dapp-bridge
into ** on feat/lw-9145-tx-summary-refactor**.