Initial transducers implementation

Squashed from buzzedecafe:transduce
Rebased to master
Discussed in ramduce
Credits to @buzzdecafe and @kedashoe

Squashed Commits:

we have a map transducer
Apply all arguments to transducer as function.
Use switch case dispatch for transducer function
port @kedashoe and @kevinbeaty changes
Fix build and tests.
_appendXf as single expression and fix require order for bulid
foldl uses _xwrap for use with functions
_dispatchable accepts function for use in _groupBy
_isIterable uses _symIterator
Fix filter/map to use _dispatchable appropriately
Curry _xany, _xfilter, _xmap for use with _dispatchable
Fix idx lint warning in _arrayReduce
Remove no longer supported transformer dispatch test
Transducers for take, takeWhile, drop, dropWhile
get tests working again
transduce tests
improve map test coverage
Add into
all and any working
Add find, findLast, findIndex and findLastIndex transducers
Step default value in any/all
stepLast no longer requires initial value since transducers always step single value
Allow null/undefined accumulators when checking reduced
groupBy transducer

Alternative to #865

Note, the mocha tests pass, but it is failing on creation of index.js ... I still need to look into this.  If anybody could offer any pointers, it would be appreciated.

thanks for doing this so fast @kevinbeaty .

it is failing on creation of index.js

have you tried make clean and then try again?

it is failing on creation of index.js
All is well now.

Man, this is a lot of work! I dropped the ball on this because i got very discouraged by the perf numbers. However, there is much that is good about this impl (if I say so myself) and there may be opportunities to optimize later.
I am thinking more and more about using properties on functions to store metadata about them, as recommended long ago by @megawac . I wonder if we could include an iteration strategy on a function, s.t. when called e.g. lazily(map(f)) it would iterate in a lazy fashion based on metadata -- a lazy iteration strategy -- on map; or more germane to this case, transduce(map(f), filter(g)) would use the transducer strategy over the composition. I don't know that this is possible,or how much work it would be, or how invasive. But if there is a way to thread the needle, it could be a way to get the best of several worlds.
That would address one of my primary concerns about this approach as it stands today: It is very invasive, essentially routing all iteration through reduce. It costs a lot in terms of typical-use performance, and you will not see the benefits until you get up to very large list sizes.

Wow. This is amazing.

I wonder if we could include an iteration strategy on a function

I think we could change the iteration strategy internally to the _transduceDispatch so I don't think it would be too invasive.   My initial thought would be to include a Ramda meta data property using a Symbol on the function with fallbacks similar to how we are handling iterator and transformer symbols.
Something like:
var symRamdaMeta = typeof Symbol !== 'undefined' ? Symbol('ramdaMeta') : '@@ramdaMeta'
fn[symRamdaMeta] = {}

// in _transduceDispatch or transduce... whatever makes sense
fn[symRamdaMeta].iterationStrategy = 'transduce'

My initial thought would be to include a Ramda meta data property using a Symbol on the function with fallbacks similar to how we are handling iterator and transformer symbols.

:+1:
fn[symRamdaMeta].iterationStrategy = 'transduce'
I was imagining a reference to a function, maybe something like:
fn[symRamdaMeta].strategy = {
    lazy: lzIter,
    xf: xfIter,
    //... etc.
};

then the implementation of lazily could query the function and grab the correct iteration strategy. We can fight over design details later.

I was imagining a reference to a function

Ah.  Gotcha.  That could work well.

We can fight over design details later.

Do you want me to propose something and update the PR, or are you saying this is a separate issue?

Do you want me to propose something and update the PR, or are you saying this is a separate issue?

I would like to build/see a smaller scale proof of concept first. So I think a separate issue/PR makes sense

I updated the PR with a few minor changes to _dispatchable to help reduce the intrusion/performance concerns.  _dispatchable now resembles _checkForMethod with the exception of dispatching on a transformer given in list position.  Like _checkForMethod, the function to call as a fallback is passed in to allow an optimized version in replace of using transducers and reduce for the common case.  I changed map to use the internal version.  Note I did not need to do anything with function meta data. We might be able to make of use of that later, but it was not necessary with this change.
Using old version (map through reduce in common case on my laptop):
Running suite map [lib/bench/map.bench.js]...
_.map x 2,915,839 ops/sec ±4.59% (85 runs sampled)
map(sq, nums) x 339,775 ops/sec ±4.09% (84 runs sampled)
map(sq)(nums) x 307,052 ops/sec ±4.41% (80 runs sampled)
mapSq(nums) x 321,318 ops/sec ±4.33% (81 runs sampled)
Fastest test is _.map at faster than map(sq, nums)

Using new version (map using internal _map in common case):
Running suite map [lib/bench/map.bench.js]...
_.map x 3,464,050 ops/sec ±2.51% (91 runs sampled)
map(sq, nums) x 2,057,462 ops/sec ±0.89% (100 runs sampled)
map(sq)(nums) x 1,715,320 ops/sec ±0.95% (100 runs sampled)
mapSq(nums) x 1,977,764 ops/sec ±0.96% (98 runs sampled)
Fastest test is _.map at 1.68x faster than map(sq, nums)

Does this make you feel better about things?  I can update the other functions to fallback to the internal versions if you like this approach.

wow @kevinbeaty that is quite an improvement

Latest update, after a few more tweaks to _dispatchable
Running suite map [lib/bench/map.bench.js]...
_.map x 3,526,052 ops/sec ±0.92% (100 runs sampled)
map(sq, nums) x 3,165,482 ops/sec ±0.93% (100 runs sampled)
map(sq)(nums) x 2,337,636 ops/sec ±3.02% (93 runs sampled)
mapSq(nums) x 3,297,122 ops/sec ±1.16% (94 runs sampled)
_.map at 1.07x faster than mapSq(nums)

:fireworks:

Yeah. So TIL that typeof checks can make a big difference in micro benchmarks.
So is that a :+1: to convert the rest of the _dispatchable functions in this PR to this new approach?  Does it alleviate your concerns?

i'm pretty gobsmacked actually. well done! and yes, let's proceed. Anyone else have $0.02 to contribute?

Ok. Converted the other functions and removed no longer needed helper functions (including _transduceDispatch). The diff is cleaner now.  Probably also a good time for interested parties to review.
A few notes:

Some functions now have "functor method dispatch" that didn't before all any drop dropWhile find findIndex findLast findLastIndex groupBy ... If this is controversial, I can remove this by passing null as methodname for these functions and handle appropriately in _dispatchable.  Say the word and I'll make this change.
reduce (and by extension groupBy) still has a performance hit due to addition of iterable dispatching and __reduced__ checks.  Maybe this is OK.  I haven't  looked at it much so there may be opportunity for improvement.

all any drop dropWhile find findIndex findLast findLastIndex groupBy

do any other libs have these object methods that we want to enable point-free composition for? most of these seem to be pretty array specific.

took a quick look:

highland has find; that would be nice support;
lazy.js: every (all); some (any); this would mean :alien: which is ok by me, but may be a fight; also drop and dropWhile; also find
etc.

so for the most part i guess we do want to dispatch on these; in some cases we may have to alias :scream: if we want interoperability

Would it be better to leave the method dispatch out for now to avoid conflating that discussion with the discussion of transducers?

Also, we could leave some transducers out of this initial PR and add and discuss additions in separate PRs if this chunk is too big, or merits of certain transducers are questionable...
Transducers added in this PR:

all
any
drop
dropWhile
filter
find
findIndex
findLast
findLastIndex
groupBy
map
take
takeWhile

Of these transducers-js, transducers.js support only:

drop
dropWhile
filter
map
take
takeWhile

Which might be a good set to start with...

This is looking sweet (haven't read it all and have only skimmed comments). 2 comments:
Why step instead of next which is more common for iterators?
It looks like a lot of the X* stuff is boiler plate - does it make sense to have a XBase and have all of them inherit from it - would save quite a couple of LOC.

thanks @megawac, i'd forgotten how much we did on this. i'm very please @kevinbeatty revived it and got it into this condition. there's probably a lot of room to improve it still, any input gratefully accepted.
@kevinbeaty

Also, we could leave some transducers out of this initial PR and add and discuss additions in separate PRs if this chunk is too big, or merits of certain transducers are questionable...

I'm torn. smaller bites are easier to digest. on the other hand, if we're in for a penny, we're in for a pound. i don't think we want some functions that can compose/iterate transducer-style and some that don't.

and as to step vs next, i think step is the transducer/clojure term. so we may have some work to do to resolve the two names.

First of all, great work @kevinbeaty!

I'm torn. smaller bites are easier to digest. on the other hand, if we're in for a penny, we're in for a pound.

Creating new transducer types is pretty easy (and simple, © R Hickey), I don't think it really matters how many are included in the initial commit. Number of transducers aside, I agree with the sentiment and believe you do not go far enough. Ramda is still pre 1.0.0. This is the time to go all in on something that addresses all the issues that have been raised over Ramda's life vis a vis iterating over different data types.
Currently we have in src/map.js
module.exports = _curry2(_dispatchable('map', _xmap, _map));
First of all, now we are maintaining two versions of map? But more to the point, I say get rid of dispatchable all together, replace all the current _fn with their _xfn counterparts and :dancer: This just seems so much more important to me than keeping old map around because.. it is 1.4 times faster than xmap? (Why is it actually still here? A better reason I'm missing?)  (I have not gone through all the code, I may have gotten some details wrong, but I think we get the point).
It's scarier, but Ramda has a great community, if there is anything wrong, someone will find it and fix it. If there are speed gains to be had, someone will realize them.
I think one way we can measure that this is accomplished is that Ramda uses transducers but no transduce function needs to be exposed to the user (I would not expose it at all, personally) and data does not need any decorated to be transduced. Nobody wants to transduce. Nobody wants to wrap their collections in something every time they want to iterate. They just want to map and filter.

@megawac

Why step instead of next which is more common for iterators?

see https://github.com/cognitect-labs/transducers-js#transformer-protocol

It looks like a lot of the X* stuff is boiler plate - does it make sense to have a XBase and have all of them inherit from it - would save quite a couple of LOC.

I actually had just that (even called xfBase) in my initial commit, but it seemed a little un-Ramda (partly because I was also supporting plain objects which complicated things). In any event, there aren't many transducers and they are quite simple having just the 3 methods, I don't think it is worth the perf hit since you don't really gain anything except a little less code

btw :arrow_up: not an argument for my PR, just general thoughts on the issue. This seems to have more support, I can close #865 if you guys would rather focus here

Oh boy, here we go :)  First of several comments ....
@megawac

Why step instead of next which is more common for iterators?

Couple reasons I can think of (stated first, then expanded below):

The signature of next (both in iterator in generator case) do not match the signature of step.
To be compatible with the "Transformer Protocol" defined/used by other libraries.

Regarding 1. step is a reducing function that accepts an accumulator and iteration item.  next either accepts no arguments (when used with iterators) or a single iteration item (when used with generators).  Although the concept is similar to iterators/generators, the idea is that the accumulator is maintained external to the transducer instead of internal to the iterator.  This allows decoupling the transformation from the input and output sources.
Regarding 2. As @kedashoe  mentioned, this conforms to the Transformer Protocol defined jointly by transducers-js (from @swannodette )  and transducers.js ( from @jlongster ).  Transducers written for those libraries could be composed with transducers within Ramda.
Maintaining compatibly with this protocol brings immediate support for several other libraries, already including:

RxJS
Highland
Kefir
js-csp

Less importantly (warning self-promotion)

transduce and transduce-stream

.... I'm sure I missed some and probably many others to come
Although it may not be necessary to support this protocol directly, I think there should be a good reason to diverge from it...

@megawac

It looks like a lot of the X* stuff is boiler plate - does it make sense to have a XBase and have all of them inherit from it - would save quite a couple of LOC.

I agree, there is a lot of duplication.  A base class could be used.  Another approach is using a function like transformStep.   This could certainly be evaluated...  I'm impartial as long as we maintain some sort of compatibility with the transformer protocol (see preceding comment).  I'm not sure what effect this may have on any benchmarks...

@buzzdecafe

I'm torn. smaller bites are easier to digest. on the other hand, if we're in for a penny, we're in for a pound. i don't think we want some functions that can compose/iterate transducer-style and some that don't.

I agree we could be in for a pound.  But I'd really like this PR to focus on the core functionality to make sure we settle on something that we are in at all...  I agree with @kedashoe that once the core is in place, additional transducers are not difficult to add, and that effort could be "crowd sourced" if we have a core to work from.

@kedashoe
Thanks for the great feedback

First of all, now we are maintaining two versions of map?

Yes.  This PR initially started with only the transducer version, but we switched back to this due to concerns re. performance and invasiveness as discussed with @buzzdecafe  above.
The first version is a transducer implementation, the second version is the fallback implementation to maintain the current behavior (with existing performance enhancements). It was a tradeoff.  Again, I'd like to get some core functionality in place that isn't too invasive from the initial implementation. And, I'd also like to keep @buzzdecafe happy :)  We can always iterate on the implementation details in several future PRs if we can agree on the core API.

I say get rid of dispatchable

_dispatchable is an evolution of the existing _checkForMethod.  It not only supports dispatching to transducers and fallback implementations, it supports the "functor method dispatch" that is already supported within Ramda.  And from @buzzdecafe comment above, it may eventually evolve to support some kind of iteration strategy and potential aliases (but I think both should be discussed external to this PR).
Regardless, I don't know if the debate of removing existing functionality should really be conflated with the addition of transducer functionality.

I think one way we can measure that this is accomplished is that Ramda uses transducers but no transduce function needs to be exposed to the user

Turns out this is  difficult to do without getting very hairy, and also trying to work out the revese composition property of transducers with the current array implementations. We spent a good month debating how to do this in ramduce gitter room.  I'm not saying it can't be done... but not sure if it needs to be addressed immediately.

Nobody wants to transduce. Nobody wants to wrap their collections in something every time they want to iterate. They just want to map and filter.

With curried into it's actually not that bad. Want existing Ramda functionality you know and love? It still works!  Want to use transducers?  Use them directly with any library that supports the protocol!  Want to use the magic incremental aggregation that transducers enable, just use (potentially curried) into:
var ramdaStyle = R.compose(R.map(fn), R.filter(p)(array)
var transducerStyle = R.into([], R.compose(R.filter(p), R.map(fn), array)
// or
var intoArray = R.into([])
var transform = R.compose(R.filter(p), R.map(fn)) // note reversal
var intoArrayStyle = intoArray(transform)

var intoObject = R.into({})

var immutableJsTransformer = ...
var intoCustom = R.into(immutableJsTransformer)

@buzzdecafe and I did have a hearty discussion about this a while back, and I think I'm representing the (tentative) conclusion from those discussions fairly, but please correct me if I missed something.

Absolutely stellar work @kevinbeaty! I'm still working my way through all the details of this thread/PR, but from what I have seen thus far, and of your work with transducers in general, I am enthusiastic.

I'm sure I missed some and probably many others to come

Looks like baconjs/bacon.js#444 and cujojs/most#90 are coming soon...

@rockymadden Thanks. To be clear, this PR was the result of collaboration with @buzzdecafe @kedashoe and others

I've been offline for days, and won't have a lot of time for the next several to give this the full review it deserves.  But I'm extremely impressed with what I'm seeing, both here and in @kedashoe's separate PR.  This stuff is fantastic!

Latest push had no new updates. Rebased to master and removed commit to dist/ramda.js per changes to CONTRIBUTING.md.

ping @davidchambers

@davidchambers Great feedback.  Pushed an update with your suggested changes.

It's looking great! I commented on two functions which need documentation, but otherwise this looks ready to merge. :)

:tada:
fan-f***ing-tastic

Awesome.  Will update the docs tonight.

I'll plan on adding a note in the public functions that support transducers.
Something like
/**
  * ...
  * Acts as a transducer if a transformer is given in list position.
  * @see R.transduce
  */

And then offer a short explanation to transducer and transformer terminology in the JSDoc for transduce

Updated JSDoc per @davidchambers
Added _has check to XGroupBy per @AutoSponge
Updated _stepCat to use native functions on init per @megawac
Added a few tests

any input @CrossEye ?

Incorporated latest tweaks from @AutoSponge and @davidchambers

:+1: looks pretty much good to me. I would say making a X base class would be something worth doing in the future to remove some of the redundancy tho

This is fantastic.  I've finally gotten through a once-over of everything and managed to run some performance tests (no significant changes for current benchmarks; presumably there would be speed-ups in combination ones we never wrote.)
I'm very, very impressed!
I was barely listening as the initial passes at this stuff was going on.  I knew what you were talking about but not much about how you were going about it.  This looks really well-done.
I wouldn't delay merging the code for this, as we can address it later.  But I'd like to either have a discussion or to learn about reasons already discussed for choosing function constructors over Object.create (even if we shimmed it) or a possibility like this, for _xmap:
var _curry2 = require('./_curry2');

module.exports = _curry2(function _xmap(f, xf) {
    return {
        xf: xf,
        f: f,
        init: function() {
            return this.xf.init();
        },
        result: function(result) {
            return this.xf.result(result);
        },
        step: function(result, input) {
            return this.xf.step(result, this.f(input));
        }
    };
});

It's not at all that I think one of these other options is necessarily better, but I think we should consider them... unless this was already hashed out when I was not paying attention.
Really nice work!

@sig tweaks per @davidchambers
@ R.add in test per @CrossEye
Rebased to master

@megawac

I would say making a X base class would be something worth doing in the future to remove some of the redundancy tho

@CrossEye

But I'd like to either have a discussion or to learn about reasons already discussed for choosing function constructors over Object.create

All options worth exploring.

I wouldn't delay merging the code for this, as we can address it later.
:+1:  Please :)

Everyone ok with merging this one?  This is one of our most sweeping changes to date, so I'd really like to hear from @buzzdecafe, @davidchambers, @kedashoe, and (I suppose :wink:) @kevinbeaty if there any objections.  Of course anyone is free to chime in.  (Especially you @megawac. :wink:)

let's do it -- big thanks to @kevinbeaty and @kedashoe for their great work -- particularly reviving this when i had dropped the ball.
One caveat -- this now means we have clojure-style iterators when transducing. SO they support array-like, string, iterator-protocol, and object; this means weird unspecified behavior when iterating objects because of indeterminate iteration order.

:+1:

would this constitute a major or minor version?

since we're pre-1.0 I think we can get away with a minor bump

One caveat -- this now means we have clojure-style iterators when transducing. SO they support array-like, string, iterator-protocol, and object; this means weird unspecified behavior when iterating objects because of indeterminate iteration order.

Actually, there is no implicit object iteration in this PR for this very reason (we could certainly add it in the future).  It currently supports merging objects on the accumulator side but iteration of objects must be explicit (using ES6 style Symbol.iterator or @@iterator)

i stand corrected! thanks @kevinbeaty

:deciduous_tree:

:tada:

:confetti_ball:

Fantastic work!

Awesome.
I have to admit, hitting that "Delete Branch" button felt pretty good ;)
Thanks all.


Mac support, is there support or alternatives for Mac and Linux?

There is Monado, but it's a OpenXR Linux-only runtime, and we dont have a working driver for it yet.
Valve used to have OpenVR support for macOS but it died. If you can run OpenVR games with no problem from Steam on Mac I will figure out how to build the SlimeVR driver for macOS, but it's not really a permanent solution.

I mostly need it for development as I do most of my development on Mac, but I can try to find a work around.
Thank you!


lookup throws error with default config when no AAAA records

It seems that using the default config, lookup will throw an error when looking up addresses for a host that has only IPv4 records.
default config
lookup('ipv4-only-hostname', (error, results) => {
    if (error) {
        console.error(error)
    }
    console.log(results)
})
// Error: Empty "AAAA" records list for ipv4-only-hostname
// undefined

family: 4
lookup('ipv4-only-hostname', { family: 4 }, (error, results) => {
    if (error) {
        console.error(error)
    }
    console.log(results)
})
// <IP_ADDRESS>

family: 6
lookup('ipv4-only-hostname', { family: 6 }, (error, results) => {
    if (error) {
        console.error(error)
    }
    console.log(results)
})
// Error: Empty "AAAA" records list for ipv4-only-hostname
// undefined

all: true
lookup('ipv4-only-hostname', { all: true }, (error, results) => {
    if (error) {
        console.error(error)
    }
    console.log(results)
})
// [
//   { address: '<IP_ADDRESS>', family: 4 }
// ]

Expected behaviour:
I would like the default settings to simply work, by ignoring missing IPv6 addresses and returning the IPv4.
For the record, I'm using the named lookup export and passing it directly to a https.Agent:
import { lookup } from 'dns-lookup-cache'
const agent = https.Agent({ lookup })

Thoughts?

Hello! Thank you for the issue. May you provide an output of 'dig' command for the domain you are testing or the name of domain to check?
I suppose that the issue in smth other. Here is an example. google.com has A and AAAA records, github.com has only A record.

;; ADDITIONAL SECTION:
ns-1707.awsdns-21.co.uk. 20978	IN	A	<IP_ADDRESS>

;; Query time: 59 msec
;; SERVER: <IP_ADDRESS>#53(<IP_ADDRESS>)
;; WHEN: Fri Aug 30 15:20:20 EEST 2019
;; MSG SIZE  rcvd: 264

Code to check.
const {lookup} = require('dns-lookup-cache');

function printSingleResult(testName) {
    return (error, address, family) => {
        if (error) {
            console.log(testName, error);
            return;
        }

        console.log(`${testName}: IPv${family}: ${address}`);
        console.log('-------');
    };
}

lookup('google.com', {}, printSingleResult('google.com, default'));
lookup('google.com', {family: 4}, printSingleResult('google.com, family: 4'));
lookup('google.com', {family: 6}, printSingleResult('google.com, family: 6'));

lookup('github.com', {}, printSingleResult('github.com, default'));
lookup('github.com', {family: 4}, printSingleResult('github.com, family: 4'));
lookup('github.com', {family: 6}, printSingleResult('github.com, family: 6'));

Output is
$ node index.js
google.com, family: 4: IPv4: <IP_ADDRESS>
-------
github.com, family: 4: IPv4: <IP_ADDRESS>
-------
google.com, family: 6: IPv6: 2a00:1450:4003:80a::200e
-------
google.com, default: IPv4: <IP_ADDRESS>
-------
github.com, family: 6 { Error: queryAaaa ENOTFOUND github.com
    at Lookup._makeNotFoundError (/Users/woz/projects/dnstest/node_modules/dns-lookup-cache/src/Lookup.js:261:30)
    at _innerResolve.then.catch.error (/Users/woz/projects/dnstest/node_modules/dns-lookup-cache/src/Lookup.js:165:32)
  hostname: 'github.com',
  code: 'ENOTFOUND',
  errno: 'ENOTFOUND',
  syscall: 'queryAaaa' }
github.com, default: IPv4: <IP_ADDRESS>
-------

So, default config with no AAAA records on github.com works well.
Did you reconfigure resolv.conf?

Hello,
thanks for the response. The test you provided is working correctly, so it seems the issue is in the specific domain I am querying.
The only difference I can see is that for the domain, dig ipv4-only-hostname AAAA returns only a CNAME record, when dig ipv4-only-hostname A returns both CNAME and multiple A records.
So maybe it's regarding resolution of CNAME records?

It's because of your host ipv4-only-hostname has CNAME that has only A record. If CNAME of ipv4-only-hostname has AAAA record you get it.
Check the RFC-1034, section 3.6.2.
If a CNAME RR is present at a node, no other data should be
present; this ensures that the data for a canonical name and its aliases
cannot be different.  This rule also insures that a cached CNAME can be
used without checking with an authoritative server for other RR types.

CNAME RRs cause special action in DNS software.  When a name server
fails to find a desired RR in the resource set associated with the
domain name, it checks to see if the resource set consists of a CNAME
record with a matching class.


Detected integration that uses deprecated async_get_registry to access entity registry

2022-07-08 08:55:00 WARNING (MainThread) [homeassistant.helpers.frame] Detected integration that uses deprecated async_get_registry to access entity registry, use async_get instead. Please report issue to the custom component author for midea_dehumidifier_lan using this method at custom_components/midea_dehumidifier_lan/init.py, line 75: entity_registry = await async_get_registry(hass)
HA 2022.7

same

@LuckyTriple7 @PskNorz can you check if problem persists in version 0.8.10?

Seems the update fix the error i will keep an eye on it, thanks!


Solve issues with bumping clj-kondo

Isolate plugins using different profiles.
Run linters and tests as separate jobs in order to
have them run in parallel.
Signed-off-by: Anders Eknert<EMAIL_ADDRESS>

Weird — I don't see that eastwood linter failing locally, and it seems to work on main here too 🤔

Yea, that's funny. Works for me locally too.

Works now when keeping the aot settings from the project... I still don't understand why this would work locally.. perhaps those were kept in local caches? Oh well, let's roll with this for now then.


Consider using POSIX notation for timezones

As opposed to the current auto-detection, which is somewhat unreliable.

Closing in favour of #23 at this time, although this might be nice one day.


How to backup an account when you don't have access to the host

I was wondering how I could download all data from my account on my computer from the website https://gitea.com
I wanted to centralize my data on one computer so how could I download all the data from my account?
Thanks in advance!

Just clone/mirror your repositories to your computer

Yes but is there any way to clone all data at once. For example if I want to send my entire profile to another host, could I?

You could write some scripts to do that. Or we should implement this on tea command.

I don't know how to create a script for that, and what is a tea command?

@chopin2712 you could a programming language of your choice to pull a list of all the repos on a gitea instance belonging to your user, and then use git clone against that list.
Information about the tea command can be found here: https://gitea.com/gitea/tea/

Yes but is there anyway to do it automatically? I believe that organizations who have lots of different projects would be bored to copy and paste all project's names one by one in a  sh file. It 's not my case but I am curious.


[BUG] Triggers duplicating after renaming

Mage version
0.9.68
Describe the bug
When I renaming trigger - its dulicate
example:
https://demo.mage.ai/pipelines/test_ntf_2/triggers
I create two triggers and rename it twice and four time

To reproduce

Open triggers
Create new
Save
Open trigger
Rename
Save
You have two triggers instead one.

Video
https://github.com/mage-ai/mage-ai/assets/13833432/9e0b1777-2fa3-4140-aff2-4ed3492ab84d
Expected behavior
Screenshots
No response
Operating system
No response
Additional context
setting Save triggers in code automatically - is ON

This should be fixed in the next version (0.9.70).

v0.9.70 has been released


Census tags propagation.

This change allows census tags to be propagated through rpc.
Serialized form of census tags is added to the per-call meta data element with key == ":census".
Alistair, I put the context binding logic into C core. Please review.
Craig, although I assigned this PR to Alistair, I still want you to review the change, especially the c-core related part.

Fixed formatting in static_metadata.*. PTAL

Can one of the admins verify this patch?

Per offline discussions, I reverted all changes except the part to add two new metadata keys "census" and "census-bin" for census printable tags and census binary tags.
PTAL

LGTM, but also looks like you need to merge to head/resolve conflicts.

merged with upstream.


Open editor tab from command line with contents from stdin

VSCode supports opening files from the command line from stdin, by using - as the file name to open. For example, I can do:
kube@codekube:~/workspace$ kubectl get deployment codekube | code -

and I would have a new editor tab open with whatever kubectl get deployment codekube outputs. I'm currently emulating that feature with a script that creates a temporary file then calls code-server name_of_temp_file, but it's not the best solution, in my opinion.

I see, currently you might be able to use this as a workaround:
code-server $(kubectl get deployment codekube)

Wouldn't that need the command to output a filename to open?
On Mon, Feb 8, 2021, 10:10 JammSpread<EMAIL_ADDRESS>wrote:

I see, currently you might be able to use this as a workaround:
code-server $(kubectl get deployment codekube)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/cdr/code-server/issues/2693#issuecomment-775215917,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADMGEZLBC56PSU5WJTWACDS575F3ANCNFSM4XINSSYQ
.

Oh nevermind, sorry, I misunderstood your question.

Oh never mind, I'm sorry I misunderstood your question. I see you meant that it would open a new untitled with the contents of whatever command you had piped in.


How can I add some dialects for optimization?

I tried to incorporate some optimizations into Triton, but I don't know how to do it. If you have any ideas, please share them with me. I would greatly appreciate it.

https://github.com/llvm/llvm-project/blob/main/mlir/docs/Tutorials/QuickstartRewrites.md, this doc maybe help you.

https://github.com/llvm/llvm-project/blob/main/mlir/docs/Tutorials/QuickstartRewrites.md, this doc maybe help you.
I am truly grateful for your help.

收到!谢谢

收到!谢谢

大佬，我想要加入affine，但是我发现affine有自己的Analysis，我能想到的lowering方法是triton->affine->triton->其他dialects  ，这样合理吗，或者有什么更好的方法吗？求解答orz

https://github.com/microsoft/triton-shared
This might be what you're looking for?

收到!谢谢

https://github.com/microsoft/triton-shared
This might be what you're looking for?

Thank you very much!


NTR: stool specimen collection process

Editor preferred term: stool specimen collection process
Textual definition: A specimen collection process where the input is feces (stool).
Definition source: EuPath team
Proposed parent: specimen collection process
Example of usage:
Submitted by: EuPath team

Chris: we will need date of collection; good candidate for postcoordination; people working w/RDBs usually like terms precoordinated
Bjoern: put the output of the process in the axiomatic definition as well; when to pre and when to postcoordinate? when differentia is more than one feature?


Add overload to ffmpeg.on and ffmpeg.off for type inference

Add overload  to ffmpeg.on, no changes to code logic, just added declarations.
Update: same for ffmpeg.off

LGTM! Thanks for the contribution


First acceptance test

Description of the issue
Need to test that agent config file can only be modified by root.
Description of changes
Added a new security test dir and added the first test.
This is used in a new workflow created : https://github.com/aws/amazon-cloudwatch-agent/pull/675
License
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Tests
All tests pass: https://github.com/ChenaLee/amazon-cloudwatch-agent/actions/runs/4018230002

https://github.com/ChenaLee/amazon-cloudwatch-agent-test/pull/1


chore: update PHP dependencies

Automated changes by create-pull-request GitHub action

waiting on https://github.com/danharrin/livewire-rate-limiting/pull/26


f3: fix linux build

Description of changes
lib.optional -> lib.optionals to actually get the linux dependencies
and some other cleanup
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)

only f3write, f3read, f3probe

22.11 Release Notes (or backporting 22.05 Release notes)

[x] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@jmesmon mind checking i didn't break your darwin fix?

Result of nixpkgs-review pr 197174 run on x86_64-darwin 1


Version 3.0.5

Landed in https://github.com/metarhia/impress/commit/1117fb6f12f53352cb85fcdd79700662a56f86f7


Add GwtRunner, the GWT equivalent of CommandlineRunner

Changed the GWT ResourceLoader to include most of the built-in externs.
Changed JsComp.gwt.xml to use the SingleScriptLinker so that the GWT compiler only outputs a single JavaScript file (jscomp.nocache.js).
Changed JsCompGwtMain to GwtRunner with "JSCompiler" exported as the JavaScript name through JsInterop. Currently, GwtRunner supports a limited set of compiler flags, including compilationLevel,
warningLevel, languageIn and languageOut among others.
To use the GWT version of the compiler, do a Maven build and include "jscomp.nocache.js" from
target/closure-compiler-gwt-1.0-SNAPSHOT/jscomp/, Eg.:
<script src="jscomp.nocache.js"></script>
<script>
  var output = new JSCompiler().compile("let x;", {
      compilationLevel: 'ADVANCED',
      warningLevel: 'VERBOSE',
      languageIn: 'ECMASCRIPT6_STRICT',
      languageOut: 'ECMASCRIPT5_STRICT'
  });
  console.log(output);
</script>

As an aside, the Maven build for closure-compiler-gwt is much faster now that I removed most dependencies to gwt-user.jar.

The ResorceLoader/builtin externs part of this PR is hard to land internally, since our externs are located at different paths than externally.
Can we split off the GwtRunner changes without the default externs part to be landed first?

@blickly Done.


Using openai as a backend failing to auth due to null api_key passed to openai_chat_completions_request()

Auth error trying to make initial call to openai. First time tryiing to use openai for LLM backend. Appears api key is not being sent.
I used a breakpoint before line 191 in openai_tools.py (right before post request) and noticed that the auth token value is None
headers = {'Content-Type': 'application/json', 'Authorization': 'Bearer None'}
As a temporary solution I added this to the start of the openai_chat_completions_request(url, api_key, data) method and it works
import os
api_key = os.environ.get("OPENAI_KEY", api_key)

Please describe your setup

[ ] MemGPT version

What is the output of memgpt version? (eg "0.2.11")

[ ] How did you install memgpt?

pip install pymemgpt

[ ] Describe your setup

What's your OS (Windows/MacOS/Linux)? MacOS 14.2
How are you running memgpt?  Terminal (zsh)

Screenshots
See logs below
Config:
memgpt configure
? Select LLM inference provider: openai
? Enter your OpenAI API key (starts with 'sk-', see https://platform.openai.com/api-keys): sk-<REDACTED>
? Override default endpoint: https://api.openai.com/v1
? Select default model (recommended: gpt-4): gpt-3.5-turbo-16k
? Select embedding provider: openai
? Select default preset: memgpt_chat
? Select default persona: sam_simple_pov_gpt35
? Select default human: basic
? Select storage backend for archival data: local

Eror message:
  File "/Users/USERNAME/code/py_memgpt_helloworld/venv/lib/python3.11/site-packages/memgpt/openai_tools.py", line 334, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/USERNAME/code/py_memgpt_helloworld/venv/lib/python3.11/site-packages/memgpt/openai_tools.py", line 384, in create
    return openai_chat_completions_request(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/USERNAME/code/py_memgpt_helloworld/venv/lib/python3.11/site-packages/memgpt/openai_tools.py", line 201, in openai_chat_completions_request
    raise http_err
  File "/Users/USERNAME/code/py_memgpt_helloworld/venv/lib/python3.11/site-packages/memgpt/openai_tools.py", line 193, in openai_chat_completions_request
    response.raise_for_status()  # Raises HTTPError for 4XX/5XX status
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/USERNAME/code/py_memgpt_helloworld/venv/lib/python3.11/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.openai.com/v1/chat/completions

If you're not using OpenAI, please provide additional information on your local LLM setup:
Edit: removed details about LocalLLMs

This is unfortunate bug in 0.2.11 where the key doesn't get set during configuration.
You can set it manually if you open up the ~/.memgpt/config file (you can open the folder where this file exists with memgpt folder. Then, add these line chunk that says [openai] to the file:
[model]
model = gpt-4
model_endpoint = https://api.openai.com/v1
model_endpoint_type = openai
context_window = 8192

[openai]
key = sk-....

[embedding]
embedding_endpoint_type = openai
embedding_endpoint = https://api.openai.com/v1
embedding_dim = 1536
embedding_chunk_size = 300

This will be fixed in the 0.2.12 update.


Singleton Scope IDs for HTTP Trigger Functions

Hello,
I am unclear on how the scopeId parameter of the SingletonAttribute works. Specifically does the scopeId parameter work for HTTP Trigger Azure Functions when you bind it to a route parameter? How does the binding work? What variables/values can I bind to?
For example:
[Singleton("{input}", Mode = SingletonMode.Listener)]
public async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "v1/{input:length(1,30)}")] Microsoft.AspNetCore.Http.HttpRequest req, string input, ILogger log) {
    return new OkObjectResult(input + " world");
}

A HTTP POST request to this function with the URI 'v1/hello' would return: "Hello world".
But would the Singleton attribute work such that all requests to 'v1/hello' would run serially whereas two simultaneous requests with one to 'v1/first' and the other to 'v1/second' would run in parallel?
I see from this answer that for Service Bus Triggers you can bind to properties within the Message object directly.
Also in the documentation there is an example of a Queue Trigger Function with scopeId binding to a property in the WorkItem object.
It's unclear what's supported for HTTP Trigger Functions.

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

ID: a4500b14-64b4-4d1b-aae3-f0fd4dde85f2
Version Independent ID: 8fb75741-37b9-b45f-c0ca-9948ddaf1c06
Content: How to use the WebJobs SDK - Azure App Service
Content Source: articles/app-service/webjobs-sdk-how-to.md
Service: app-service
GitHub Login: @ggailey777
Microsoft Alias: glenga

@davekats Thanks for the feedback! We are taking a look into this and will get back to you soon.

@davekats Thanks for the feedback! We are taking a look into this and will get back to you soon.

@davekats, Apologies for the delay! Binding expressions for Singleton have the same behavior as those for general input/output bindings. That is, any binding data from the trigger is available for reference.
In the case of HttpTrigger, that includes any POCO members if you’re binding to a POCO type, as well as any route parameters.
In regards to your code, SingletonMode.Listener is not what you want for your requirement. If you're just trying to serialize individual invocations of the function then you should use the default mode, i.e. [Singleton(“{input}”)].
To answer your question – yes, this would serialize all invocations of v1/hello, allowing v1/first and v1/second to run concurrently.

We will close this out, but if you feel you need more information please just let us know.


It is possible to change headers visibility on the fly?

I have needs to change header visibility when i make layout, but in the end, in my layout headers must be hidden. In process of making layout i want to view how it looks through toggling this option.
It is possible? Unfortunatelly, In api i not found this one.
thx

A quick and dirty way of doing if you are using it for dev is to toggle the css visibility

Hi!
Just  $( '.lm_header' ).hide(); / .show()?
In this case lm_container have space at bottom side, like in this screen:
https://yadi.sk/i/q6Peg7MW3MdBFt

hm you could use header.position(false)
myLayout.root.getItemsByType('stack')[0].header.position(false)

and then loop through all the stacks

var allStacks = myLayout.root.getItemsByType('stack');
for (var i = 0; i < allStacks.length; i++) {
	allStacks[i].header.position(false)
}

change false for 'top' to bring them back

@ButchMonkey , Thanks for answer!
I update GoldenLayout to last version and i try to take stack from my component and to call  function  'position':

this.container.parent.parent.position(false);
Reason :  TypeError: this.container.parent.parent.position is not a function
While this.container.parent.parent has type 'stack'.
Maybe, i made something wrong?

Thanks @ButchMonkey!
My problem has been resolved!
Can close issue


Feature request: allow user to specify added column name

Currently, it looks like the column name of the added column is computed from the JSONPath used to find the value for the row.
I would like to control the names of my added columns. It would be great (and seemingly not hard) to add an alias property to expanded_columns values, that overrides the default column name computation.

I think this plugin should focus on expand_json. That alias function is implemented by embulk-filter-rename plugin. How do you use this plugin? Do you have any opinion that embulk-filter-expand_json should have the alias function?

Ah, I see. Sure, if I can combine with another plugin, that's fine for me!

Good. If you have anything else contact me.


Introduce overloaded constructor on AzureEventSourceListener

Following on from #43947, this PR introduces an overloaded constructor for AzureEventSourceListener that takes a (simpler) delegate without the formatted message. The intent is to give callers a way to avoid or defer the cost of formatting the message.
This will be a useful performance improvement for some "always on" listeners such as the AzureEventSourceLogForwarder in Microsoft.Extensions.Azure and Azure.Monitor.OpenTelemetry.

@christothes I presume this change has to be merged into Azure.Core before we can update the other SDK libraries (extensions and monitor) to consume it. If there's already a process to coordinate changes like this across libraries, please LMK.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.Core

@pharring :  Thanks very much for your contribution and continued help improving the Azure SDK developer experience!
I agree that this change would be helpful for scenarios when the Extensions AzureEventSourceLogForwarder or Monitor AzureEventSourceLogForwarder are used, as they ignore the formatted message string in the listener callback and delegate formatting to EventSourceEvent.
Because this is a change to the public API, we'll need approval from the .NET architects to move forward.   @KrzysztofCwalina and @tg-msft :  Would you please offer your thoughts?

@christothes I presume this change has to be merged into Azure.Core before we can update the other SDK libraries (extensions and monitor) to consume it. If there's already a process to coordinate changes like this across libraries, please LMK.

There's no formal process.   You're correct in that this would need to be merged and then would either need to wait for a Core release or temporarily shift the Monitor and Extensions source to a project reference temporarily.  Either way, we would generally use GitHub issues to track the individual changes needed.    In this case, since we have no urgency, I'd prefer to use the first approach and just catch the August release of Azure Core that should drop in two weeks.

@KrzysztofCwalina: waiting for your approval on the public API change.

APIs look good to me.

@jsquire I'm fairly certain that the test failures aren't related to this PR. Can this be merged now, or do we need to get clean?

@pharring : I agree that this is unrelated.  It's a timeout impacting macOS for another area.   I've kicked just that leg to see if we can get it to play nice and, if not, I'll force the merge.

/check-enforcer override


Vet clinic database: create animals table

In this PR I have done following things :

Created tables in SQL.

Inserted and query data in SQL.

SCREENSHOT  OF  BLANK TABLE animals INSIDE DATABASE vet_clinic :

SCREENSHOT OF DATA INSERTED INSIDE TABLE :

SCREENSHOT OF ALL QUERIES :

Thank you ,
Bhushan .

sir @Gambit142  , can you specify what changes are needed to make it valid ?

Hi @bhushan354,
While you made a great effort in this project, unfortunately, I cannot proceed to review your code.
Invalid Code Review Request
You have submitted a project, that does not use the template for SQL projects, as you're missing:

The Getting Started section on how to recreate a database.

Your README file is missing the key features section.

Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag @topeogunleye in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Invalid Code Review Request does not count into the code reviews limit.


Add support for arm64 in Docker image

Is your feature request related to a problem? Please describe.
I can't run the openbullet/openbullet2 image on my Raspberry Pi 4 because it only supports amd64.
Describe the solution you'd like
Add arm64 compatibility in the openbullet/openbullet2 image.
Describe alternatives you've considered
I couldn't compile as directed in the forum page for the same reason.

Done in https://github.com/openbullet/OpenBullet2/commit/9db9f8b6c1bc83d28682aee3f3d4f43b81adec59 you should be able to use the image on your rpi4 starting from update 0.1.7

I am still getting the same issue, even on 0.1.7:
ubuntu@ubuntu:~$ sudo docker run --name openbullet2 --rm -p 8069:5000 -v UserData:/app/UserData -it openbullet/openbullet2:latest
sudo: unable to resolve host ubuntu: Name or service not knownWARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
standard_init_linux.go:219: exec user process caused: exec format error
ubuntu@ubuntu:~$

It seems like linux/arm64 is now supported, but not linux/arm64/v8.

Alright thank you for the feedback, @meinname will take a look tomorrow

It seems docker has some problems to use the right architecture:
https://github.com/docker/for-linux/issues/1170#issuecomment-756845716
So let's approach it from both directions:
I set it now to explicitly to linux/arm64/v8 instead of just linux/arm64 and i moved the arm builds to top of the list https://github.com/openbullet/OpenBullet2/commit/e0261eb89c60017b1a279407601b85aef6252cf2
So hopefully on 1.1.8 it will be no problem anymore.
And in the meantime you can see if it is fixed with the latest docker version.

@GalacticLion7 0.1.8 is live, please test


MSIX: don't hardcode the version number

Instead of hard-coding the version number, pick it up from src/common/version.h
https://github.com/microsoft/PowerToys/blob/a14784cfd4b72fced222d49f20839be0758e9c47/installer/MSIX/appxmanifest.xml#L10

Why wouldn't this be set via the build farm with some config setting

I imagine you can, for WTS, this was all on the configured via a setting on the build server.

Since this is not a code change, no need to wait for 0.16 to be released to close it.

It is nice to know what we did in a single unified view but ok


Demo is not updated

package.json has a script for demo, but their is no webpack.config.js present, that is used by the script.
If it is intentionally done, I can raise a PR updating demos for the library.

I think I removed the demos. The ones that were there were not that useful. We can definitely have demos, there are some on CodeSandbox. Don't know if creating demos with Webpack is better.

Well I was working on making jsx to support functions as css properties (to have dynamic css with props), similar to styled-components, so was looking for demos, to test Component re-renders and stuff (as storybook doesn't support stateful Components). Creating demos with webpack would be great.
P.S: Anyways I figured out there's an addon component for this, already. Need to update the Docs to clearify these FAQs, I guess.

...  (as storybook doesn't support stateful Components).

You can create stateful/class components in Storybook. Something like this:
class Lalala extends React.Component {
  render () {
    return
lalala
;
  }
}

storiesOf('Story', module)
  .add('Default', () => {
    return <Lalala />;
  })

Thanks, will look into it.
Also, is it fine (now that there's already an addon component for dynamic props in css) to make jsx support functions as css properties (to have dynamic css with props)?

Yes, could be useful for some use cases. But mind that there is already a way to add custom CSS:
const Comp = jsx(/*...*);

<Comp css={{ /* ... */ }} />

Yes, there is, but sometimes it's easier to have just one styled component for dynamic behavior.
With jsx, if customization is needed, a parent component is required for overrides. Following can solve this problem:
const ComponentStyled = jsx( 'div', {
  c: props => props.light ? '#333' : '#fafafa',
}, 'ComponentStyled');

Instead of
const ComponentStyled = jsx( 'div', {
  c:  '#fafafa', // Some default
}, 'ComponentStyled');

const ComponentDynamic = props => (
  <ComponentStyled css={{ c: props.light ? '#333' : '#fafafa' }} />
);

The only issue, I faced while trying this was react warnings in development, for unknown props.
styled-component maintains a list of default DOM props for each HTML Element, which they use to filter out accepted props using de-structure. Don't want to maintain such a list here would make the addon very big in size. Any ideas?

You either need a list of props or do a filtering, I wrote about filtering here: https://github.com/streamich/nano-css/blob/master/docs/style.md#filtering-pass-through-props

BTW, if you add functions as CSS props, it's probably better to add them to stylded addon.
There could be a separate optional addon that maintains a list of known CSS properties, so that addons like styled could use it (if installed) to filter out properties.

Cool! Will look into these. Thanks


update changelog test

@Ricardojc2017 please review https://lbry.tech/contribute and beginner github tutorials before submitting pull requests, thank you!


Add tags support?

style like https://github.com/leopku/hugo-theme-next is very comfortable.

My bad, it's already been supported.


The modules that work on tiny objects

Hello !
Thanks for sharing your great work!
In section 6.1, the paper mentioned the R50-DeAOT-L performs better than R50-AOT-L on tiny or scale-changing objects. I would like to know which module is beneficial to tiny or scale-changing objects.
Looking forward to your kind reply !

The performance gains mainly come from the decoupling of visual and ID embeddings. In fact, the improvement is general and not limited to tiny or scale-changing objects. I highlighted those examples since R50-AOT-L usually fails in those cases.


Help with designing headless payloads

Page: /cli/usage/headless
Feedback:
It is very difficult to assemble JSON payload for all headless commands for all user options. It would be of a great help to have a command line option to generate a payload. Commands will walkthrough all the user options and only emit the final configuration/payload JSON file that can be then used for executing headless command
For example, user will execute the following command:
amplify add auth --gen-headless-payload > auth-payload.json
amplify add api --gen-headless-payload > api-payload.json
Then these files can be modified and preserved to be used in CI/CD like this:
cat auth-payload.json | jq -c | amplify add auth --headless

Is this going to happen?
This is such a fantastic idea.
If not, how about some documentation to enable us to write the JSON
I am getting an error on my attempt with no feedback
Powershell script:
$addAuthJson = @{
  version = 2
  resourceName = "$newAppName Cognito"
  serviceConfiguration = @{
    serviceName = "Cognito"
    userPoolConfiguration = @{
      signinMethod = "EMAIL"
      requiredSignupAttributes = @("EMAIL")
      userPoolName = "$newAppName User Pool"
      autoVerifiedAttributes = @("email")
      emailVerificationSubject = "Your Verification Subject {####}"
      emailVerificationMessage = "Your Verification Message. Click the link below to verify your email = {####}"
      emailVerificationMessageType = "LINK"
      userPoolGroups = @(
        @{
          groupName = "internal"
        },
        @{
          groupName = "partner"
        },
        @{
          groupName = "host"
        },
        @{
          groupName = "guest"
        }
      )
    }
	}
}

$addAuth = $addAuthJson | ConvertTo-Json
Write-Host "Add AUTH..."
# Run amplify add auth with the JSON string as a parameter
$addAuth | amplify add auth --headless

I get this error:

{"errorName":"UnknownFault","errorMessage":"Unexpected end of JSON input","resolution":"Please report this issue at https://github.com/aws-amplify/amplify-cli/issues and include the project identifier from: 'amplify diagnose --send-report'","link":"https://docs.amplify.aws/cli/project/troubleshooting/"}


R: @aaltay @pcoet @lostluck
GitHub Actions tests are passing in my fork: https://github.com/davidcavazos/beam-starter-go/actions

Since this is in the apache org, I can merge this if you can't. Please let me know, and it'll be done.

Wohooo!  Congrats!
On Wed, Jun 22, 2022 at 4:20 PM Robert Burke @.***>
wrote:

Merged!
—
Reply to this email directly, view it on GitHub
https://github.com/apache/beam-starter-go/pull/1#issuecomment-1163754205,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABGMTJCJU4QWTY57ZEJQFLTVQONUVANCNFSM5Y5BA4PA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Stop emission of spurious price values

What does this PR change?
Modifies metric emission loop not to emit costs that are > 30x a running average of that cost for CPU, RAM, GPU.
Does this PR rely on any other PRs?
No.
How does this PR impact users? (This is the kind of thing that goes in release notes!)
Prevents cost data from being corrupted by incorrect resource capacity emissions from the k8s API. See issue described here: https://github.com/kubecost/cost-model/issues/927
Links to Issues or ZD tickets this PR addresses or fixes

Resolves https://github.com/kubecost/cost-model/issues/927

How was this PR tested?
Deployed to a cluster, and mis-reports were simulated by giving metrics a high probability of emitting massive cost spikes.

Updated! Still declining to record a totalCost datapoint if CPU or RAM datapoint is an outlier, since totalCost is defined in part by those values and would itself be an outlier. No longer keeping a running average of totalCost or GPU costs, though

Also, looks like you've got an unnecessary commit in this branch (not a big deal): 73b8da2

I'm unable to merge here because Github still telling me Ajay requested changes. @AjayTripathy I think you'll have to come back and give this the ✔ before it'll let me merge.


Networking support

Blocker: #24

TCP layer has been implemented.

Closed for now, as the initial requirements were already met.


Admin Tool - Add Login Capability

Please implement the following:

Add login capability to the admin tool.

Make a default login, and then make the login configurable via the admin tool setup process.

Update the architecture and deployment guide so that it includes information about the new functionality, and how to configure it.

@rsial2 , done. See merge request #44.

Fixed


[FLINK-27991][table-planner] ORC format supports reporting statistics

What is the purpose of the change
In FLIP-231, https://cwiki.apache.org/confluence/display/FLINK/FLIP-231%3A+Introduce+SupportsStatisticReport+to+support+reporting+statistics+from+source+connectors, we aims to support csv, parquet, orc format for reporting statistics. This pr is a part of it to support Orc format. The details are as follows:

In OrcFileFormatFactory, for class OrcBulkDecodingFormat, we implements FileBasedStatisticsReportableInputFormat interface, and implements reportStatistics() method. In this method, we cover all types stats of Orc supported, including complex types.

Adding two UT tests, OrcFormatStatisticsReportTest and OrcFileSystemStatisticsReportTest, they all extends from StatisticsReportTestBase and cover the logical of Orc stats report.

Brief change log

In OrcFileFormatFactory, for class OrcBulkDecodingFormat, we implements FileBasedStatisticsReportableInputFormat interface, and implements reportStatistics() method.
Adding two UT tests, OrcFormatStatisticsReportTest and OrcFileSystemStatisticsReportTest.

Verifying this change
Using two UT tests, OrcFormatStatisticsReportTest and OrcFileSystemStatisticsReportTest to verify change, including single orc file and multi orc files in folder.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): yes
The public API, i.e., is any changed class annotated with @Public(Evolving):  no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper:  no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? yes
If yes, how is the feature documented? no docs

It seems that juni5 is not used. Is it because TableTestBase is not used?

Hi, Now TableTestBase not using juni5, and one of my test class extends TableTestBase. So I think the best way to upgrade to juni5 should modify TableTestBase first.

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure


MPT data cleanup for RemoveUntraceableBlocks

We have KeepOnlyLatestState to remove old MPT data, but it strips everything up to the latest state. We at the same time have RemoveUntraceableBlocks which makes node remove old blocks/transactions, but it doesn't do anything else. So if we're to have KeepOnlyLatestState set to false and RemoveUntraceableBlocks set to true the node will drop old blocks, but keep all MPTs at the same time which doesn't make a lot of sense. I think it'd be appropriate to drop old MPTs along with corresponding blocks in this configuration.

It has some intersections with the KeepOnlyLatestState problem for P2P state exchange (#1992). Nodes need to keep not just the latest state, but also P1 and P2.

So we need to keep some set of MPT states, either [Rn-traceable...Rlatest] as here or [Rp₂, Rp₁, Rlatest] as with KeepOnlyLatestState and state synchronization enabled (deleting Rp₂ every StateSyncInterval).

After some testing (luckily, mainnet is >900K blocks now) I can agree with https://github.com/nspcc-dev/neo-go/pull/2137#issuecomment-925878341, GC-based solutions spend like 95-99% of their time iterating over MPT and updating generations, the seek-delete part is then very fast. The biggest problem is that MPT grows fast over time and with 904906 dump and 10K generations my latest GC runs took more than 7 minutes (even with 100K generations it can be more than 9m per cycle). So while this generation update can be done asynchronously to the other node activities (unlike seek-delete) it still costs too much.
I had an idea of moving the generation data into the key, but probably it's not a good idea either, both because it makes reads cost more (up to three accesses to the DB instead of one) and especially since it doesn't solve the MPT traverse problem. Seek-delete can be made faster with this, but it's not a problem anyway.
So we need some scheme that will allow to make some judgement over node's validity just by looking at it (while seeking), without going through MPT. And I think I have one.
We can use hash, height keys with value, active, (refcount | height) values. The operation is as follows:

we have refcounting enabled with our regular meaning (the number of references corresponds to the latest root)
the height in the key is the height of node addition
active flag is true if the node is active in the latest root, in this case we have refcount stored afterwards
if active flag is false, then the node is not active and it has the block number where it was deleted stored afterwards
when we're updating an already existing node we just manage the refcounter as usual
when a new node appears we check for the presence of some older one by doing a seek with hash prefix:

if there is no node, we add one appending current height to the key
if there is an old node, but it's inactive, we do the same
if there is an old one and it's active we update the refcounter as usual

when the refcounter goes to zero and the node needs to be deleted we mark it as inactive with height of the block where the deletion happened

Notice that the main logic only creates/updates KV pairs in the DB, it never deletes them. And when updates are done one type of the update is final, that is the deactivation, after it the KV pair is never changed again (a new key will be used if the node is to reappear). Now the GC thread can come in and do its job:

seek over the whole MPTData prefix, look at values:

active ones are not touched
block number is extracted from inactive ones and compared to the current latest block number we need to keep, if it's too old, the key is dropped, if not it's kept

This thread can be asynchronous, if it doesn't see any new keys added that's fine, if it doesn't get some updates it's not a problem either (all of this will be handled in subsequent GC runs); when it deletes something nothing breaks in the MPT handling logic (those won't be used again anyway).
The overhead is rather minimal compared to our regular refcounter, it's just that we never delete things and to get something we need to do a Seek instead of Get. Most of the time this Seek will yield exactly one result for us, so it shouldn't be a problem. GC can be run at any intervals with this scheme.
@fyrchik, @AnnaShaleva, what do you think? I'll probably try implementing that.

@roman-khimov First, some questions:

When operating with RemoveUntraceableBlocks setting, GC just deletes blocks with deleted height < current - MaxTraceableBlocks, right?
When operating without any history removal, is it possible to store the same MPT node multiple times? Or does GC also work in this case?

Most of the time this Seek will yield exactly one result for us, so it shouldn't be a problem.
But can we just iterate backwards and take the first result? (given that key-height is stored as big-endian). This way Seek will always yield one item.

I see only 2 points of slow-down:

While Seek has the same cost as Get for bbolt or leveldb it can incur non-zero overhead for our MemCached wrapper, where Seek requires iterating over the map (making n Puts quadratic in time). But nothing stops us from implementing memory caching a bit differently for this use-case.
Because inner nodes change on every leaf change, and refcount=1 for nodes close to the root, we will put them in DB instead of deleting (because we need to set deletion height). This will increase allocations, (if less leaves are touched, the relative overhead should (?) be greater). I wonder how we will behave in this case (many blocks, small number tx per block) when restoring from dump. May be nodes which are born and die between flush cycle could be deleted immediately, in some circumstances.

Otherwise, a good solution, I think storing height in key is a powerful idea we have missed in our earlier discussions.

When operating with RemoveUntraceableBlocks setting, GC just deletes blocks with deleted height < current - MaxTraceableBlocks, right?

At the moment it's done right in the storeBlock, but yes, it can be moved to the GC phase too.

When operating without any history removal, is it possible to store the same MPT node multiple times?

In this case the keys are just hashes, it makes little sense mangling them.

But can we just iterate backwards and take the first result?

Yeah, that's what I have implemented already.

Because inner nodes change on every leaf change, and refcount=1 for nodes close to the root, we will put them in DB instead of deleting (because we need to set deletion height).

That's the main source of garbage, but we actually will just overwrite them (with the same length, so it's not a huge problem).

May be nodes which are born and die between flush cycle could be deleted immediately, in some circumstances.

I think these are handled already, we're refcounting internal changes before the Flush and their refcount is zero.

While Seek has the same cost as Get for bbolt or leveldb it can incur non-zero overhead for our MemCached wrapper


required arguments

Hello,
Maybe I'm just stupid, maybe not, but I don't understand how the error type works for arguments... In my command configuration, I just want to configure my argument as "required".
I did this :
export default class LovelyCommand extends Command {
  public constructor() {
    super("find", {
      aliases: ["cmd"],
      category: "Public Commands",
      description: {
        content: "My lovely command.",
        usage: "cmd",
        example: ["cmd"],
      },
      args: [
        {
          id: "myarg",
          type: "string",
        }
      ],
    });
  }

  async exec(message: Message, args: any): Promise<Message> {
  // some code
  }
}

When I use it with no parameters I get no error and my argument is null.
Expected behavior : when the argument is not filled, the bot reply with an error message (configurable could be cool) to the user.

I even tryed :
args: [
        {
          id: "myarg",
          type: Agument.validate("string",(m,p,str) => str !=== null),
        }
      ],

But not working :(

Use otherwise:


1.0.1 & 2.0.0 version

🐛 Bug Report
=== BUILD TARGET url_launcher OF PROJECT Pods WITH CONFIGURATION Debug ===
/Users/xxx/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.0.0/ios/Classes/PermissionHandlerPlugin.m:2:9: fatal error: 'permission_handler/permission_handler-Swift.h' file not found
#import <permission_handler/permission_handler-Swift.h>
Expected behavior
Reproduction steps
Configuration
Cocoapods 1.5.3
Podfile
...
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
config.build_settings['SWIFT_VERSION'] = '4.1'
end
end
end
...
Version: 1.0.1 & 2.0.0
Platform:

[x] :iphone: iOS
[ ] :robot: Android

Solved:

Build new project with 👍 -i swift

Hello @penjual I face the same problem, where did you put -i swift please ?

Nevermind, adding use_frameworks!  made it. See below :
target 'Runner' do
use_frameworks! # flutter_swift_compile


async operations with cosmos db

As of now, the Python SDK doesn't support Async operations with the cosmos DB. From my perspective, this is a must-have feature.

@rajata07 thanks for letting us know. Looping in my team //cc: @annatisch @mayurid

I desperately would want this as well, kinda surprised it wasn't done yet considering the importance MSFT places on Cosmos. Anyway, count me in for this

and why did @shurd remove the Cosmos label from this issue? Took me a while to find this, I was going to open a new one, would have been much easier if the Cosmos label was still on it

From my investigation, this is a change that the SDK team will make, not the Cosmos DB team. At the time, that label was making this appear in our backlog. I removed it from our backlog since we do not own that aspect.

@shurd - please leave the service-name label in place and if you need to filter out service-team issues please use the client (SDK team) vs Service Attention (service team) labels.
On the other hand - doing a fully asynchronous query pipeline in the Cosmos SDK will need service-team input. :)

We also need this for our use case.

Internal Tracking
CSEF370143

I would expect this feature too.  Does the "Internal Tracking" number mean that this is being worked on?

Internal tracking number does not mean it is being worked on

We are currently evaluating different databases/storage solutions including CosmosDB. The main usage would be from Python code which was explicitly written with async support. Sadly we do not have the work force to contribute async support here :( and adding sync calls for CosmosDB might then be a disqualification. Can you give an update if this will make it onto your roadmap?

Unfortunately this work is still not scheduled. Since this is a feature request, user voice would be a better forum for this issue https://feedback.azure.com/forums/263030-azure-cosmos-db.
In the meantime, I you can always use the REST API directly: https://docs.microsoft.com/en-us/rest/api/cosmos-db/ Closing this issue for now.

please vote here! https://feedback.azure.com/forums/263030-azure-cosmos-db/suggestions/41539546-async-python-support

Any update on this?


[BUG]  Pinecone doesn't add metadata to request

Please provide as much details as possible, this will help us to deliver a fix as soon as possible.
Thank you!
Describe the bug
A clear and concise description of what the bug is.
PineconeEmbeddingStore, the Pinecone implementation of Embedding store, is a TextSegment embeddings store. Since the latter has a Metadata attribute, it stands to reason that if a client called the add method using TextSegments with metadata, that the metadata would be uploaded to Pinecone. The actual behavior is that the Metadata gets dropped.
Log and Stack trace
Please provide a log and a stack trace (with exception), if applicable.
N/A
To Reproduce
Please provide a relevant code snippets to reproduce this bug.

Instantiate a Pinecone Client, index, and an embedding model
Create a TextSegment with non-trivial metadata, for example

(excuse my Java, I am a Clojure programmer)
Metadata m = new Metadata(Map.of(
    "a", "b",
    "c", "d"
));

TextSegment t = TextSegment.from("I Am a text segment, m)

Create embeddings for this text (although you can actually pass in a random vector for this repro) and invoke .add with the segment to upload to Pinecone
The metadata will not make it to Pinecone

Expected behavior
A clear and concise description of what you expected to happen.
Expecting the metadata to appear in the Pinecone console/be retrieved with Query requests
Please complete the following information:

LangChain4j version: e.g. 0.24.0
Java version:o openjdk version "21.0.1" 2023-10-17
Spring Boot version (if applicable): e.g. 2.7.14

Additional context
Add any other context about the problem here.
This appears to be just omitted from the interaction with Pinecone: https://github.com/langchain4j/langchain4j/blob/e2ba2201f5243e854e1afc9e0706479b5f917c3e/langchain4j-pinecone/src/main/java/dev/langchain4j/store/embedding/pinecone/PineconeEmbeddingStore.java#L135
I may try to make a pull request. In the meantime I will have to write my own Pinecone integration with their SDK.

See https://github.com/langchain4j/langchain4j/pull/437 for a fix suggestion

Has been implemented in https://github.com/langchain4j/langchain4j/pull/1400


Allow repeated measurement keys

Allow repeated measurement keys.
Implements steps 1, 2, 3, and 4 from https://github.com/quantumlib/Cirq/issues/4274#issuecomment-1020250299:

Expand ClassicalDataStore with the extra dimension
Remove the exception if a measurement is repeated and just toss it into the extra dimension.
Ensure the generated log_of_measurement_results grabs the most recent index. (This step "just worked" by virtue of having a default index=-1).
Add an optional index property to KeyCondition to specify which index to use in classical controls (default -1).

Step 5 will be a surprisingly straightforward follow-up to this one https://github.com/daxfohl/Cirq/compare/repeated...daxfohl:repeated2 (still needs fleshed out for serializing the new field etc.).
Step 6 is being done in parallel in #4949 and subsequent PRs.

@95-martin-orion This is ready

Update: #4555 has been merged.

@95-martin-orion integrated. Should be gtg

This may be causing issues in external simulators: https://github.com/quantumlib/Cirq/issues/5000


Get full name instead of usename

I would like to be able to insert the full name of the logged in user as a variable instead of just the username. Is that possible?

I'm working on windows 10, and only the username is available. The only option is see is to manually create a custom environment variable with the full name and use #{envVar:}


Use fixed device/partition UUIDs with ZFS

For some unknown reason ZFS creates partition 1 and partition 9 when
adding to the pool. As we later add to the pool we would want the same
to ensure that otherwise identical hardware ends up with identical PCR5
measurements from the TPM.

@eriknordmark won't this make it easier to predict what the verifier expects as partition UUIDs?

@eriknordmark won't this make it easier to predict what the verifier expects as partition UUIDs?

Maybe but the key desire is when there a lots of identical hardware (with identical BIOS settings etc) that the PCRs are identical to make it eaiser to do PCR template enforcement at scale.


Haiku: use raw pointers instead of references in convenience functions

The Haiku API has some convenience macros to make it easier to call certain
functions. In the libc implementation, these are implemented as unsafe
functions. The previous choice was to take certain pointer parameters as
references, and do the conversion to raw pointers when the actual external
function was called.
However, this causes issues with the image_info struct, which needs to be
initialized in Rust, before a native API call is used to enter data. Since
part of this structure consists of function pointers, mem::zeroed() cannot be
used, since in Rust function pointers cannot be NULL. Thus one needs to use the
MaybeUnit API to properly initialize it. This then makes it problematic to
use the convenience functions, as a MaybeUnit<image_info> cannot be converted
into an &mut image_info before it is marked as initialized with valid data. It can
be converted into a raw *mut image_info, so if the function accepts this as a
parameter it can be used.
For consistency, all convenience functions have been converted from using
references to using raw pointers.

r? @JohnTitor
(rust-highfive has picked a reviewer for you, use r? to override)

Thanks for clarifying, seems reasonable to me.
@bors r+

:pushpin: Commit 59afbfe9f63b460341860e70e8e1bf82a8640c4d has been approved by JohnTitor

:hourglass: Testing commit 59afbfe9f63b460341860e70e8e1bf82a8640c4d with merge b0355749497445f70d7da4491327d9d1aeeffe07...

:sunny: Test successful - checks-actions, checks-cirrus-freebsd-11, checks-cirrus-freebsd-12, checks-cirrus-freebsd-13
Approved by: JohnTitor
Pushing b0355749497445f70d7da4491327d9d1aeeffe07 to master...


Discreet mode doesn't block information for manual control

Viewing your coins through the manual control screen does not hide your UTXOs while discreet mode is on.

It's intended. In send workflow nothing is hidden.


To work around this we should fall back to setting the commit message explicitly with git commit -m "<message>"
fyi @watson

Published in 5.5.6


Add validation for query parameters.

@neomerx a very small issue just found for filtering boolean.
the filtering only identify and accept 1 instead of "true"  as parameter,
having "true" as parameter will not properly return correct set of collection
while either 0 or false has no problem.

@dreamsbond This functionality is actually covered with tests and seems to work.
Can you please post a sample you have the problem with?

i am having a model 'task';
<?php namespace App\Data\Models;

use Doctrine\DBAL\Types\Type;
use Limoncello\Contracts\Application\ModelInterface;
use Limoncello\Contracts\Data\RelationshipTypes;
use Limoncello\Flute\Types\JsonApiDateTimeType;

/**
 * Class Task
 *
 * @package App\Data\Models
 */
class Task implements ModelInterface, CommonFields
{
    /**
     * Table name
     */
    const TABLE_NAME = 'tasks';
    /**
     * Primary key
     */
    const FIELD_ID = 'id_task';

    /**
     * Field name
     */
    const FIELD_DATELINE = 'dateline';
    /**
     * Field name
     */
    const FIELD_SUBJECT = 'subject';
    /**
     * Field name
     */
    const FIELD_COMPULSORY = 'compulsory';

    /**
     * Field name
     */
    const FIELD_DESCRIPTION = 'description';
    /**
     * Field name
     */
    const FIELD_DISPLAY_ORDER = 'display_order';

    /**
     * @inheritDoc
     */
    public static function getTableName(): string
    {
        return static::TABLE_NAME;
    }

    /**
     * @inheritDoc
     */
    public static function getPrimaryKeyName(): string
    {
        return static::FIELD_ID;
    }

    /**
     * @inheritDoc
     */
    public static function getAttributeTypes(): array
    {
        return [
            self::FIELD_ID            => Type::INTEGER,,
            self::FIELD_DATELINE      => JsonApiDateTimeType::NAME,
            self::FIELD_SUBJECT      => Type::STRING,
            self::FIELD_COMPULSORY     => Type::BOOLEAN,
            self::FIELD_DESCRIPTION   => Type::TEXT,
            self::FIELD_DISPLAY_ORDER => Type::INTEGER,
            self::FIELD_CREATED_AT    => JsonApiDateTimeType::NAME,
            self::FIELD_UPDATED_AT    => JsonApiDateTimeType::NAME,
            self::FIELD_DELETED_AT    => JsonApiDateTimeType::NAME,
        ];
    }

    /**
     * @inheritDoc
     */
    public static function getAttributeLengths(): array
    {
        return [];
    }

    /**
     * @inheritDoc
     */
    public static function getRelationships(): array
    {
        return [],
        ];
    }
}

with test:
public function testIndex()
{
    try {
        $queryParams = [
            'filter'  => [
                'compulsory'  => "true",
            ],
        ];

        $headers = ['Authorization' => 'Bearer ' . $this->getAdministratorsOAuthToken()];
        $response = $this->get(self::API_URI, $queryParams, $headers);
        $this->assertEquals(200, $response->getStatusCode());

        $this->assertNotNull($resources = json_decode((string)$response->getBody()));
        $this->assertCount(6, $resources->data);
        $this->assertCount(9, $resources->included);

        $resource = $resources->data[0];
        $this->assertEquals(8403, $resource->id);
    } catch (JsonApiException $exception) {
        var_dump($exception->getErrors());
    }
}

the result gave also records including compuslory = false

Aha. Query parameters. I thought of inputs for create/update. Currently, query parameters are not validated/sanitized.
I think it might have some sort of validation though not as strict as for create/update as we don't care about lengths/min/max/etc.
Not sure what exactly it should be at the moment but I have a feeling this issue is closer to enhancement rather than a bug.

@neomerx  inputs for create/update seems ok.
let me recheck again

I think I've fixed the issue (currently it's the last known one). Here is an example how to validate/sanitize/convert query inputs. The example above uses it for date-times, however other types such as bool, int and etc are also supported.


Omnibus should't use existence of a file as an indicator whether to upgrade

I'm trying to update chef using omnibus. I installed the cookbook and specified the version I'd like to install.
 The file exists in /opt/chef_11.6.2-1.ubuntu.12.04_amd64.deb ready to be installed, but the cookbook instructs it to skip since the file already exists.  Here's the relevant line:
[2014-05-21T17:35:22+00:00] DEBUG: remote_file[omnibus_remote[chef_11.6.2-1.ubuntu.12.04_amd64.deb]] exists at /opt/chef_11.6.2-1.ubuntu.12.04_amd64.deb taking no action.

The only way to get around this is to manually remove the file, rm /opt/chef_11.6.2-1.ubuntu.12.04_amd64.deb.
Proposed fix:
Instead of using existence of this file as indicator whether to upgrade, perhaps just run chef-client --version and parse the version, compare to desired version, and skip/run as needed.

:+1:

I use a wrapper cookbook around omnibus_updater, and in there I have
directory node['omnibus_updater']['cache_dir'] do
  action :delete
  recursive true
  not_if { node['chef_packages']['chef']['version'] == node['omnibus_updater']['version'] }
end

include_recipe 'omnibus_updater'

The above works around the issue
cc #65

#46 fixes this

This issue has been solved in the new chef_client_updater cookbook. I'm going to close this issue out here since we've deprecated this cookbook in favor of the new method. We believe it provides a much better experience and encourage everyone to try it out.


After uploading SSL certificate the webserver restarts-should be expresses in UI, upload two files instead of a zip

Environment info

Version: 1.7
Deployment: AZURE|ESX|AWS|GCLOUD|DEV|VBOX
Customer: NAME

Actual behavior

When Uploading SSL certificate the webserver and s3rver are restarted.
the UI does not warn against it, and does not refresh after (like when setting DNS)

Expected behavior

there should be a warning that the operation will result in a restart
the UI should refresh afterwards
Also break certificate upload to 2 files instead of a zip

Steps to reproduce

upload SSL certificate

Screenshots or Logs or other output that would be helpful
(If large, please upload as attachment)

As we are not investing in the UI console, closing


Color difference between link text and regular text too subtle

@jsouth I can agree with #5615 that on some monitors that the difference in color between clickable/link text and normal text is probably too subtle.
See: https://docs.docker.com/test/#links-and-images with dark mode turned on

Closing this ticket due to its age, and the impending refactor. If you think this is in error, feel free to reopen. Thanks!


Section / subsection titles intruding into gutter and margins

New formatting issue: long section and subsection titles intrude into the gutter between columns and the right margin. For example, see page 7 of https://github.com/dmzuckerman/Sampling-Uncertainty/blob/4bf625d64a533da9e20aab0ddb625e711c2e56d3/main.pdf

@liantze are you able to help with this?
I've also had an issue where bibliography entries do not sort & compress properly with natbib (despite this being in the class file); is that something you are running into as well, @dwsideriusNIST ?

@davidlmobley No I've not noticed any sorting problems. (pdflatex does "pause" for an unexpected amount of time when it gets to .../natmove.sty, but ultimately it does compile.) Can you point me to an example?

In your PDF linked to above, references are in alphabetical not numerical order. I thought they were supposed to be in numerical if correctly sorted/compressed?

Closed issue #25 didn't address the alphabetical vs. numerical order question; I thought the alphabetical ordering was chosen purposely. I would vote for numerical order by appearance, though.

Likewise.

References issues are now in #51

It looks like LaTeX is somehow trying too hard to fit hyphenated words into the sectional headings and failing. It's probably cleaner to just left-align the sectional headers and not attempt to justify on both ends? This is included in #52 .

@dwsideriusNIST - doublecheck that this is fixed now that #52 is merged? (Thanks @liantze !)

This fix works for the sampling uncertainty paper.


Found segmentation fault in Pillow

As I'm well past the fuzzing tests from #9, I'm filing separately, but it might be the same underlying problem.
This one happens during Tests/test_file_jpeg.py::TestFileJpeg::test_qtables:
#0  0x00007ffff7d7cfaf in unlink_chunk (p=p@entry=0x7fffe8011630,
    av=0x7fffe8000030) at ./malloc/malloc.c:1622
#1  0x00007ffff7d7fdcd in _int_malloc (av=av@entry=0x7fffe8000030,
    bytes=bytes@entry=512) at ./malloc/malloc.c:4303
#2  0x00007ffff7d816e2 in __libc_calloc (n=n@entry=1,
    elem_size=<optimized out>) at ./malloc/malloc.c:3674
#3  0x00007ffff6ed2a73 in _setimage (decoder=0x4ac44180b40,
    args=<optimized out>) at src/decode.c:204
#4  0x000055555564ff77 in method_vectorcall_VARARGS (func=0x4ac52040820,
    args=0x7ffff74e0bd0, nargsf=<optimized out>, kwnames=0x0)
    at Objects/descrobject.c:324
#5  0x000055555563fbb3 in _PyObject_VectorcallTstate (kwnames=<optimized out>,
    nargsf=<optimized out>, args=<optimized out>, callable=0x4ac52040820,
    tstate=0x555555bc7280) at ./Include/internal/pycore_call.h:168
#6  PyObject_Vectorcall (callable=0x4ac52040820, args=<optimized out>,
    nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:327
#7  0x00005555555d60d2 in _PyEval_EvalFrameDefault (tstate=0x7fffe8011630,
    frame=0x10000040, throwflag=-402652448) at Python/generated_cases.c.h:813
#8  0x0000555555642e36 in _PyObject_VectorcallTstate (kwnames=0x4ac440241c0,
    nargsf=3, args=0x4ac440a0690, callable=0x4ac40411ae0,
    tstate=0x555555bc7280) at ./Include/internal/pycore_call.h:168
#9  method_vectorcall (method=<optimized out>, args=0x4ac440a0698,
    nargsf=<optimized out>, kwnames=0x4ac440241c0) at Objects/classobject.c:62
#10 0x0000555555641285 in _PyVectorcall_Call (tstate=0x555555bc7280,
    func=0x555555642cd0 <method_vectorcall>, callable=0x4ac44025900,
    tuple=<optimized out>, kwargs=<optimized out>) at Objects/call.c:285
#11 0x00005555555d5903 in _PyEval_EvalFrameDefault (tstate=0x7fffe8011630,
    frame=0x10000040, throwflag=-402652448) at Python/generated_cases.c.h:1355
#12 0x0000555555642e36 in _PyObject_VectorcallTstate (kwnames=0x4ac44025080,
    nargsf=2, args=0x4ac44080d80, callable=0x4ac3fa53b60,
    tstate=0x555555bc7280) at ./Include/internal/pycore_call.h:168
#13 method_vectorcall (method=<optimized out>, args=0x4ac44080d88,
    nargsf=<optimized out>, kwnames=0x4ac44025080) at Objects/classobject.c:62
#14 0x0000555555641285 in _PyVectorcall_Call (tstate=0x555555bc7280,
    func=0x555555642cd0 <method_vectorcall>, callable=0x4ac44025e80,
    tuple=<optimized out>, kwargs=<optimized out>) at Objects/call.c:285
#15 0x00005555555d5903 in _PyEval_EvalFrameDefault (tstate=0x7fffe8011630,
    frame=0x10000040, throwflag=-402652448) at Python/generated_cases.c.h:1355
#16 0x0000555555642e36 in _PyObject_VectorcallTstate (kwnames=0x4ac440300f0,
    nargsf=1, args=0x4ac44090c80, callable=0x4ac3fa556e0,
    tstate=0x555555bc7280) at ./Include/internal/pycore_call.h:168
#17 method_vectorcall (method=<optimized out>, args=0x4ac44090c88,

The fact the crash happens in system malloc suggests something really bad happening.

It's worth noting it doesn't always crash. Sometime it ends with a ConcurrencyError.

It looks like when the crash happens it comes from a use-after-free. I haven't dug deep enough yet, but here is a pernosco debugging session from when the crash occurred: https://pernos.co/debug/lkC9KVox-a-m2pWWMd9Eeg/index.html

This comment over the testcase could be relevant (my system is using libjpeg-turbo):
https://github.com/python-pillow/Pillow/blob/c6e07d02721a65618e5a1a6ecc91ea1049c3a6a1/Tests/test_file_jpeg.py#L541-L543

It's worth noting it doesn't always crash. Sometime it ends with a ConcurrencyError.

When ConcurrencyErrors happen on this testcase, they're mostly related to truncated reads, and it seems the crashes could be a consequence of read problems.

https://github.com/python-pillow/Pillow/pull/8512 has been merged. --require-gil-disabled should now pass for this particular test in Pillow main.


Tau defined as inverse?

Description
It looks like the implementation of tau does not match its formula (one is the inverse of the other). The paper reference should be verified and this should be made consistent.
https://github.com/glotzerlab/euclid/blob/8f255d850def83348e24325fafe472b17c0008ee/euclid/shape_classes/convex_polyhedron.py#L39-L47

This issue is now resolved on next.


Update developer guide, add , delete and mark assignment

Codecov Report

Merging #72 (ae14813) into master (79c1f12) will increase coverage by 0.70%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master      #72      +/-   ##
============================================
+ Coverage     65.71%   66.42%   +0.70%
- Complexity      397      405       +8
============================================
  Files            78       78
  Lines          1368     1373       +5
  Branches        141      143       +2
============================================
+ Hits            899      912      +13
+ Misses          438      428      -10
- Partials         31       33       +2

Impacted Files
Coverage Δ

...in/java/seedu/address/logic/parser/ParserUtil.java
87.23% <0.00%> (+3.90%)
:arrow_up:

...n/java/seedu/address/model/assignment/DueDate.java
82.60% <0.00%> (+23.98%)
:arrow_up:

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 79c1f12...ae14813. Read the comment docs.


fix(statusline): respect transparent background

🎉 First off, thanks for taking the time to contribute! 🎉 Here are some guidelines from us:

Format code using stylua.
New plugin integration should be added in alphabetical order
Recommendation:

Create a topic branch on your fork for your specific PR.
Consider using conventionalcommits.org's rules for creating explicit and meaningful commit messages.
If it's your first time contributing to a project then read About pull requests on Github's docs.

LGTM 🌮


Document configuration validity check request

[Enter feedback here]
Hello,
In this document, it is noted that NLA should be turned on, however, even using<EMAIL_ADDRESS>(even if its a local  admin on a PC) does not succeed as NLA authentication fails.  The only way to use RDP is to turn off NLA and use<EMAIL_ADDRESS>on the Desktop login prompt without NLA.  We've tested this with Win 10 Pro 21H2, and the latest Win 11 Pro 22H2...even in Azure IaaS with the AzureAD Extension enabled on a Windows 11 Pro PC.
There are other blogs in WWW that suggest turning NLA off is the only option....is this MS doc valid?
Thank you.

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

ID: 72e1cc18-3fc2-d7fa-7ff3-20fc9a3596d4
Version Independent ID: 8ed24664-ce8c-7c08-654a-d3ef267f274f
Content: Connect to remote Azure Active Directory-joined PC (Windows) - Windows Client Management
Content Source: windows/client-management/connect-to-remote-aadj-pc.md
Product: windows-client
Technology: itpro-manage
GitHub Login: @vinaypamnani-msft
Microsoft Alias: vinpa

@vinaypamnani-msft Please help n resolving this issue. Thanks

Closing this issue as obsolete as I've made a lot of edits to this document recently and this may no longer be relevant. IF you still notice any inaccuracies in the article, please reach out.


Now that she's leaving us, does @sfmig still want to be assigned all Renovate-related PRs?

😭

probs not, but I plan to still attend the sessions 😬

probs not, but I plan to still attend the sessions 😬

Your wish is my command

Your wish is my command
ah if only!


[ko] Incorrect topology label in "Pod Topology Spread Constraints" page

In the English version of the above page, the last paragraph of the Consistency section reads:

You need a mechanism to ensure that all the nodes in a topology domain (such as a cloud provider region) are labelled consistently. To avoid you needing to manually label nodes, most clusters automatically populate well-known labels such as kubernetes.io/hostname. Check whether your cluster supports this.

But in the Korean page's version of that paragraph, the label used as an example is topology.kubernetes.io/hostname which is incorrect.

/retitle [ko] Incorrect topology label in "Pod Topology Spread Constraints" page
/kind bug

@omkensey Thanks for raising this issue.
The outdatedness of that page has been reported in the issue #41613,
and updated to the dev-1.27-ko.1 branch via the PR #41825. (Fixed line)
When the dev-1.27-ko.1 branch gets merged into main in the future, we will be able to check the updated contents.
Considering the aspects above, let me close this issue.
Again, thank you for your contribution!
/triage duplicate
/close