Entity Representation Mappers

Pull request checklist

[x] Please read our contributor guide
[ ] Consider creating a discussion on the discussion forum
first
[x] Make sure the PR doesn't introduce backward compatibility issues
[x] Make sure to have sufficient test cases

Pull Request type

[ ] Bugfix
[x] Feature
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Other (please describe):

Changes in this PR
Works to address https://github.com/Netflix/dgs-framework/issues/1569.
Allow users of DGS to optionally provide @DgsEntityRepresentationMapper implementations that let them encapsulate and abstract logic which can map from the Map<String, Any> representations that are passed to their @DgsEntityFetcher to concrete representation classes instead.
Leveraging this should lead to cleaner and leaner @DgsEntityFetcher implementations, and the @DgsEntityRepresentationMapper implementations can be shared and reused where applicable.
Note: the validation that ensured that the @DgsEntityFetcher method parameter was of type Map has been removed, since this method parameter may now be a custom class instead.
Alternatives considered
A more opinionated implementation of this was considered, which defined an EntityRepresentationMapper and EntityRepresentation interface, which would allow for stricter typing and some additional validations. At the moment, this felt too constrictive and doesn't align with the conventions that are in place for @DgsEntityFetcher that DGS users would be used to.

Any thoughts @srinivasankavitha & @kilink? I think this will also be useful internally, specially if developers combine it codegen.


DTP-711: Handle SequenceId edge cases

This PR adds tests and validation handling for the sequenceId return from the configured sync function.
Conditions:

[x] 1. SequenceId is undefined
[x] 2. SequenceId is '0' and there is history in the channel. In which case history should be applied.

Previous PR: https://github.com/ably-labs/models/pull/162, I had to change the branch name because I used the wrong jira reference. Old comments are here are on the original PR
Comments
In condition 1 where the sequenceId is undefined, the solution in this PR is throw an error and set the model state to errored. Additionally the retryable() logic has been updated to not run the callback function if the model is in the errored state. Additionally if we catch an error while in the errored state then we re throw it, propagating it up the call stack. This is how the new sequenceId is undefined error will be surfaced to the user.
Other changes
Error handling has been improved so that all errors produced by the SDK during event handling function or in places where a user would not be able to catch them have been silenced and are exposed through the 'errored' event.
The docs around the Models's sync and subscribe methods have been updated so that the user knows to catch any errors thrown by these functions.
An integration test has been added that covers all message history being applied to model with sequenceId 0 and, seek and applying history with a sequenceId of 1 or more.
The uuid package has been added as a dev dependancy.
The current integration test located in ./src/Model.integration.test.ts has been wrapped in its own describe as the test set up new test is different. This test are now isolated. I have also added uuids to the channel name so that each test run uses a different channel.

Let's merge https://github.com/ably-labs/models/pull/164 into this and then happy to approve :)


$.fn.tooltip is undefined

Message in console is TypeError: $.fn.tooltip is undefined

It sounds like Bootstrap's Tooltip js is not loaded.  Without an example, this is error message does not provide any useful information.


Migration script doesn't update extends lines

Description of the issue

When migrating a prototype that uses the unbranded layout, those pages stop working as the old extends line does not work:
{% extends "layout_unbranded.html" %}

In V13 it should be
{% extends "govuk-prototype-kit/layouts/unbranded.html" %}

Steps to reproduce the issue

Use the migrate command to migrate an old prototype that used unbranded layout
Actual vs expected behaviour

Expected: the extends line would be updated, like the normal layout extends line is updated
Actual: the extends line is not updated
Environment (where applicable)

Operating system: MacOS
Browser: n/a
Browser version: n/a
GOV.UK Prototype Kit version: v13 migrate script

@joelanman to discuss further how extends line are updated currently

Note, the migration script currently does not update the extends directive in any existing views (even to the point where we don't move the file layout.html to layouts/main.html). So this ticket might be a little tricky.

There are other situations  where layout.html is expected, should we treat them all the same?


Continuing difficulties with encode-alist

This is with yason 0.7.6 under CCL:
? (format t "~@{~A~%~}"
        (asdf:component-version (asdf:find-system :yason))
        (lisp-implementation-type)
        (lisp-implementation-version)
        (software-type)
        (software-version)
        (machine-type)
        (machine-version))
0.7.6
Clozure Common Lisp
Version 1.10-r16196  (LinuxX8664)
Linux
3.16.0-50-generic
x86_64
Intel(R) Core(TM) i7-2760QM CPU @ 2.40GHz
NIL

When representing a JSON object as an a-list there is ambiguity if JSON arrays are lists, or nil is used for JSON false or null. For example, both [["a", "b"]] and {"a":["b"]} parse as the same S-expression (("a" "b")). However, while there is not a unique encoding of such an S-expression, I wouldn't expect it to simply give up this way, particularly since it has emitted a partial encoding:
? (load (merge-pathnames "test.lisp" (asdf:system-source-directory :yason)))
#P"/home/dfm/common-lisp/yason/test.lisp"

? yason-test::*basic-test-json-string*
"[{\"foo\":1,\"bar\":[7,8,9]},2,3,4,[5,6,7],true,null]"

? (yason:parse yason-test::*basic-test-json-string* :object-as :alist)
((("bar" 7 8 9) ("foo" . 1)) 2 3 4 (5 6 7) T NIL)

? (yason:encode-alist *)
{
> Error: The value ("bar" 7 8 9) is not of the expected type (OR STRING SYMBOL CHARACTER).
> While executing: STRING, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 > :pop

Even worse, though, is that if we parse JSON arrays as Lisp vectors, and use symbols/keywords for JSON true, false and null we should have a clean, bijective mapping between JSON and Lisp, apart from floating point number issues. And yet even in this case yason is signalling an error, again after emitting a partial encoding:
? (yason:parse yason-test::*basic-test-json-string*
             :object-as :alist
             :json-arrays-as-vectors t
             :json-booleans-as-symbols t
             :json-nulls-as-keyword t)
#((("bar" . #(7 8 9)) ("foo" . 1)) 2 3 4 #(5 6 7) YASON:TRUE :NULL)

? (yason:encode-alist *)
{
> Error: The value #<VECTOR 20 fill-pointer 7, adjustable> is not of the expected type LIST.
> While executing: YASON:ENCODE-ALIST, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 >

Upgrading CCL from 1.10 to 1.11 does not fix this problem, but it does change the error message:
? (asdf:component-version (asdf:find-system :yason))
"0.7.6"
? (yason:parse "[{\"foo\":1,\"bar\":[7,8,9]},2,3,4,[5,6,7],true,null]"   :object-as :alist)
((("foo" . 1) ("bar" 7 8 9)) 2 3 4 (5 6 7) T NIL)
? (yason:encode-alist *)
[[["foo"
> Error: The value 1 is not of the expected type LIST.
> While executing: YASON::ENCODE-LIST%, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.

and
? (yason:parse "[{\"foo\":1,\"bar\":[7,8,9]},2,3,4,[5,6,7],true,null]"
             :object-as :alist
             :json-arrays-as-vectors t
             :json-booleans-as-symbols t
             :json-nulls-as-keyword t)
#((("foo" . 1) ("bar" . #(7 8 9))) 2 3 4 #(5 6 7) YASON:TRUE :NULL)
? (yason:encode-alist *)
[[["foo"
> Error: The value 1 is not of the expected type LIST.
> While executing: YASON::ENCODE-LIST%, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.

These two examples also fail in SBCL (1.2.11):
* (asdf:component-version (asdf:find-system :yason))

"0.7.6"
* (yason:parse "[{\"foo\":1,\"bar\":[7,8,9]},2,3,4,[5,6,7],true,null]"   :object-as :alist)

((("bar" 7 8 9) ("foo" . 1)) 2 3 4 (5 6 7) T NIL)
* (yason:encode-alist *)
{
debugger invoked on a SIMPLE-TYPE-ERROR in thread
#<THREAD "main thread" RUNNING {1002D86653}>:
  ("bar" 7 8 9) is not a string designator.

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.

(STRING ("bar" 7 8 9))
0]
* (yason:parse "[{\"foo\":1,\"bar\":[7,8,9]},2,3,4,[5,6,7],true,null]"
             :object-as :alist
             :json-arrays-as-vectors t
             :json-booleans-as-symbols t
             :json-nulls-as-keyword t)

#((("bar" . #(7 8 9)) ("foo" . 1)) 2 3 4 #(5 6 7) YASON:TRUE :NULL)
* (yason:encode-alist *)
{
debugger invoked on a TYPE-ERROR in thread
#<THREAD "main thread" RUNNING {1002D86653}>:
  The value #((("bar" . #(7 8 9)) ("foo" . 1)) 2 3 4 #(5 6 7) YASON:TRUE :NULL)
  is not of type
    LIST.

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.

(YASON:ENCODE-ALIST #((("bar" . #(7 8 9)) ("foo" . 1)) 2 3 4 #(5 6 7) YASON:TRUE :NULL) #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDOUT* {10001CB7A3}>)
0]

I understand that you're struggling with the fact that JSON datatypes are not Lisp datatypes.  YASON recognises that mismatch and supports the streaming encoder interface to make it possible to create whatever JSON representation is required.  A perfect bijective mapping between JSON and some arbitrary Lisp data structure was not a design goal of YASON, and I'm reluctant to include another change that heuristically determines the "right thing" given some nested Lisp data structure when encoding.

I'm sorry I didn't make myself clear. I'm not thinking that any Lisp S-expression should be representable as JSON. What I do think, though, is that if yason is presented with a JSON structure X, and on parsing it, a Lisp structure Y is created, then I would expect yason to be able to take Y back to a JSON structure. Ideally back to X, but I understand that for some settings that may not be possible; but blowing up completely seems very odd.
I'm not sure, but I think that there is no S-expression that encode-alist will encode as, say
{"foo":1,"bar":[7,8,9]},2,3,4,[5,6,7],true,null]

If indeed there is no way to produce this result, short of doing it by hand by walking the structure myself and making a bunch of carefully constructed calls to things like encode-array-element and encode-object-element it seems like a rather sad omission.

Because Lisp datatypes and JSON datatypes are incompatible, YASON provides a way to produce arbitrary JSON through its streaming encoding interface.  That is a design choice, not an omission.  I am opposed to including heuristics in the standard API that cause unpredictable behavior like described in this original bug report.
If you require a non-streaming interface to serialize a certain nested Lisp data structure as JSON, it would be best if you'd just write an encoding function for that kind of structure in your application layer.  The reason why I am opposed to making such an encoder interface be part of the standard YASON API is that such an interface is bound to break if presented a slightly different data structure or used with modified encoder settings.
Please have a look at the documentation again:  It clearly states that YASON does not impose a particular object model on the application.  It was my mistake to have left that route by including the functionality that I have now removed again.


97 cfp issues

#97 cfp issues

Finally it works :smile: I found very strange travis behaviour... Originally I had an logical issue in the test, so they were failing... In the mean time another PR modified urls, but once I have modified code in the branch tests were comparing to newly modified urls, so it seems as travis is running tests on upstream master.
pull request has to have allways up to date master, even if there was another merge that does not change anything in PR (so auto merge would work).

Current coverage is 95.91% (diff: 100%)

No coverage report found for master at 66ce9ff.

Powered by Codecov. Last update 66ce9ff...69ccafe


Added extensive constants to make use of the BSD's sysctl function.

sysctl usage does differ significantly across the BSDs, and, whilst
some constants overlap, many do not. It is easier to maintain them
in separate modules, rather than trying to tease out common definitions.

r? @alexcrichton
(rust_highfive has picked a reviewer for you, use r? to override)

Thanks! Looks like some of the CI failures are legitimate though?

OK will take a look in the morning...
On 11 May 2016 10:37 p.m., "Alex Crichton"<EMAIL_ADDRESS>wrote:

Thanks! Looks like some of the CI failures are legitimate though?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/rust-lang/libc/pull/285#issuecomment-218597923

OK, looks like I missed some duplicate definitions which had been added piecemeal. I'm beginning to wonder, even though it creates apparent duplication, whether it would be better to drop the attempt to create a hierarchy of unices and just push all definitions down to a per-OS file. It could make maintenance easier. Thoughts? Alternatively, a kickstarter campaign to flesh out all remaining libc bits and bobs... I'd be game for that.

Heh, yeah the organization as-is may be a bit of an opportunistic optimization that may not be worth it in the end, but we probably don't want to shift it all around just yet.

Fair enough
On 12 May 2016 9:47 p.m., "Alex Crichton"<EMAIL_ADDRESS>wrote:

Heh, yeah the organization as-is may be a bit of an opportunistic
optimization that may not be worth it in the end, but we probably don't
want to shift it all around just yet.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/rust-lang/libc/pull/285#issuecomment-218881032

Looks like travis is still having some problems though?

OK, I think I've fixed this. (I must say, I'm dead impressed with your CI builds. They're very effective).
Turns out the problem was I grepp'd for duplicate pub const KERN_PROC: but missed the ones pub const KERN_PROC :. Would this be worth an addition to the style checks?

OK, looks like we're just down to bitrig failing now...I'll try again...

@bors: r+ 786d5056166c5fda02082a2f960a226abe598e60

:hourglass: Testing commit 786d505 with merge 72519bf...

:sunny: Test successful - status-appveyor, travis

@raphaelcohn It looks like libc::HW_NCPU is now missing on auto-linux-64-cross-netbsd. Is this intentional? (issue here: https://github.com/rust-lang/rust/pull/33500#issuecomment-219263000)

Ah yeah that's accidentally, I'm adding it back in https://github.com/rust-lang/libc/pull/291


sdfx command not found

Describe the bug
The latest version of the Salesforce CLI does not come with sfdx commands. Any tasks using class_path: cumulusci.tasks.sfdx.SFDXOrgTask will fail since the sfdx commands don't exist
Reproduction steps

Install Salesforce CLI (npm install sfdx-cli --global). Make sure you've uninstalled prior versions of CLI
Create CCI task using class_path: cumulusci.tasks.sfdx.SFDXOrgTask
Run cci task
Receive error missing sfdx
n. ...

Your CumulusCI and Python versions
CumulusCI version: 3.80.0 (/Users/lcummins/.local/bin/cci)
Python version: 3.10.2 (/Users/lcummins/.local/pipx/venvs/cumulusci/bin/python)
You have the latest version of CumulusCI ⛅
See the latest CumulusCI Release Notes: https://github.com/SFDO-Tooling/CumulusCI/releases/tag/v3.80.0
Operating System
Mac Version 13.4.1
Windows environment
No response
CumulusCI installation method
brew
Error Gist
No response
Additional information
No response

sfdx-cli is deprecated, and no updates are planned. Use @salesforce/cli instead. See https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_move_to_sf_v2.htm

@jstvz I have tasks that are using SFDXOrgTask class but it uses the sfdx commands (https://github.com/SFDO-Tooling/CumulusCI/blob/main/cumulusci/tasks/sfdx.py#L20C1-L20C9). How can I create custom cci tasks and use sf commands?


Polygon lasso

Both drawing modes are now combined in one button. At the moment this works without problems except that the distance threshold is not respected.


[Segment Replication] Remove codec name string match check for checkpoints

Description
Moving forward, we want to perform version checks to ascertain if incoming checkpoints can be processed rather than relying on string matching of codec names. By knowing which version we are on, we will also know which lucene codecs it supports.
Related Issues
Resolves #7742
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff
[ ] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@Poojita-Raj @dreamer-89 I think this should be backported to 2.7 as well so we can support non default codecs with 2.7 line.


500 error in a directory with symlinks

Running serve in my home directory and accessing localhost:5000 fails with
Error: ENOENT: no such file or directory, stat '/Users/darth/.ackrc

Even though that path is valid, and the file is a working symlink.

Thank you for the effort you've put into this!
This is now possible by supplying a serve.json file. All thanks to serve-handler, as described in the notes for the new release.
Simply add redirects to your config file, as described in the serve-handler documentation.


Add temperature unit param 'tempUnit'

Apologies, this is a much cleaner PR for the tempUnit param addition as seen here
Valid param values are 'imperial' or 'metric'. Any other value will result in a default of imperial being applied

I merged the changes from @rogadev and @drillskibo
I like the idea of a unit query param, but please use the new changes as a base for your commit.


fix NaN handling in parquet statistics

Which issue does this PR close?
Closes #225.
Rationale for this change
Fixes NaN handling in parquet statistics. This is in line with the C++ stack:
https://github.com/apache/arrow/blob/b3e43987c47b2f01b204a2d954f882f7161616ef/cpp/src/parquet/statistics_test.cc#L1000-L1043
What changes are included in this PR?
Filter out NaN values from statistics + tests.
Are there any user-facing changes?
Yes: formally NaN were included in the stats but at "random" (i.e. when the data started with an NaN than the min/max values are NaN, otherwise min/max are non-NaN). Now the behavior is: NaN are excluded always. If the only NaN values are present, then min/max are unset.

Codecov Report

Merging #256 (acd4f52) into master (8f030db) will increase coverage by 0.01%.
The diff coverage is 90.00%.

@@            Coverage Diff             @@
##           master     #256      +/-   ##
==========================================
+ Coverage   82.52%   82.53%   +0.01%
==========================================
  Files         162      162
  Lines       43672    43786     +114
==========================================
+ Hits        36039    36139     +100
- Misses       7633     7647      +14

Impacted Files
Coverage Δ

parquet/src/column/writer.rs
93.76% <90.00%> (-0.27%)
:arrow_down:

parquet/src/arrow/levels.rs
81.25% <0.00%> (-0.44%)
:arrow_down:

parquet/src/arrow/arrow_writer.rs
98.42% <0.00%> (+0.09%)
: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 8f030db...acd4f52. Read the comment docs.

I believe this fixes #255 rather than #225 so I updated the description accordingly

Thanks @crepererum !


Failed to install Modbus

I am getting the error in HASSIO whenever I attempt to upgrade or unisntall and reinstall to version 3. The command '/bin/ash -o pipefail -c pip install --upgrade pycryptodomex==3.11.0 --no-cache-dir -r requirements.txt' returned a non-zero code: 1

Working now - thanks for all your support


[PE-D][Tester C] User Guide Documentation for list Command is Misleading About Functionality

Actual documentation lead me to believe that I can list by attribute like job code

My attempt to list by job code was met with an error message!
Description:
The list command documentation in the user guide implies that users can filter the list of persons by attributes (such as job title or tags) when in reality, the list command simply displays all entries without any filtering options. This discrepancy may lead users to believe that the command supports attribute-based filtering, causing confusion and impacting usability.
Areas for improvement:

This documentation error may cause users to waste time trying to use non-existent filtering options with the list command.

Steps to improve:

Revise the documentation to clarify that the list command is only for displaying all entries in the address book without any filtering options.

Just a minor wording issue :)

Labels: severity.Low type.DocumentationBug
original: haleemairfan/ped#3

UG Page 3

delete 'based on attribute'


object analogues for all vs allSettled vs race vs any

For a list of Promises, there's four combinators available.
I personally have use cases for both all and allSettled semantics; would we want all four for completeness?

I am hesitant on this.  I think if you illustrate use cases you might convince me.
Regarding an allSettled equivalent for dictionaries, I really don't see it.  Because the moment one of those promises rejects, the object is not constructible.  I think. That said, we definitely could have a case for shaping the exception (i.e. naming the key or the value of the key that failed in the exception to raise).
For race and/or any, I also don't see it.  Those to me indicate "either this property is defined, or that property is defined", and it doesn't make sense to me why we'd want it.  (But then again, I missed the value of the Map case, so...)
I hesitate also because the more combinations we imagine, the more we bloat the specification.  There was the debate over deep versus shallow already, and we have other debates coming (symbols?  non-enumerable?).
At some point we might have to think about static functions wrapping around other promise functions to alter their behavior, particularly if we introduce combinatorics to handle all sorts of situations, such as deep promise walking.  But I can't think of any ECMAScript functions to do such a modification of how other ECMAScript functions work, and that's a strange minefield to go into.
I get that this proposal just appeared, and now is the time to brainstorm.  Don't take this as shutting down the conversation.  Take this as a note of "I don't know..." and show me the reasoning.

Because the moment one of those promises rejects, the object is not constructible. I think.

Sure it is - the values of the constructed object would be the same settlement objects that Promise.allSettled returns.

There was the debate over deep versus shallow already, and we have other debates coming (symbols? non-enumerable?).

I don't see any use case whatsoever for dealing with anything other than enumerable own properties (string and symbol).

I'm going to put some specific cases regarding rejected promises in #5 as references.

OK, it's clear to me now that I misunderstood about allSettled.  I did not realize that it resolves unconditionally when all the promises passed in are no longer pending, and that what it resolves to is an array of simple objects detailing the results.  This changes things.
Given that, I can buy an analog for that, and even rewrite the polyfills to use it.  But what would you call the dictionary equivalent of allSettled?

I'm not really sure. If we're only providing a single method, then we could perhaps just take "settled" as implied.

My suggestion for a less concise but still useful helper was Promise.allEntries, which simply unwrapped and resolved an entries like collection. The all prefix implies the same behavior as Promise.all, since I'm not sure the other ones make sense. It's not particularly difficult to write in userland, so it may not pass the bar for a useful addition to the language.
Promise.allEntries = (entries) =>
  Promise.all(Array.from(entries).map((entry) => Promise.all(entry)));

const obj = {
  foo: Promise.resolve("bar"),
};

const resolvedObject = Object.fromEntries(
  await Promise.allEntries(Object.entries(obj))
);

const map = new Map();
map.set(Promise.resolve("foo"), Promise.resolve("bar"));

const resolvedMap = new Map(await Promise.allEntries(map.entries()));

Why wouldn’t the other ones make sense? All four have use cases for anything async, whether an iterable of promises or an object of promises.

Because they wouldn't be usable directly with parts of the language that expect an entries collection?
What should allSettledEntries do, especially in the case of a promise in place of the key (entry[0])? The settled result pair isn't usable with Object.entries, and not very useful with the Map constructor.
What should anyEntries (anyEntry?) do? Return a collection with a single entry where both the key and value first resolved?

Sure it’s usable with Object.entries - the value would be a settlement object, destructurable like ([key, { value, reason, type }]) =>

Yes, keys can’t be async for a number of reasons, only values would be.

In my suggestion for Promise.allEntries, keys can definitely be async as
shown above.
On Wed, Aug 11, 2021, 16:41 Jordan Harband @.***> wrote:

Yes, keys can’t be async for a number of reasons, only values would be.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ajvincent/proposal-await-dictionary/issues/4#issuecomment-897100251,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAVDYZFAIUEDYYOYEXRUJTT4LG6HANCNFSM47E6GUMQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

That seems like it would be very problematic since two keys could resolve to the same value, so ordering would be important, but you can’t necessarily know that in advance.

I'm not sure I understand how it's different than entries collections today, except that the content of the keys might not be synchronously available. Anyway, probably not worth debating too long since it's the kind of helper that are probably seldom used and can easily be written by users.

Since this proposal appears to be revived, I'd like to raise a suggestion:  perhaps create a namespace under Promise:  Promise.object or Promise.dictionary or some other name, where we could define a set of these methods:

Promise.dictionary.all
Promise.dictionary.allSettled
etc.


Generate the cluecumber report despite failure of tests

I am not sure if this is the intended feature currently but it requires two steps in order to view the cluecumber report by explicitly calling the cluecumber goals if there is a test failure( either from surefire or failsafe plugin). It would be nice if despite the build failure status it would still execute the reporting phase somehow.
I am sorry if there is already another recommended approach for it that I could not find.
P.S. - I know its possible to do in a CI platform with multi step process but on local environment every time it needs 2 steps.
Thanks in advance.

Hi, this is standard Maven behavior. Please look at https://github.com/trivago/cluecumber-report-plugin/issues/49


change from static time methods to clock

cc @davidtorres please take a look

LGTM

Coverage increased (+0.004%) to 83.661% when pulling 4aa06bb511ed81ba51900d9d75c82ecccbd9d2a5 on pongad:fake-clock into 4dd7d79f807e9e51ecb26154f2258f9a9e4c1cae on GoogleCloudPlatform:pubsub-hp.


An error about tun2socks

there will throw an error about tun2socks when run carthage update --no-use-binaries --platform mac,ios
check xcodebuild log:
error: could not read data from '/Users/duke/Pine/Carthage/Checkouts/tun2socks/tun2socks-iOS/Info.plist': The file “Info.plist” couldn’t be opened because there is no such file.
** ARCHIVE FAILED **
The following build commands failed:
ProcessInfoPlistFile /Users/duke/Library/Caches/org.carthage.CarthageKit/DerivedData/9.4.1_9F2000/tun2socks/0.6.1/Build/Intermediates.noindex/ArchiveIntermediates/tun2socks-iOS/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/tun2socks.framework/Info.plist tun2socks-iOS/Info.plist
(1 failure)
but I find info.plist in checkouts/tun2socks/tun2socks-ios.
emmmm, I don't understand with it😂, can you give me a solution？

This sounds awkward. Have tried to remove the cache and Carthage folder and try again?
On 13 Aug 2018, at 17:43, DukeWu<EMAIL_ADDRESS>wrote:
there will throw an error about tun2socks when run carthage update --no-use-binaries --platform mac,ios
check xcodebuild log:
error: could not read data from '/Users/duke/Pine/Carthage/Checkouts/tun2socks/tun2socks-iOS/Info.plist': The file “Info.plist” couldn’t be opened because there is no such file.
** ARCHIVE FAILED **
The following build commands failed:
ProcessInfoPlistFile /Users/duke/Library/Caches/org.carthage.CarthageKit/DerivedData/9.4.1_9F2000/tun2socks/0.6.1/Build/Intermediates.noindex/ArchiveIntermediates/tun2socks-iOS/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/tun2socks.framework/Info.plist tun2socks-iOS/Info.plist
(1 failure)
but I find info.plist in checkouts/tun2socks/tun2socks-ios.
emmmm, I don't understand with it😂, can you give me a solution？
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

yes, I tried.
I  removed Cartfile.resolved file and Carthage folder.

Try also remove rm -rf ~/Library/Caches/org.carthage.CarthageKit
On 13 Aug 2018, at 17:58, DukeWu<EMAIL_ADDRESS>wrote:
yes, I tried.
I removed Cartfile.resolved file and Carthage folder.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Unfortunately, it  doesn't work 😂.
run rm -rf ~/Library/Caches/org.carthage.CarthageKit,
and remove Cartfile.resolved file and Carthage folder.
then run carthage update --no-use-binaries --platform mac,ios
still throw this error,  only me?

Anyway，thanks😁

Hey！ I found the reason of this error when I checked the xbuild error log.
error: could not read data from '/Carthage/Checkouts/tun2socks/tun2socks-iOS/Info.plist': The file “Info.plist” couldn’t be opened because there is no such file.
Carthage needs read data from "tun2socks-iOS", but there was no "tun2socks-iOS", only "tun2socks-ios" 😂；
Then I renamed folder from "tun2socks-ios" to "tun2socks-iOS", and run again.
Then 🎉🎉🎉🎉🎉🎉🎉🎉🎉

Though it looks like filesystem suppose to be case sensitive, but this is simply not the case for OS X, and you should reformat with case insensitive ASAP.
On 18 Aug 2018, at 11:07, DukeWu<EMAIL_ADDRESS>wrote:
Closed #187.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.


Next example - "next build" Issue ?

When i run "next build" after a npm install in next example of this project.

[X] This is not a v0.x issue.
[X] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior 🤔
Should run in production mode without error ?

Current Behavior 😯
Invariant Violation. I get this error with another project i have, "npm run dev" run ok, only build time... I've seen some webpack resolutions in other reports, but unfortunately not found how / and what to fix.
Steps to Reproduce 🕹
Build error occurred
{ name: 'Invariant Violation', framesToPop: 1 }
nextjs xxxx$ { Invariant Violation: Minified React error #321; visit https://reactjs.org/docs/error-decoder.html?invariant=321 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
at ca (/Users/xxxx/material-ui/examples/nextjs/node_modules/react/cjs/react.production.min.js:11:316)
at B (/Users/xxxx/material-ui/examples/nextjs/node_modules/react/cjs/react.production.min.js:12:166)
at W (/Users/xxxx/material-ui/examples/nextjs/node_modules/react/cjs/react.production.min.js:20:375)
at Object.useContext (/Users/xxxx/material-ui/examples/nextjs/node_modules/react/cjs/react.production.min.js:22:416)
at StylesProvider (/Users/xxxx/material-ui/examples/nextjs/node_modules/@material-ui/styles/StylesProvider/StylesProvider.js:60:37)
at c (/Users/xxxx/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:33:501)
at Sa (/Users/xxxx/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:36:1)
at a.render (/Users/xxxx/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:41:467)
at a.read (/Users/xxxx/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:41:58)
at renderToString (/Users/xxxx/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:53:83) name: 'Invariant Violation', framesToPop: 1 }
{ Invariant Violation: Minified React error #321; visit https://reactjs.org/docs/error-decoder.html?invariant=321 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
at ca (/Users/xxxx/material-ui/examples/nextjs/node_modules/react/cjs/react.production.min.js:11:316)
at B (/Users/xxxx/material-ui/examples/nextjs/node_modules/react/cjs/react.production.min.js:12:166)
at W (/Users/xxxx/material-ui/examples/nextjs/node_modules/react/cjs/react.production.min.js:20:375)
at Object.useContext (/Users/xxxx/material-ui/examples/nextjs/node_modules/react/cjs/react.production.min.js:22:416)
at StylesProvider (/Users/xxxx/material-ui/examples/nextjs/node_modules/@material-ui/styles/StylesProvider/StylesProvider.js:60:37)
at c (/Users/xxxx/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:33:501)
at Sa (/Users/xxxx/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:36:1)
at a.render (/Users/xxxx/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:41:467)
at a.read (/Users/xxxx/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:41:58)
at renderToString (/Users/xxxx/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:53:83) name: 'Invariant Violation', framesToPop: 1 }

Tech
Version

Material-UI
v4.2.1

React
16.8.6

Node
10.10

Did you start from a fresh installation (by only running the example, not the parent files)? Does it work better with yarn?

Thanks for the reply,
Removed node_modules folder, moved src files in another folder, yarn works, yarn start too, but same message after running "next build". It's strange...

@lvelours I have tried your reproduction. It works fine on my end. Could you try on another machine?

It's most likely an issue with your env. I'm closing, for now.

Sorry @oliviertassinari, yes i just tried on a linux vm, works well, i presume my environment on mac osx is the issue. Thanks


Show avatar next to the player's name

Closes #2530

I corrected it only for the team card. In the rest, it is to the right of the player's name.

It should be to the left everywhere to keep consistency

Does it look normal?

Ok, no problem if that's what the maintainer wants. =)

I would probably not have them in the live replay list at all. And if I did we should add the full flag there as well. But because of how cluttered it is I think it is overkill.

The loads happens because the cache is only activated when a method is called from outside its own class. If a method is called from inside its own class the cache is not checked.

I did not know. Could you please provide a link where it says this?
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/cache/annotation/Cacheable.html
https://www.baeldung.com/spring-cache-tutorial
There is no such information in these links.

It is because spring uses a proxy object in order to intercept the call and check the cache. If you are calling from the object itself there is no proxy used.  See self-invocation here https://code.google.com/archive/p/ehcache-spring-annotations/wikis/UsingCacheable.wiki
And no worries I only found this out after I ended up releasing a client that overloaded the server because of all the requests that were made because a cache wasn't being used.

testInvisibleItemIfPlayerIsSelf test is already fixed in #2529

It would be good to still fix the test in this pr as well so that the main branch isn't in a state of failing checks as that prevents things like releases and what not


Write ATS for TG requirement 53

The mandatory STYLES parameter lists the style in which each layer is to be rendered. The value of the STYLES parameter shall be a comma-separated list of one or more valid INSPIRE style names. A client may request the default Style using a null value (as in "STYLES=").

Not complete covered by the WMS ATS, as only "valid INSPIRE style names" are allowed. This is a bit difficult to test though.


Added math benchmarks

Description

Added Math benchmarks
Motivation and Context

How Has This Been Tested?

Screenshots

Types of changes

[ ] Improvement (non-breaking change that improves a feature, code or algorithm)
[ ] Bug fix (non-breaking change which fixes an issue with code or algorithm)
[ ] New feature (non-breaking change which adds functionality to code)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Config and build (change in the configuration and build system, has no impact on code or features)
[ ] Dependencies (update dependencies and changes associated, has no impact on code or features)
[x] Unit Tests (add new Unit Test(s) or improved existing one(s), has no impact on code or features)
[ ] Documentation (changes or updates in the documentation, has no impact on code or features)

Checklist:

[x] My code follows the code style of this project (only if there are changes in source code).
[ ] My changes require an update to the documentation (there are changes that require the docs website to be updated).
[ ] I have updated the documentation accordingly (the changes require an update on the docs in this repo).
[x] I have read the CONTRIBUTING document.
[x] I have tested everything locally and all new and existing tests passed (only if there are changes in source code).
[ ] I have added new tests to cover my changes.

+1, this is great @rschiefer ! Super cool and that gives a good idea of some performance like using doulbe is faster than float ;-)


Create reportslash.js

add code
add a channel to line 42

turn this into context menu command if you want to report particular message, if you want to report a user instead, use slash and ask to input user and show modal for proof of report


New Release 1.3.0

Hi
This is the new release 1.3.0.
Thanks for merging.
Have a good one,
Emanuel

Fixed merge conflicts in BappManifest

Fixed merge conflicts in BappManifest


Push real time notification to kafka

hi,
Really impressive product and is exactly what I am looking for. Is there a way to push real time transcation notifications to kafka?

Hello, it can made to do so.

I've stopped maintaining ette, so closing this issue. Thanks.


Add parametrized tasks and data

Part 1

[x] Add the when key to address #40.
[x]  As a result, keeping track of dates in the TimeSeries class is not necessary anymore. Still a more generic ParamSeries container is required for parametrized tasks and data, so it is implemented instead of just ditching TimeSeries and temporarily use regular dictionaries. "date" is now just one of the possible parameters receiving a special treatment when resolving dependencies.

Part 2

[x] Introduce parametrized tasks and data in parsing to address #44
[x] turn core.Task.from_config and core.Data.from_config into generators

Wait for merging until #39 gets merged, so that this PR can be rebased on main

switch from values to __iter__
config.parameters is a list not a dict

Fixes issue #5

closes #5


ChangeLog

r? @chandraprakash
(maidsafe_highfive has picked a reviewer for you, use r? to override)

r? @Viv-Rajkumar

Coverage increased (+1.3%) to 75.08% when pulling e5252959c0fdcf2c69ede3ae906af80906c38849 on benjaminbollen:changelog into 22926b433648485a53e35dee47ca073e48772a17 on maidsafe:master.

Coverage increased (+1.3%) to 75.08% when pulling e5252959c0fdcf2c69ede3ae906af80906c38849 on benjaminbollen:changelog into 22926b433648485a53e35dee47ca073e48772a17 on maidsafe:master.

Coverage increased (+1.3%) to 75.08% when pulling 18048e20dcc749a738e6c7cab115909349715664 on benjaminbollen:changelog into 22926b433648485a53e35dee47ca073e48772a17 on maidsafe:master.


Ensure that some End to End tests run with a -race build

Tell us about your request
At least some portion (possibly all?) e2e tests should run with a -race build.
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
Since concurrent reconciles can occur we want to ensure that our reconcilers are race free.  Unit testing can be helpful, but a full e2e test with a -race build will be more effective at identifying issues.
Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Doesn't this mean they are all running with -race?
https://github.com/aws/karpenter/blob/main/Makefile#L35

Doesn't this mean they are all running with -race? https://github.com/aws/karpenter/blob/main/Makefile#L35

The units tests are running with the race detector, but I don't know if there are any end to end tests yet.  This issue was to ensure that those tests, when they exist, are run with -race as well.

-race injects artificial timing delays to goroutines, which might not be ideal for our e2etests

-race injects artificial timing delays to goroutines, which might not be ideal for our e2etests

This isn't what -race does. -race detects data races in our E2E testing to ensure that we aren't writing race-y tests that have potential to cause data races and data corruption. It seems like good hygiene to have this in our go test call if nothing more than catching data races in our test code that we have accidentally written in.


Partial replacement

This closes #448 by adding partial replace capabilities to Turbolinks.
@Thibaut @dhh @arthurnn

tldr;

    Sidebar, never changed!

    You have new comments. <%= link_to 'See new comments', comments_path, change: 'comments' %>

    See 45 more comments

  <%= form_for Comment.new, remote: true, id: 'new_comment' do |form| %>
    <% # Show validation errors %>

    <%= form.text_area :content %>
    <%= form.submit %>
  <% end %>

class CommentsController < ActionController::Base
  def index
    # renders, but keeps #sidebar
  end

  def create
    @comment = Comment.new(comment_params)

    if @comment.save
      # This will change #flash, #comments:collection, #comments:link
      # -> Turbolinks.visit('/comments', change: 'comments')
      redirect_to comments_url, change: 'comments'
    else
      # Validation failure
      # -> Turbolinks.replace('<%=j render :new %>', change: 'new_comment')
      render :new, change: :new_comment
    end
  end
end

Lovely. For the record, this goes into master under the target that master is now targeting a 3.0 release.

:tada: :heart: :green_heart: :yellow_heart: :heart_eyes:

Fantastic @kristianpd

:rocket: :crescent_moon:

FYI me and @kristianpd will write docs for this next week.

And I'm also going to try to add some automated JS tests.

:+1: :cake:

As it is now, Turbolinks.visit(url, change: 'comments') won't change the current URL.  I see the value of that, but I also see scenarios where I'd want the URL to change.  Would anyone object if I added the ability to specify that you want it to change?
Something like this:
Turbolinks.visit(url, change: 'search-results', change_url: true)

@Thibaut @kristianpd @dhh

Why wouldn’t Turobolinks.visit not always change the url, even when using change? Change just says “wherever we’re going, we’re just only going to change this specific DOM element”.

On Mar 3, 2015, at 11:17 AM, Nick Reed<EMAIL_ADDRESS>wrote:
As it is now, Turbolinks.visit(url, change: 'comments') won't change the current URL. I see the value of that, but I also see scenarios where I'd want the URL to change. Would anyone object if I added the ability to specify that you want it to change?
Something like this:
Turbolinks.visit(url, change: 'search-results', change_url: true)
@Thibaut https://github.com/Thibaut @kristianpd https://github.com/kristianpd @dhh https://github.com/dhh
—
Reply to this email directly or view it on GitHub https://github.com/rails/turbolinks/pull/468#issuecomment-77014008.

Yeah, I thought I saw the value of not changing the URL, but the more I think about it, I can't come up with a scenario where you wouldn't want it to change.  Not that that means there isn't one.
The relevant code currently looks like this:
if doc = processResponse()
  reflectNewUrl url unless options.change? || options.keep? || options.flush?
  reflectRedirectedUrl() # will change url if server redirected
  # ...
else
  document.location.href = crossOriginRedirect() or url.absolute # will change url

If change/keep/flush are set, issues arise in two cases.  First, if processResponse() returns false, then the URL is going to change, but if it returns a valid document, then it won't...unless the second case happens, where the server has redirected.  Then the URL will be changed by reflectRedirectedUrl(), which will actually use history.replaceState and overwrite the current state (which was supposed to be the state created by reflectNewUrl had it not been skipped).

I agree Turbolinks.visit should always change the url, and Turbolinks.replace should never.
Also agree with @reed that a redirect_to url, change: :foo should push a state, not replace the current one.
@kristianpd what was your reasoning behind reflectNewUrl url unless options.change?
https://github.com/rails/turbolinks/blob/34a426741f07eaac9fa59718c9e8219933f42dfe/lib/assets/javascripts/turbolinks.js.coffee#L69
It would be good to add some tests for these scenarios. I can work on that maybe tonight or this week-end.

@Thibaut TBH I think that's from Turbograft but now that I think about it, the differentiator should really be whether you visit or replace. Since turbograft doesn't have the change option on .visit, it sort of implies that the only time you're doing a partial replace is when you're not changing the URL. Since Turbolinks may want to change the URL and keep things like the sidebar i propose:
Turbolinks.visit - Changes URL always (it may stay the same, but we remove that block)
Turbolinks.replace - Does not call reflectNewUrl

@kristianpd that makes sense :+1:

Made the change: 7387a96


The @javascript tag cannot be used without enabling a javascript session

In this tutorial https://laracasts.com/series/the-lifecycle-of-a-new-feature/episodes/2 it says to add @Javascript to the feature in order to see it perform the test live in the browser. But this error appears:

Any ideas?

I am dealing with the same problem. Would love some help.

I had that issue i needed to specify a javascript_session on behat.yml
however if i try to use selenium2 it doesn't seem to work

@sdeering i know it is a year later. But just incase someone else sees this and so the ticket can be closed what solution worked for you?
For my my behat.yml set to
    Laracasts\Behat:
      env_path: .env.behat
    Behat\MinkExtension:
      base_url: https://foo.dev
      default_session: laravel
      laravel: ~
      selenium2:
        wd_host: "http://selenium-server.dev:4444/wd/hub"
      browser_name: chrome

And including in composer require-dev
        "behat/mink-selenium2-driver": "^1.3",

Will allow me fo use the @javascript tag.

going to close this feel free to reopen if needed.

@alnutile  i followed your steps to enable @ javascript but now the response content is empty in my context file when i run a scenario with @javascript. Any idea how to fix that?


Updating build.gradle.kts files (now using public artifact servers)

so you're free of all internal reps? also, are you going to set up GH actions for CI?

Yes -- GH action will be a good next step.  For now, whatever you clone from the repo should be buildable by a random external person

Are you gonna publish to Maven central too!?!?

Yes -- GH Action into Maven Central is the goal.   But I won't be doing that tonight or tomorrow.  Hopefully Friday or sometime next week


WIP: Improve UI

The UI should be intuitive, and contain docs for the whole process.

Must be fixed:

[ ] Submit button handler for registering config to S3
[ ] Fetch repository config when selecting repository so we can check the teams currently set up


Istio Proxy unconditionally binds to <IP_ADDRESS>:15090 and <IP_ADDRESS>:15021 which leads to a conflict with outbound listeners when IPtables redirection is disabled

Bug description

At the moment, envoy_bootstrap.json unconditionally binds to <IP_ADDRESS>:15090 and <IP_ADDRESS>:15021
When Istio Proxy is used without IPtables redirection, e.g. on VMs, it creates a conflict with outbound listeners who are also trying to bind to <IP_ADDRESS>:15090 and <IP_ADDRESS>:15021

[ ] Docs
[ ] Installation
[x] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
Expected behavior

When IPtables redirection is disabled, pilot-agent and Envoy should avoid binding to <IP_ADDRESS> unless a user specifically asks for that

Other remarks

I could help implementing the changes
Does Istio want to support the use case with IPtables redirection disabled ?

Istio is largely working under the assumption that is "owns" the 150xx port range. I don't think disabling this if redirection is disabled makes sense (it has nothing to do with redirection), but maybe it could be customization I suppose


Stable sort?

ips4o is substantially faster than any parallel sorting algorithms I've tested. However it somehow doesn't provide a stable variant which limits its usage. Is there any plan for this? Thanks!

So far there is no stable implementation planned. A stable implementation might be difficult due to the algorithm's design.


Add reorg limit

As mentioned in #1059 the boys over at Firo had some ideas for this issue.
We should still check the numbers.

Suggestion: For testing purposes you can lower the activation blockheight of this PR and check if it would successfully reject the longest chain that has attacked verge previously. It should correctly walk through the blocks and find the best chain even with the attacked chain is included.
Ahh You also need to also remove the newer trusted blocks hashes.

merged into v7 branch


INT-2351

refactored implementations of FtpSession and SftpSession mkdir(path) method to avoid its previous dependency on hardcoded remote-file-separator

Need a test for the empty RFS case

We have it. Look at FtpInboundChannelAdapterParserTests-context.xml

LGTM, although there is a trailing whitespace in the last commit.

With regard to that last change, if the printWorkingDirectory returns null, then exists always returns false, but those two seem unrelated. Any way we can still check exists? (I understand we don't want to change the dir if we cannot reset it again afterwards). Otherwise, maybe it's better to go ahead and throw an IllegalStateException? (if we do consider a lack of a current working dir to be a state we don't expect)

Gary and I were talking about this and since we are actually simulating exists() its ok to always return false. Than it will fall back to the approach that we had last night (attempt to create all directories) which is still better than throw an exception in the "not so reliable exists()" method especially if creation of the directories may be successful.

I only spent about one minute reviewing FTPClient to see what other options might be available for an exists() implementation but happened to notice the getStatus(path) method. Have you considered that?

Yes and also tried it. Its absolutely unreliable since it always returns a String that looks something like this:
begining status 213
drwxr-xr-x  41 ozhurakousky  staff   1394 Jan  4 11:01 .
drwxr-xr-x  22 ozhurakousky  staff    748 Dec 13 14:32 ..
drwxr-xr-x  16 ozhurakousky  staff    544 Jan  4 12:40 .git
-rw-r--r--   1 ozhurakousky  staff    284 Dec 22 08:55 .gitignore
-rw-r--r--   1 ozhurakousky  staff    101 Aug 25 08:35 .gitmodules
. . . .
ending status 213
for non-existing directories or empty directories you'll see this:
begining status 213
ending status 213
So there is no way for me to rely on that. I wish it would throw an exception for non-existing directories

Why can't you use that? The non-existing directory value has nothing between beginning and ending.

So does empty but existing directory

Really? From what you posted above I assumed it would at least contain an entry for . no matter what.

Perhaps an easier alternative would be FTPClient.listNames(path), see: http://commons.apache.org/net/apidocs/org/apache/commons/net/ftp/FTPClient.html#listNames(java.lang.String)
It sounds like you could just check for null (which is returned if the directory does not exist) as opposed to an array which would be empty (but not null) if the dir does exist but has no files.

Well, it all depends on the underlying file system and OS.
For example, consider this code:
System.out.println("Status: " + this.client.getStatus(path));

And here is the output for existing but empty directory:
Windows:
   Status: null

Linux:
  Status: 213-Status follows:
  drwx------    2 1000     1000         4096 Jan 04 13:25 .
  drwx------    3 1000     1000         4096 Jan 04 13:22 ..
  213 End of status

And here is the output for non-existing directory:
Windows:
   Status: null

Linux:
  Status: 213-Status follows:
  213 End of status

I see. Can you try listNames as mentioned in my follow-up comment?

I did try it and the results are the same
On windows it returns null and on Linux it returns an array with two strings. I am not sure what other OS might return so it is essentially a variation of getStatus()

Okay then. Seems like the changeWorkingDirectory approach is the best option then. However, I still stand by the statement that the exists() method should throw an Exception for an unknown case rather than returning false. Considering that only applies to the case where the printWorkingDirectory method returns null, and you already mentioned that would produce a problem anyways, I would think it's fine to go ahead an throw an IllegalStateException at that point... but then again, I might be missing some information about why that can return null after all.

Yes, I tend to agree - since
'Can return null "if it cannot be obtained" according to JavaDocs.'
represents an unusual condition then, perhaps, falling back to the other technique is not appropriate anyway. We will likely have some downstream exception anyhow.
One risk, however, is we might break some existing app that's not relying on the creation of parent dirs.
Maybe we should only run the new code if the path includes an RFS?

It will only run if there is no RFS since it will not get tokenized

closing in favor of https://github.com/SpringSource/spring-integration/pull/301


Change indicator color?

I simply want to change the non-selected and selected colors but i seems i need to set some sort of renderer before it will draw them? If i don't specify one the indicator is now invisible, can i not use the "default" renderer?

return newTutorialOptionsBuilder(getContext())
	.setIndicatorOptions(IndicatorOptions.newBuilder(getContext())
		.setElementColor(...) 			// non-selected color
		.setSelectedElementColor(...) 	// selected color
		.build())
	.build();

If you not specified Renderer then default circle renderer will be used. You always need to specify elementColor and selectedElementColor. See readme.

OK, so that's exactly what i did, except as soon as i do that, the indicator is no longer rendered. See original question. Removing the setIndicatorOptions then brings back the indicator.

Have you tried to specify one of the default renderers?
Renderer.Factory.newCircleRenderer()
Renderer.Factory.newSquareRenderer()

No dice i'm afraid! Still nothing at all.

There was an issue with DrawableRenderer that is mentioned here #36. But I doubt this will help with default circle renderer.
Provide your code of XML layout for tutorial fragment and Java code with provideTutorialOptions method.
For now try to implement your own  Renderer and draw  using custom Paint object. This is just a quickfix.

final Paint mElementPaint = ...; // init paint with non-selected color
final Paint mSelectedElementPaint = ...; // init paint with non-selected color

return newTutorialOptionsBuilder(getContext())
	.setIndicatorOptions(IndicatorOptions.newBuilder(getContext())
		.setRenderer(new Renderer() {

                @Override
                public void draw(@NonNull Canvas canvas, @NonNull RectF elementBounds, @NonNull Paint paint, boolean isActive) {
                    float radius = Math.min(elementBounds.width(), elementBounds.height());
                    radius /= 2f;
                    canvas.drawCircle(elementBounds.centerX(), elementBounds.centerY(), radius, isActive ? mSelectedElementPaint : mElementPaint);
                }

		})
		.build())
	.build();

You need to specify the size of elements as well as colors.
@Override
protected TutorialOptions provideTutorialOptions() {
	return newTutorialOptionsBuilder(getContext())
			.setIndicatorOptions(IndicatorOptions.newBuilder(getContext())
					// set this sizes
					.setElementSizeRes(R.dimen.indicator_size)
					.setElementSpacingRes(R.dimen.indicator_spacing)
					.setElementColor(Color.CYAN)
					.setSelectedElementColor(Color.RED)
					.build())
			.build();
}

Currently the default value for elements and spacing size is zero. That's why it doesn't draw anything.


issues with running local evaluation API

There are multiple issues with running the local evaluation API. I am opening this thread to hopefully get the local evaluation API working for everyone. I am here to help so lmk if you would like me to submit PRs or break out the comments below into separate issues...
(1) test_api.py requires python-dotenv and supabase. Should they be added to requirements_val_api.txt?
(2) Supabase seems to require

docker
docker compose
postgres
relevant configurations

and this ^ is quite a lot to set up (would make for a long README.md and would be error prone). Should we provide a Dockerfile and instructions on how to use it?
(3) test_api.py and start_validation_service.sh are expecting a .env file in the root directory of the repo, for example to set ADMIN_KEY and DIPPY_KEY
(4) start_validation_service.sh seems to also (indirectly) expects other environment variables in that root level .env (e.g. HF_ACCESS_TOKEN, SUPABASE_..).
(5) start_validation_service.sh silently fails when these ^ environment variables are missing because validation_api.py sends stdout and sterr directly to the log file which is located in the relative path api_logs/validation_api.log.
(6) start_validation_service.sh can silently fail and then falsely declare that..
Starting validation_api...
All APIs are running in the background

Should we check the API is running between these two statements? Possibly something like this
# Start the validation_api
echo "Starting validation_api..."
./../$VENV_NAME/bin/python3 validation_api.py --queues 1 --main-api-port $VALIDATION_API_PORT >> "api_logs/validation_api.log" 2>&1 &
api_pid=$!
echo $api_pid > api_logs/validation_api.pid

# Wait for a short period to see if the process fails
sleep 5

# Check if the process is still running
if ! ps -p $api_pid > /dev/null; then
    echo "Failed to start validation_api. Check api_logs/validation_api.log for details."
    exit 1
fi

echo "All APIs are running in the background"

As mentioned in the notes, the validation api is currently undergoing a rehaul and is not expected to be locally runnable at this time


Add SpaceX Launch Vehicles

From Kartoffelkuchen

Any idea what that Aerohider.dll is and why it's in GameData rather than a subfolder?

Forum thread says it requires Old School Fairings

I want to find out how the barge and landing pad are done. I'm surprised there isn't a KerbalKonstructs dependency

Any idea what that Aerohider.dll is
It is required for the aerodynamic behaviour of the fairings.

Old School Fairings has only pre-release versions
I contacted the author for it already

Was an answer ever recieved from the author on this @Olympic1 ?

Nope, hopefully he will make a full release soon.

Going to close this as the oldschool fairings author seems very happy not releasing the mod and SpaceXLaunchVehicles no longer bundles the required .dll.


Prompt user to upgrade CLI if it's outdated

 Issue by marktani
Wednesday May 17, 2017 at 10:28 GMT
Originally opened as https://github.com/graphcool/cli/issues/79

We also should think about semantic versioning etc

This now happens.


Normalize prefix handling in blueprints

This PR normalizes the prefix handling in blueprints, similar to #964.
Fixes #967

@skalolazka FYI

Thanks @kunzese!
I'm not sure if we want the default=null for blueprints. @ludoo wdyt?

Thanks @kunzese!
I'm not sure if we want the default=null for blueprints. @ludoo wdyt?

true, blueprints could require the prefix to be passed in, so as not to default to existing project/bucket names

OMG, Sebastian, this is awesome! Thanks for taking your time! Nit: we did change "can not" to "cannot" in modules/ %)

But not in the ./CONTRIBUTING.md where i copied it from :p but i adjusted it everywhere.

@ludoo @juliocc what if we set a reasonable default value for prefix?
variable "prefix" {
  description = "Optional prefix used for resource names."
  type        = string
  default     = "blueprint" // demo or fast or example or whatever
  validation {
    condition     = var.prefix != ""
    error_message = "Prefix cannot be empty, please use null instead."
  }
}

This way everything has a prefix per default, the user does not have to supply one when they don't need, but we keep the possible to just not use any prefix if someone decides to do so.

@ludoo @juliocc what if we set a reasonable default value for prefix?
variable "prefix" {
  description = "Optional prefix used for resource names."
  type        = string
  default     = "blueprint" // demo or fast or example or whatever
  validation {
    condition     = var.prefix != ""
    error_message = "Prefix cannot be empty, please use null instead."
  }
}

This way everything has a prefix per default, the user does not have to supply one when they don't need, but we keep the possible to just not use any prefix if someone decides to do so.

The problem for blueprints (where there is no org-wide naming convention with a unique token, usually at the beginning of the name) is that setting a default prefix will originate clashes for each user after the first one that runs apply on project ids and GCS bucker names, which are unique across GCP.
For blueprints we should really not set a default for prefix, and ask users to set it in a tfvars file or pass it in via environment or arg.

Reworked the prefix handling, so that it is now mandatory.


Remove colon from tags within QBO

Details

This PR fixes the issue where ther's a colon symbol under Tag in search page is the tag is from QBO
Fixed Issues

$ https://github.com/Expensify/App/issues/43980
PROPOSAL: https://github.com/Expensify/App/issues/43980#issuecomment-2178964271
Tests

Precondition:
Account is connected to QBO.
Tags are enabled.

Submit an expense with only "Customers/Projects" tag and leave "Classes" without tag.
Go to Search.
Look for the tag field.
Verify that the tag doesn't start with colon :

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

Precondition:
Account is connected to QBO.
Tags are enabled.

Submit an expense with only "Customers/Projects" tag and leave "Classes" without tag.
Go to Search.
Look for the tag field.
Verify that the tag doesn't start with colon :

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@devguest07 Is this ready for final review?
Also, please make sure to add test steps in the OP.

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/4160319/6ef16939-0aaa-4101-8bda-ad2593b6c057

MacOS: Desktop

@devguest07 One more thing, the colon prefix is showing up on native. Here's a screenshot.

@devguest07 Any updates here? Also, please fix merge conflicts.

What's the status here @devguest07 @akinwale ?

What's the status here @devguest07 @akinwale ?

@luacmartins Waiting for @devguest07 to fix this issue: https://github.com/Expensify/App/pull/44688#issuecomment-2221853500.

@devguest07 let's get this one through the finish line!

@devguest07 any updates on this one?

Thanks! Looking forward to the updates.

@devguest07 any updates?

@devguest07 any updates on this one?

We haven't gotten a response in a while, so I'm gonna close this PR and we can select a new contributor to work on this fix cc @akinwale


Added Resourceify

A curated resource list of everything in the field of Data Science and Machine Learning.

Awesome hacking is a curation of various awesome lists for hackers, pentesters, and security researchers. The awesome list you have suggested might not be useful for the target users.


Option for the drills to have limited durability.

It would be nice for the drills to have limited durability, to balance things out for the unlimited ores.

This, also because using a higher grade drill than necessary has no effect


API call error throw ClassCastException (should be ShipengineException)

Your response return Map<String, String+ArrayList>:

In src/main/java/com/shipengine/InternalClient.java
func checkResponseForErrors( )
you initiate a Map<String, ArrayList> to get that response:

then this ClassCastException's always thrown (should be ShipengineException)
class java.lang.String cannot be cast to class java.util.ArrayList (java.lang.String and java.util.ArrayList are in module java.base of loader 'bootstrap')
Please help me solve this

Hello there!
Looks like my PR doesn't solve anything (of course, my bad in checking back
code)
Is there any way to fix this issue,
Or maybe the sandbox API key i'm using, its response is different from
production.
Looking forward to hearing from you soon!
Best,
Duc Nguyen Huu

I believe you'll want to do this:
List<Map<String, String>> result = shipengine.validateAddresses(unvalidatedAddress);
I've updated the readme as well, let me know if that does not resolve your issue.

No, it isn't my issue.
You get it wrong.
Please take a look at my first comment. I have 2 pics to describe it.
I have issue in file "src/main/java/com/shipengine/InternalClient.java"
at function "checkResponseForErrors( )"
Vào Th 6, 14 thg 10, 2022 vào lúc 04:21 Susi Rathmann <
@.***> đã viết:

I believe you'll want to do this:
List<Map<String, String>> result =
shipengine.validateAddresses(unvalidatedAddress);
I've updated the readme as well, let me know if that does not resolve your
issue.
—
Reply to this email directly, view it on GitHub
https://github.com/ShipEngine/shipengine-java/issues/19#issuecomment-1278191688,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZ6WI5T4X7GXJGQWZ3F45ODWDB4M7ANCNFSM6AAAAAARBDORXA
.
You are receiving this because you were mentioned.Message ID:
@.***>

You should not be calling any of the methods in the InternalClient directly, only using methods in ShipEngine. What does your actual code look like?

Yes I'm using methods in ShipEngine.
But I have to use debug mode, create a breakpoint in InternalClient to get
the correct response (such as incorrect address, carrier, service, etc...).
Otherwise, 100% times when Shipengine meet error, this exception is thrown:
"class java.lang.String cannot be cast to class java.util.ArrayList
(java.lang.String and java.util.ArrayList are in module java.base of loader
'bootstrap')"
Which prevents me from getting specific error messages, to know what is
wrong with my shipment details.

I'm not able to reproduce this error. Can you post an example line of code?

I've explained and post 2 pics for this issue in my first comment. You can check that.

Hi!
Can you release new version maven's dependency (include this issue fixed) ?

I'll publish a release ASAP, just waiting on some access control changes on our end

Great, thanks!
Vào 5:10, Th 7, 22 thg 10, 2022 Susi Rathmann @.***> đã
viết:

I'll publish a release ASAP, just waiting on some access control changes
on our end
—
Reply to this email directly, view it on GitHub
https://github.com/ShipEngine/shipengine-java/issues/19#issuecomment-1287484553,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZ6WI5XJN6POA4N6FZITHG3WEMIEDANCNFSM6AAAAAARBDORXA
.
You are receiving this because you were mentioned.Message ID:
@.***>


Rename array -> tuple

I've renamed  array to tuple files and didn't touch subfolders that use array, probably they have to be updated themselves from their repositories.

Blocked by https://github.com/objectionary/eo/issues/1823


CLOUDSTACK-9462: Systemd support for Ubuntu 16.04

Created this based on @wido 's origin PR #1541 .
Requesting for review and testing -- @jburwell @karuturi @wido @vincentbernat
@wido I think this change only brings systemd support to agent and usage packages, or does cloudstack-management pkg has systemd support too?
@blueorangutan package

systemd: Add a /etc/sysconfig/cloudstack-* file
This allows users to easily override variables passed to Java when
starting up.
It also creates a foundation for sharing the systemd service profile
between CentOS and Ubuntu since it only requires the environment file
to be changed.

deb: Drop Ubuntu 12.04 support
The libvirt and Qemu versions (1.2.2 and 2.0) in Ubuntu 12.04 are
to old to support for CloudStack going forward.
Ubuntu 14.04 and 16.04 provide the support required to provide new
features and more stability.

deb: Add Ubuntu 16.04 support
Ubuntu 16.04 differs from Ubuntu 14.04 in a few ways:

systemd instead of sysvinit / upstart
Java 8 support

The packaging now detects on which distribution it is being
build and based on that it installs different files in the
packages, but it also changes the Dependencies.

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

LGTM for the Ubuntu part. You could share /etc/sysconfig/* and /etc/default/* files between RHEL/Ubuntu (same files, just installed at different locations). Same for the service files:
[service]
EnvironmentFile=-/etc/default/cloudstack-agent
EnvironmentFile=-/etc/sysconfig/cloudstack-agent

Packaging result: ✔centos6 ✔centos7 ✔debian repo: http://packages.shapeblue.com/cloudstack/pr/1647
Job ID-92

@rhtyd No, it doesn't do the management server.
Let's just merge this PR and make a new one for that. I don't want to delay merging this any longer.
Thanks @vincentbernat for the comment, that's something for a next PR.

@wido given it's a pure packaging fix, and as per RMs we've enough LGTMs but we lack a test LGTM -- I can help merge this after some tests wrt usage and kvm agent (on ubuntu 16.04) over the weekend or next week.

I did the test myself, but since it's my code I can't LGTM this.

@wido with this change will we have to host two versions of deb repository -- one built on ubuntu without systemd (such as 14.04) and one built on ubuntu with systemd (16.04+)?

@wido While I understand that it is quite old and presents maintenance challenges, it remains supported until April 2017.  Therefore, it would be reasonable for users to expect us to continue to support it until EOL.  I have opened conversation on dev@ and user@ in an effort to determine the impact (if any) to users post 4.9.
In the meantime, would it be possible to split this PR into Ubuntu 16.04 support and removal of Ubuntu 12.04 support?  If we decide to remove it, I propose that we introduce it in the 4.10.x release.  Not only is 4.9 an LTS branch, it doesn't seem reasonable to drop support for a distribution in a patch release (i.e. <IP_ADDRESS> supports Ubuntu 12.04 and <IP_ADDRESS> does not).  Conversely, Ubuntu 16.04 support seems like a worthy addition to LTS.  Splitting these two issues will provide the flexibility to implement such removal of Ubuntu 12.04 in 4.10.x and the addition of Ubuntu 16.04 in 4.9.x+.  Does this approach seem reasonable?

@wido based on the ML discussion, I've removed the specific change that removed 12.04 support. Can you send another PR for master for removing support for 12.04.

@rhtyd Why another PR for against master? I thought we were merging forward?
This stuff is really starting to confuse me.

@rhtyd When this one merges and is merged forward I will send a PR for master to remove 12.04 support.

Thanks @wido that makes sense.

it is not possible to have systemd support and build on 12.04 at the same time. dh-systemd doesn't exist on 12.04 and its actions are quite important. If you remove it and just install the units manually, they won't start on boot or on upgrade.

@vincentbernat I made some changes, built packages and was able to install and run agent and usage server on both Ubuntu 12.04, 14.04 using the same packages.
@wido @vincentbernat can you review my change and if it's okay, based on installation tests we can merge this.
Additional notes: on fresh installation the /etc/default/cloudstack-{agent, usage} files use JAVA_HOME path for 1.8 jre which does not exist and needed manually fixing. This was the only thing I had to do and can be documented in install/upgrade and release notes.

@rhtyd Seems good, but it would still not force the install of Java 8 on Ubuntu 16.04
However, I don't think that's a blocker.
LGTM for me

@wido actually on a fresh system it would first attempt to find and install openjdk8, on existing ones if openjdk7 is installed then it won't force openjdk8 by default. Thanks.

Otherwise, I think the change to be compatible with 12.04 is OK (no Upstart script should ever be provided in this case).

Thanks @vincentbernat I'll update the dependencies, and in the post-installation step we can modify the default JAVA_HOME path of the host in the default/{cloudstack-usage, cloudstack-agent} files if available.

@wido @vincentbernat I've incorporate all the changes now, including refactoring of systemd file and now we've both centos and ubuntu/debian packaging consuming from the the same service/default systemd files. I tried to see if we can include support for cloudstack-management and systemd but that's challenging and different. Please review and let's merge this.

LGTM for me right now.
One side note, I hate changes being made in postinst files. But I wouldn't know a different route though.

Thanks @wido I'll see if I can fix the issue without including the changes in postinst files.

@wido @vincentbernat  I could not get rid of the postinst step as shell is not executed when I move the code in the EnvironmentFile itself. I've reduced its impact to only run when the default /etc/default/cloudstack-{usage, agent} are installed.
Since we're re-using the common systemd files, the JAVA_HOME declared in the files are set to the default we see on CentOS and only in that case the postinst step will replace it with the system default. On future upgrades, the postinst code won't run. Sorry, but this hack was needed.
Please see one last time, if we're in agreement as soon as my packaging testing succeed I'll merge this. /cc @jburwell @karuturi

Packaging tests confirmed, PR is OK. Debian packages tested on Ubuntu 12.04/14.04/16.04, rpms tests on CentOS 7.2. Both usage, agent came up on installation.

Update: postinstall code has been removed now @wido @vincentbernat

@vincentbernat @wido thank you for your suggestion and review, I've pushed the final version from my end. Packages works on both CentOS7 and Ubuntu 12.04/14.04/16.04.

@wido @vincentbernat and others -- any objections, this is good to merge?

Alright, given the reviews and that all changes have been incorporated with exhaustive testing with Ubuntu and CentOS I'll proceed with merging this without blocking <IP_ADDRESS> RC much further.
Any more improvements and changes should be sent in future PRs for example support for cloudstack-management/systemd on Ubuntu 16.04 is yet to be done. Thanks @vincentbernat and @wido for your review and feedback.


Sqlc not generating prepared queries for postgres (pgx/v5)

Version
1.18.0
What happened?
I am using sqlc v1.19 but I can't see it in the verion dropdown.
After setting  emit_prepared_queries: true, running sqlc --experimental generate doesn't emit prepared queries for postgres. It does it if you don't use pgx/v5 as sql package.
Any work around for this? Or am I missing something?
Thanks for the help.
Relevant log output
No response
Database schema
No response
SQL queries
No response
Configuration
version: "2"
sql:
  - engine: "postgresql"
    queries: "remote/db/sqlc"
    schema: "remote/db/schema.sql"
    gen:
      go:
        package: "pgDao"
        out: "internal/dao/pg"
        sql_package: "pgx/v5"
        emit_prepared_queries: true
        emit_pointers_for_null_types: true
        emit_interface: true
        emit_json_tags: true
        overrides:
          - go_type:
              import: "github.com/glhf-labs/bastille/internal/models/core"
              package: "coremodels"
              type: "StrMap"
            db_type: "jsonb"

Playground URL
No response
What operating system are you using?
Linux
What database engines are you using?
PostgreSQL
What type of code are you generating?
Go

I did find this: https://github.com/jackc/pgx/issues/791 which indicates that you don't need to use prepared statements when using pgx/v5, so I imagine that's why sqlc isn't generating them? I am not an expert on this topic, so if someone can confirm this, I'll just close the issue.

Kyle confirms this is accurate, prepared statements aren't necessary with pgx/v5.


Testing compilation with Werror in in CI

Hello @wizmer
+1 for -Werror !
FYI here are the recommended compiler flags: https://github.com/BlueBrain/hpc-coding-conventions/blob/master/cpp/Tooling.md
bob might be helpful: https://github.com/BlueBrain/hpc-coding-conventions/blob/master/cpp/cmake/bob.cmake#L221

Thanks @tristan0x
I'll add the recommended flags in another PR as I have just tried and this makes a looooot of things to fix.


Add a Discord link to the docs

This change adds a Discord link to our docs in the contributing
section so users know where they can reach out for questions
and discussion.
Closes #775
Signed-off-by: Eric Brown<EMAIL_ADDRESS>

You need to generate a non-expiring invite link to a specific channel.

You need to generate a non-expiring invite link to a specific channel.

Thank you, I believe the new link should work better.


import from repl

For any project with telemetry, it is an error to import anything from the repl:
RuntimeError: WIPAC Telemetry service started up before '__main__' was set. Do you have imports in your package's base '__init__.py'? If so, remove them; one of these likely prematurely called this library before '__main__.py' was executed.

Full trace:
>>> from rest_tools.client import Client
[wipac-telemetry-setup] Setting Tracer Provider...
Traceback (most recent call last):
  File "/home/dschultz/Documents/github/rest-tools/env/lib/python3.9/site-packages/wipac_telemetry/tracing_tools/__init__.py", line 67, in get_service_name
    main_mod_abspath = os.path.abspath(sys.modules["__main__"].__file__)
AttributeError: module '__main__' has no attribute '__file__'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/dschultz/Documents/github/rest-tools/rest_tools/client/__init__.py", line 1, in <module>
    from .client import OpenIDRestClient, RestClient
  File "/home/dschultz/Documents/github/rest-tools/rest_tools/client/client.py", line 19, in <module>
    import wipac_telemetry.tracing_tools as wtt
  File "/home/dschultz/Documents/github/rest-tools/env/lib/python3.9/site-packages/wipac_telemetry/__init__.py", line 3, in <module>
    from . import tracing_tools  # noqa
  File "/home/dschultz/Documents/github/rest-tools/env/lib/python3.9/site-packages/wipac_telemetry/tracing_tools/__init__.py", line 107, in <module>
    TracerProvider(resource=Resource.create({SERVICE_NAME: get_service_name()}))
  File "/home/dschultz/Documents/github/rest-tools/env/lib/python3.9/site-packages/wipac_telemetry/tracing_tools/__init__.py", line 69, in get_service_name
    raise RuntimeError(
RuntimeError: WIPAC Telemetry service started up before '__main__' was set. Do you have imports in your package's base '__init__.py'? If so, remove them; one of these likely prematurely called this library before '__main__.py' was executed.

@dsschult what's your use case?

is this ipython?

ipython or just regular python.  I was testing imports and how things like __package__ looked, and noticed the error.

ipython:
In [1]: from rest_tools.client import RestClient
[wipac-telemetry-setup] Setting Tracer Provider...
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
~/.local/lib/python3.8/site-packages/wipac_telemetry/tracing_tools/__init__.py in get_service_name()
     66     try:
---> 67         main_mod_abspath = os.path.abspath(sys.modules["__main__"].__file__)
     68     except AttributeError as e:

AttributeError: module '__main__' has no attribute '__file__'

The above exception was the direct cause of the following exception:

RuntimeError                              Traceback (most recent call last)
<ipython-input-1-6355ed8ba6ba> in <module>
----> 1 from rest_tools.client import RestClient

~/.local/lib/python3.8/site-packages/rest_tools/client/__init__.py in <module>
----> 1 from .client import OpenIDRestClient, RestClient
      2 from .session import AsyncSession, Session

~/.local/lib/python3.8/site-packages/rest_tools/client/client.py in <module>
     17 import jwt
     18 import requests
---> 19 import wipac_telemetry.tracing_tools as wtt
     20
     21 from ..server import OpenIDAuth

~/.local/lib/python3.8/site-packages/wipac_telemetry/__init__.py in <module>
      1 """Top-Level Init."""
      2
----> 3 from . import tracing_tools  # noqa
      4
      5 __all__ = ["tracing_tools"]

~/.local/lib/python3.8/site-packages/wipac_telemetry/tracing_tools/__init__.py in <module>
    105 _pseudo_log("Setting Tracer Provider...")
    106 set_tracer_provider(
--> 107     TracerProvider(resource=Resource.create({SERVICE_NAME: get_service_name()}))
    108 )
    109

~/.local/lib/python3.8/site-packages/wipac_telemetry/tracing_tools/__init__.py in get_service_name()
     67         main_mod_abspath = os.path.abspath(sys.modules["__main__"].__file__)
     68     except AttributeError as e:
---> 69         raise RuntimeError(
     70             "WIPAC Telemetry service started up before '__main__' was set. "
     71             "Do you have imports in your package's base '__init__.py'? "

RuntimeError: WIPAC Telemetry service started up before '__main__' was set. Do you have imports in your package's base '__init__.py'? If so, remove them; one of these likely prematurely called this library before '__main__.py' was executed.

The simplest solution is to check if OTEL_EXPORTER_OTLP_ENDPOINT is set before setting up the service name, since it probably wouldn't be set in REPLs.


The french translation is showing missing configuration

What happened?
Clicked on https://opentelemetry.io/fr/docs/what-is-opentelemetry/ and saw the following at the bottom:

What did you expect would happen?
See the page full translated.

Submitted a fix for this in docsly https://github.com/google/docsy/pull/2105

Just added a small suggestion to your PR.


Correction for Linux operating system

Corrected addheaderpath input in OpenCV.jl, changed dlopen_e to Libdl.dlopen_e, defined QtWidgets in deps/Qt_support.jll

Thank you!

You are welcome.


Support GetSASURL for User Delegation SAS within ContainerClient

Feature Request
Currently ContainerClient.GetSASURL only supports Service SAS. This means that ContainerClient.GetSASURL will only supply a SAS if the client was authenticated using a Shared Key.
We would like to be able to call GetSASURL and receive a User Delegation SAS if the ContainerClient was authenticated using Azure Active Directory.
Our use case does not use Shared Keys as they are long-lived credentials and provide less fine-grained permissions than Azure Active Directory. We will also be using SAS as it provides short-lived configurable access to resources.
Additionally, I have posted another issue (https://github.com/Azure/azure-sdk-for-go/issues/18976) to support User Delegation Credentials.

Thank you for the feature request. It is being addressed in this PR: https://github.com/Azure/azure-sdk-for-go/pull/19141

This has been added in<EMAIL_ADDRESS>