Internal server error on reporting back

@aaronschachter reported a 500 Internal Server Error when trying to hit the POST reportbacks/ endpoint from the iOS app. From pointing my local Northstar instance to talk to the staging server for it's Phoenix endpoints, I'm getting the following error in the debug message:
Server error response [url] http:\/\/staging.beta.dosomething.org\/api\/v1\/campaigns\/1286\/reportback [status code] 500 [reason phrase] : Reportback file_url not found.

From the documentation for the Phoenix endpoint, it looks like file_url is only required if file (the Base-64 encoded string) isn't provided. It definitely looks like we're sending this along though...

Ah, I think I got it. I removed the 'filename' => 'test123456.jpg' parameter from the API reportback method in my changes in #273. From digging in the Phoenix endpoint source it looks like that might have been an undocumented property instructing Phoenix to save the data URL with that filename?
/cc @aaronschachter @weerd

Good investigating @DFurnes -- I think you're right -- it does look like this is (missing from the docs) [https://github.com/DoSomething/phoenix/wiki/api#campaign-reportback]. I have a vague recollection that we needed a filename into order to get the File API's save working.. (it's been well over a year since i've looked at this code :older_man: )
I was using Services default endpoints as reference when I created these endpoints, which gives you back just simply the new entity id upon a POST to create. Ideally we would alter this to return the relevant Signup and Reportback responses from Transformer land... but that's a different issue.

@aaronschachter Mmm, makes sense. I put up a quick fix in #280 so this shouldn't be a blocker™.
One thing that could make sense would be having the Northstar API "automatically" perform a GET /reportbacks/:id on the returned string so we get the response we're expecting and then can transparently update the Phoenix endpoint later on?

If you can get that in, it would really help! Once we report back in the mobile app, we need to display the image -- so getting that image URL in the response would be :100:

@aaronschachter Defs. That should be pretty easy.
Frustratingly, the Phoenix reportbacks/:reportback_id function is currently returning an {"error":{"message":"No reportback data found."}} response on any newly created reportback ID. We're sending the admin API user credentials with the request & the reportback doesn't seem to be showing up in the Phoenix admin panel either so there might be another issue...
@weerd Is it possible the reportback API has changed with all this campaign runs work?

@DFurnes you need to pass in all status types you want otherwise it defaults to approved and promoted... if it's a newly added item, then it likely has a status of pending and you need to specify that you want that included or just the statuses you actually want ;) See if that helps?

@weerd Oh! You mentioned that once and I completely forgot. :sweat_smile: Is that only for reportback-items or does that apply for reportbacks requests as well?

Had to wrestle with Guzzle for a little bit to convince it not to run comma-delimited query string values through urlencode... ugh. Sadly, doesn't seem to have made any difference in the response. :disappointed:

Is that only for reportback-items or does that apply for reportbacks requests as well?

@weerd - It doesn't really make sense that for a single reportbacks/:id endpoint we'd need to pass a status value in order to get it to display... we only want a single Reportback...

ooooh, sorry it's for the /reportback-items endpoint @DFurnes :\

@DFurnes Just checking - are you making the request to reportbacks/:id as an authenticated admin? Good news is I submitted a reportback on Thor and got a rbid back.

Ooops, saw that you mention passing through the admin creds further up the thread.
This does look like something's wrong with the reportbacks endpoint @weerd . I logged into Thor as an admin and revisited https://thor.dosomething.org/api/v1/reportbacks/127644 and get a ""No reportback data found." message. However the reportback exists: https://thor.dosomething.org/reportback/127644

Ok! So yes it is a bug... sorta. It's due to this part of the code in the query... https://github.com/DoSomething/phoenix/blob/067180fd4cb233da3f31397f9144f72c1a7f2141/lib/modules/dosomething/dosomething_reportback/dosomething_reportback.query.inc#L58-L65
Basically that section keeps flagged RBs from being returned to non-admin requests, buuuuut it doesn't account for when the flagged column might be null... just 0 or 1. So I'm going to update it to address it and show all, regardless of flagged for admins. Cool @DFurnes @aaronschachter ?

Ahhh, tricks. That sounds reasonable to me @weerd!

@aaronschachter DoSomething/phoenix#6174 should clear up the #blocker on this once it's merged, although we should definitely try to put aside time to make the same permissions updates to the /reportbacks index endpoint as well (see @weerd's "background context" section).


Tag "HEAD"

A tag named HEAD exists. It's not good and throws the error

warning: refname 'HEAD' is ambiguous.

It was introduced with commit b747d62f88
Can you remove the tag?

It was removed a long time ago


Release(appsync-modelgen-plugin): Add new primaryKey, index, hasOne, hasMany, and belongsTo directive support

Description of changes

Codegen support for Amplify CLI v2 key and connection directives
Tested in https://github.com/aws-amplify/amplify-codegen/pull/237
Issue #, if available

Description of how you validated changes
Tested in https://github.com/aws-amplify/amplify-codegen/pull/237
Checklist

[x] PR description included
[x] yarn test passes
[x] Tests are changed or added
[ ] Relevant documentation is changed or added (and PR referenced)
[x] Breaking changes to existing customers are released behind a feature flag or major version update
[ ] Changes are tested using sample applications for all relevant platforms (iOS/android/flutter/Javascript) that use the feature added/modified

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Changes reviewed in individual PRs


Port bat app to SCIONLab nextversion

The SCIONLab update is coming. We need to port all existing SCION applications so they build and run with the next version.
Typically you will need to register and get a user AS from the testing coordinator at
http://http://scionlabtestbed.inf.ethz.ch:8080
And use it to run and test the application you are trying to port.
Another possibility is, of course, to install the next version in your local machine. Just check out the scionlab_nextversion branch from our repository, and build it following the standard procedure.
This issue deals with porting bat. It depends on issue #29

Closed by 87c9760d4863e225f358617c983bca9e67e687f7


How to apply segment AnalyticsService.Data.Ga.Get

I am trying to apply segment for a query but I am not able to get it working. Here is what I have been trying:
var segments = analyticsService.Management.Segments.List().Execute();
var engagedTeamsSegment = segments.Items.FirstOrDefault(x => x.Name.Equals("Engaged Teams", StringComparison.OrdinalIgnoreCase));

var format = "yyyy-MM-dd";
var today = DateTime.UtcNow.Date;
var thirtyDaysAgo = today.Subtract(TimeSpan.FromDays(30));
var metrics = engagedTeamsSegment.Definition.Replace(';', ',');

var gaData = analyticsService
    .Data.Ga
    .Get($"ga:{profile.Id}", today.ToString(format), thirtyDaysAgo.ToString(format), metrics)
    .Execute();

I am probably doing something wrong but not sure what :disappointed:

This question is a specific question for Google Analytics, this repository is for the .NET client library that is share between all APIs (drive, storage, youtube, etc.)

I think it's a good idea to post this question in StackOverflow (SO) using our tag, (http://stackoverflow.com/questions/tagged/google-api-dotnet-client) and more importantly analytics tags as well.

In the future post in SO, please add more context, do you get an error, exception, what exactly doesn't work...?

I'm closing this issue, feel free to reopen it, if you think that it should be kept open here.

@peleyal I asked it here too: http://stackoverflow.com/questions/33677757/how-to-apply-segment-using-google-analytics-net-client can you have a look if you know what I am doing wrong?

I responded there.
I would also look in the Analytics page - https://developers.google.com/analytics/help/, maybe there are forums or other places besides SO that you can ask for help.


beta422 messes up resourcepacks

No idea if this is even fixable in a resourcepack.
Previous to this update - http://postimg.org/image/s6xeggx55/ we had simple transparent boxes with backgrounds on.
They got removed and you somehow overlay the item texture into the box, works great for vanilla but doesn't work at all for resourcepacks.
http://postimg.org/image/dz7prtkg9/
There's nothing in those slots but it looks like there is.
Is it possible to fix this, I see no alpha transparency textures on anything in the mod?

The resource pack needs to also needs to implement a transparency mask that matches the slot backgrounds. It is part of the widget sheet.

Just as a reference for the next time this comes up:
This is the icon that needs to be set to resemble the slot background:

(That's the endercore widget sheet)

As I said in IRC what you've done makes the GUI a confusing mess and just to prove the point http://postimg.org/image/9oxn9z4qx/

@HenryLoenwind I had assumed that the overlays would hide when something is in the slot. If that's not the case, it needs to be. Otherwise @b0bst3r is absolutely correct.

I mirrored the old behavior exactly. (Aside from the shuffling)


OP Codes preceding Input

This is a change to the input field to match the proposed figma where Op_Codes have been added to begin to show the user how a Bitcoin transaction is separated.
This change only applies to the second lesson Transacting, Genesis will retain the OP_Codes in the Input for the user to more easily copy and complete.
Much of the copy remains the same, this is just a change to the input and the status bar
Preview (Input starts with 5, 3)
Screenshots

I kinda dig the color scheme.

Ok I just tested the branch and LOVE what you have done to highlight just the wrong characters, like in this screeshot. That is really cool!

I think you've also been working on the input box and I gotta say, the experience is SO much smoother. It's nice that I can click anywhere on the empty challenge, and it moves my cursor to the beginning, and how I can select all with a hotkey and change my answer really quickly. Well done!

Marking as draft until I can get it to deploy properly

Tested. Ben you might need to rebase. Your PR in challenge for pt. 2 accepts I think the old one "Taco's are for everyone". Other than that it looks great.

Oh I see what the issue is.
To me, pt.2(decoding address) of this challenge makes it seem like the op_return from pt.1 should be re-used in pt.2 but that's not the case. That's why I assumed the op_return from pt.2 was the answer to pt.1
I pinged @satsie on this in figma.
This is a tACK for me and I'll see if we need to do a fast follow based on what stacie says and create another issue.

I think it should be,
the answer in Challenge-2 pt-1
answer
5361746f7368693433335061726b53744368696e6f43413933323433

and Challenge-2 pt-2
answer
echo 5361746f7368693433335061726b53744368696e6f43413933323433 | xxd -r -p

I just ran through the flow in the Vercel preview and everything works for me (at least the happy path, I didn't try to break anything!)
Challenge 1 and Challenge 2 use two different transaction IDs and are unrelated. @ecurrencyhodler can you provide a screenshot of where you're seeing the "tacos are for everyone" message/where that answer is being accepted?

@satsie the issue was pt1 and pt.2 use different op_returns but pt.2 makes it seem the user is supposed to use the same one. I left a comment in figma. I think we need to change copy for pt2 to clearly look for a diff op_return.

@ecurrencyhodler moving this convo to Figma :)

Okay the copy isn't a blocker then. We can follow up later with other issues. Let's keep moving forward.

aw shoot! can't merge until @afterburn approves


Fix #79 Drop Narwhal (deprecated) support

Remove all references to Narwhal and OpenJDK 6
This should also fix Travis builds

hey hsandt, could you merge and release all your fixes in your fork? It seems these PRs aren't getting reviewed..

hey hsandt, could you merge and release all your fixes in your fork? It seems these PRs aren't getting reviewed..

Hm where to where exactly? master, or another branch you're using?
I see fix-binary-op-lost-brackets, fix-travis (here), and also fix- branches I apparently created but didn't do anything on them (like fix-unenclosed-function-calls for #62). Probably did some local things on another computer that didn't quite work, so I didn't push them and I don't even see them on my current computer.
I haven't merged fix-travis in particular as I never managed to fully fix Travis on my project, as I kept encountering incompatibilities. CI is apparently using particular flavours of JS interpreters, we could probably drop a few.
Since the "enclosed function" test failure prevented me from testing CI properly, I branched from before the commit that introduced it (see https://github.com/mathiasbynens/luamin/issues/62), and made a feature/cleanup-deps branch. There, I found an issue with phantomjs only on my custom code using new ECMAScript method String.prototype.startsWith (for convenience, substring works just as well), as it was too old (1.9). Since it's not updated anymore, I just removed it. But then I still had an issue with Ringo: https://travis-ci.org/github/hsandt/luamin/jobs/730000374
so I kinda stopped there, as I could at least run the tests locally and it was fine (with latest nodejs).
I don't know the other environments enough to tell which ones are still worth supporting (rhino, ringo) but I may just remove everything but node if it's for my own fork and I feel a bit more free.
Is this what you're aiming for? Without going before #64 you may not even have noticed these incompatibility issues though, so maybe you were rather speaking about non-Travis fixes?

hey hsandt, could you merge and release all your fixes in your fork? It seems these PRs aren't getting reviewed..

OK, 2 years later, I finally made it:

my fork's develop (default) branch: https://github.com/hsandt/luamin/tree/develop for all the fixes and crazy minification features (I use it for super compact code in PICO-8)
the stable branch: https://github.com/hsandt/luamin/tree/stable for just the fixes and cleaning up dependencies

The issues I mentioned are still there. I just merged the fixes into stable and the fixes + features in develop. I also just added one more fix on both (Lua 5.4 operator precedence).


CLOUDP-59258: Add a link to the docs page in the README

Proposed changes
Jira ticket: CLOUDP-59258
Checklist

[x] I have added tests that prove my fix is effective or that my feature works
[x] I have added any necessary documentation (if appropriate)
[x] I have run make fmt and formatted my code

@andreaangiolillo you should not need to edit that file, that's what mongocli config and mongocli config set are for

@gssbzn does mongocli config allow you to create profiles? 🤔

@andreaangiolillo reworded some things to make it more clear about how to config the tool let me know what you think


Refactor main file

Key points addressed as part of this PR:

Isolated CSP client configuration and implementation into src/client/csp.ts
Isolated VIB client configuration and implementation into src/client/vib.ts
Distributed the constants declared in constants.ts to the files where they are actually needed
Updated tests and tests boundaries accordingly (CSP tests have been moved to csp.test.ts
Moved util functions (used in multiple files) getNumberInput and getNumberArray to src/util.ts
Moved configuration handling to src/config.ts

Having this differentiation makes easier to read the action code, to know where each logical part may be located, and to test each component individually as well as in conjunction by allowing to mock each part more granurally.
Some aspects that aren't covered by this PR:

No new tests are added: the goal of this PR is to move code between files keeping the current tests and functionality.
Following a testing structure convention: not every test follows a structural convention. Only those that needed refactoring were adapted to a given/when/then structure.
Removing dependencies between tests: some tests depend on others (i.e. most of the tests in main.test.ts depend on the execution of the first one), we should isolate each test to make them easier to maintain and validate. This may be done by mocking external services or not, depending on the use case.

@paleloser great work here!
Before merging this, can you perhaps run a few tests with your own repository and point it to this branch? There are too many changes so having some actual real-life end to end test will help here.

One difference I notice is this:
» Pipeline is still in progress, will check again in 30s.
Warning: report.pipe is not a function
Warning: report.pipe is not a function
Warning: report.pipe is not a function
Warning: report.pipe is not a function

There you go, here's a passing one with the reports working https://github.com/paleloser/vmware-image-builder-action/actions/runs/3884821295/jobs/6627887502 I was passing the responseType through the headers instead of an axios parameter 🤦🏼

This execution proves that VIB_ENV_TARGET_PLATFORM is substituted, and that SHA_ARCHIVE is replaced by the URL pointing to the contents provided by GitHub. It is expected to fail because the resources.path does not exist in my fork https://github.com/paleloser/vmware-image-builder-action/actions/runs/3885302027/jobs/6629006964


Mypal Browser

Mypal Browser - https://github.com/WhichBrowser/Parser-PHP/issues/238

Coverage remained the same at 100.0% when pulling 30b459a8680651de9bf6aa8acda09f1283ee97a8 on ayumi-cloud:Mypal into 4899110cd2f87b01e04ced62dbb9dec541031dee on WhichBrowser:master.


window.onDidChangeTextEditorSelection triggers for built-in output panes like Terminal or Extension Host

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

VS Code Version: 1.86.0
OS Version: Manjaro Linux

Steps to Reproduce:

Like title says: window.onDidChangeTextEditorSelection triggers when you click on a built-in output pane Extension Host.

Even worse, it triggers when you click on the output channel of the very extension that is running. If your logic throws an error and logs the output to... the output pane.... you have a nice endless loop that spams your output pane like crazy.
Surely this kind of behavior isn't intended?! I guess you guys changed the type of output panes from plain text output to a built-in editor document recently? Because I haven't experienced these problems for a long time / got reports for it only recently.
What I'm doing now to prevent this is
vscode.window.onDidChangeTextEditorSelection(({ textEditor }) => {
		doc = textEditor.document
		uri = doc.uri
		if(uri.scheme == 'output' || doc.languageId == 'log' || doc.languageId == 'Log' /* apparently both are possible??? */ || uri.path.includes('extension-output') || uri.path.includes(MY_EXT_ID))
			return

because I have no idea what I actually need to do. Found no documentation on this and I'm scared it happens again.
Currently neither document, editor nor uri seem to support a readOnly flag or a isBuiltIn flag. Is checking for scheme==output the correct approach? And shouldn't onDidChangeTextEditorSelection (and similar apis?) just not allow for this to happen in the first place?

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.86.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

This is as designed, the output editor is a code editor since day 1 and it is emitting events like other code editors. The fix you have done is the right one, you don't want to react to events coming from it.


update stable to 0.2.10

NONE

do not yet merge, to be tested first after #1272

@ldemailly: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
67df08b367895d660f319ad44d19f90e1ffe8e1e
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

0.2.10 seems to work well so I'd tend to switch for good old 0.1.6 now ?

@ldemailly: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
4eea03843fcd568a662c5b9fcb14fcaa6671f3cf
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

We will move to 0.2.11, so this is not longer needed, right?

well 5 days later we still don't have 0.2.11 and it will need to bake 1 week at least before being "stable" but sure, it's been 0.1.6 for months, it can wait some more

/lgtm

might go directly for 0.2.12 in a few days

let's let 0.2.12 bake until next week and then we can merge this
(before we change "latest" to 0.3.0)

/lgtm

It seems you have to manually update branch to get new circleci scripts.


Use of undeclared crate or module parquet when compiling without --feature=parquet flag

Describe the bug
I believe this breaks after https://github.com/apache/arrow-datafusion/pull/7745, but it has been unsolved for while, so I file an issue to track it. Adding #[cfg(feature = "parquet")] is a workaround for now, but if want to run single test inside tests we need to add another flag for it.
To Reproduce
Run tests in datafusion/common/src/scalar.rs like this:
$ cargo test -p datafusion-common
   Compiling datafusion-common v33.0.0 (/Users/alamb/Software/arrow-datafusion2/datafusion/common)
error[E0433]: failed to resolve: use of undeclared crate or module `parquet`
   --> datafusion/common/src/file_options/mod.rs:302:9
    |
302 |     use parquet::{
    |         ^^^^^^^ use of undeclared crate or module `parquet`

error[E0432]: unresolved import `super::parquet_writer`
   --> datafusion/common/src/file_options/mod.rs:316:17
    |
316 |     use super::{parquet_writer::ParquetWriterOptions, StatementOptions};
    |                 ^^^^^^^^^^^^^^ could not find `parquet_writer` in `super`

Expected behavior
I hope we can have a way to just run the test without adding flag like before. Either all the test at once or single test.
Additional context
No response

The workaround is to add --features=parquet to the cargo command
It would be great to update the tests in datafusion_common that require parquet to feature flags

I think this would be a good first issue -- it is a nice software engineering exercise to try and make the tests easier to use and doesn't require deep knowledge of DataFusion, just Rust knowledge
Perhaps someone could start with https://github.com/apache/arrow-datafusion/pull/7934 and extend that basic idea

Hello, can I give it a try?

Hello, can I give it a try?

Sure

Thank you very much @Dennis40816 🙏

@alamb After a brief review of the code in PR #7934, I would like to confirm my understanding and seek clarification if I have any misconceptions about the program structure or Rust.
From my perspective, this issue should address two main tasks:

Explicitly mark tests and related references that depend on parquet with the #[cfg(feature = "parquet")] attribute. This ensures that when these tests are run, parquet is automatically added to the features. For example:
// in "datafusion/common/src/file_options/mod.rs"
#[cfg(test)]
mod tests {
    use std::collections::HashMap;

    // should add cfg flag here         <--------------
    #[cfg(feature = "parquet")]
    use parquet::{
        basic::{Compression, Encoding, ZstdLevel},
        file::properties::{EnabledStatistics, WriterVersion},
        schema::types::ColumnPath,
    };
    // ...

    #[test]
    // also add cfg flag here           <--------------
    #[cfg(feature = "parquet")]
    fn test_writeroptions_parquet_from_statement_options() -> Result<()> {
        let mut option_map: HashMap<String, String> = HashMap::new();
        // ...
    }
    // ...
}

Following #7934, we should also implement a stub to trigger runtime errors when users forget to add #[cfg(feature = "parquet")] to their test cases, rather than encountering compile-time errors.
// in "datafusion/common/src/file_options/mod.rs"
#[test]
fn test_writeroptions_parquet_column_specific() -> Result<()> {
  // ...

  // implemented in #7934
  let parquet_options = ParquetWriterOptions::try_from((&config, &options))?;
  // should we also implement `writer_options` for `ParquetWriterOptions` in the stub?
  let properties = parquet_options.writer_options();

  // ...
}

However, regarding the second point, I am uncertain about its feasibility. The concern arises if users employ new parquet features, which would necessitate corresponding updates to the stub. Would extensive use of parquet features potentially make the stub challenging to maintain?
As a Rust beginner, I hope you won't mind if I ask a seemingly naive question.

Following https://github.com/apache/arrow-datafusion/pull/7934, we should also implement a stub to trigger runtime errors when users forget to add #[cfg(feature = "parquet")] to their test cases, rather than encountering compile-time errors.

I recommend we don't do the runtime error -- and instead ensure people don't forget #[cfg(feature = "parquet")] by adding a CI cargo check command instead

Thanks for your clearly suggestions. I'll follow the steps, and then we can look at the results :)

Thanks! To be clear, I don't think we should do Phase 2 as part of this ticket. I suggest we complete phase 1 (make the tests work) and then we can file a follow on ticket that tracks phase 2


Sound plays when vanilla tweaks' data pack Armoured Elytra is active

Sound spam is played when the Vanilla tweaks data pack Armoured Elytra is installed from https://vanillatweaks.net/picker/datapacks/
Add an option to config to maybe check for a rapid change between chest plate and elytra?

It'd be nice if there was any detection for the same item changing, because even taking damage with the inventory open will make the sound play. This is especially annoying with mods having constantly-updating things, like recharging/draining armor.

maybe integrate with Mod Menu and add a easy to edit config?

maybe integrate with Mod Menu and add a easy to edit config?

Please use a separate ticket for feature requests

Duplicate of #7


Publish our INT32, UINT32, INT64, UINT64 ASN.1 types and Z variants

Note that this includes a proposed future deprecation of LONG and ZLONG

If we are deprecating LONG/ZLONG shouldn't we also remove all uses of it in our own code? I notice there are "LONG" uses in the ec, cms and dsa code, as well as ZLONG use in the dh code. In looking for that I also fell upon asn1_item_list.h which looks like it needs an update.

If we are deprecating LONG/ZLONG shouldn't we also remove all uses of it in our own code? I notice there are "LONG" uses in the ec, cms and dsa code, as well as ZLONG use in the dh code. In looking for that I also fell upon asn1_item_list.h which looks like it needs an update.

Yup, I'm working through those...

There.

To experiment with this, apply this patch:
diff --git a/Configure b/Configure
index 66541be41d..9b425a4c47 100755
--- a/Configure
+++ b/Configure
@@ -171,6 +171,7 @@ our $BSDthreads="-pthread -D_THREAD_SAFE -D_REENTRANT";
 #
 my $maxapi = "1.1.0";           # API for "no-deprecated" builds
 my $apitable = {
+    "1.2.0" => "0x10200000L",
     "1.1.0" => "0x10100000L",
     "1.0.0" => "0x10000000L",
     "0.9.8" => "0x00908000L",

then configure with --api=1.2.0

Note, however, that it will fail to build until #3127 has been applied...

Let’s discuss this on the list?

Which part?  'cause there are two parts, one is simply publishing, the other is deprecating the old.  Maybe I should split this up in two PRs to avoid confusion?

@richsalz, I suggest you start the discussion.  I have no idea what topic you want to talk about.

Ping?

Oh, a Travis failure...

Ping?

Looks good to me, but perhaps @snhenson should review? Otherwise +1 from me.

I would appreciate such a review, but will not wait endlessly.

Merged.  64f11ee88883af8995d2991307ff3fb560a96fa6 to f120fa1efe6377850d1ecd389a02e0e2241912bc


Infinite state update in v1.10.0

When using<EMAIL_ADDRESS>the app enters infinite state update while connecting the account.

Does this exist on the latest version, 1.10.3, as well? Also, could you provide a code snippet by any chance?

Fixed in #27, thanks!


[#6210] Remove agent project in quickstart

Codecov Report

Merging #6212 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #6212      +/-   ##
==========================================
+ Coverage   39.64%   39.65%   +<.01%
==========================================
  Files        3032     3032
  Lines       91214    91214
  Branches    11859    11859
==========================================
+ Hits        36164    36172       +8
+ Misses      52043    52031      -12
- Partials     3007     3011       +4

Impacted Files
Coverage Δ

...vercorp/pinpoint/rpc/packet/ClientClosePacket.java
55.55% <0%> (-11.12%)
:arrow_down:

...vercorp/pinpoint/web/vo/ApplicationAgentsList.java
66.66% <0%> (-2.57%)
:arrow_down:

...navercorp/pinpoint/rpc/common/SocketStateCode.java
82.92% <0%> (-2.44%)
:arrow_down:

...orp/pinpoint/rpc/server/DefaultPinpointServer.java
79.22% <0%> (-1.77%)
:arrow_down:

...rc/main/java/com/navercorp/pinpoint/test/Item.java
66.66% <0%> (ø)
:arrow_up:

.../pinpoint/rpc/client/PinpointClientHandshaker.java
66.42% <0%> (+6.42%)
:arrow_up:

...pc/server/LoggingServerMessageListenerFactory.java
100% <0%> (+10%)
:arrow_up:

...rp/pinpoint/rpc/control/ControlMessageDecoder.java
78.57% <0%> (+14.28%)
: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 8c4279c...1f254c8. Read the comment docs.


Better behavior when facing narrow gaps

The meat of this change is in the third commit of the series:
c488690 Fixes crash in deleteTebDetours()
38c41f6 Badger Specific: Disable deletion of detour Teb's
b502762 Adds nonlinear component to obstacle cost
8df686b Visualize planning failures

This change is

Err, this pull request was for the wrong branch. Trying again...


How to determine the height of textblock created with page.DrawTextblock(..)

Hello,
Is there any way of determining the height of a textblock created with the page.DrawTextblock function?
Does a (vague) idea exist on how en where to implement such a feature?
Kind regards,
Iskander Verkroost

Hello Iskander,
If I remember well, the font size is in fact the height of a line of text in that font.
Rest to know how many lines your text will make up.
The DrawTextblock already does this more or less. It's internal implementation is:
return page.DrawText(x, y, options.Font.SplitText(str, options.FontSize, blockWidth), options, leftRotationDegrees);
So it uses the DrawText function that does not wrap text. To wrap text, it uses the font.SplitText function.
The font.SplitText method will add linefeeds to the string to add wraps where needed so that the text fits within the given width boundary.
You could call the font.SplitText method yourself, count the number if line feeds in it to know the height of the text ((number_of_linefeeds + 1) * font.height), then pass the text straight to DrawText (as it already contains linefeeds).
Kind regards
Rudi Breedenraedt

From: iskander-verkroost<EMAIL_ADDRESS>Sent: 11 August 2016 08:15
To: codetuner/Arebis.Common
Subject: [codetuner/Arebis.Common] How to determine the height of textblock created with page.DrawTextblock(..) (#1)
Hello,
Is there any way of determining the height of a textblock created with the page.DrawTextblock function?
Does a (vague) idea exist on how en where to implement such a feature?
Kind regards,
Iskander Verkroost

You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/codetuner/Arebis.Common/issues/1, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AIydg_FUxK4LRd8tanVLmEdMTj-xSFQiks5qer4FgaJpZM4Jh0w3.


Pin to versions in the requirements file

currently the exporters pull latest for most of the dependencies. This means the OpenShift module is pulling v12 or greater which is using the Kubernetes v12 module too. These versions should be fixed to guarantee the correct module is pulled for the exporters

With the merge of #406 I consider this issue as resolved. We do have clear documentation on which required PyPI package is used by which exporter. On top of that we did pin the dependencies that had to be used at minimal version:
openshift == 0.13.1    # module openshift
python-gitlab >= 2.4.0 # module gitlab

Pinning other modules is not really desired as we would not use bug fixes and security fixes from those modules, so we should use latest released versions of those.
We also switched to use pre-built quay images as main method of deployment, meaning packages are exactly the ones we used when building podman images.


File renaming functionality

@czpython do you know who from main filer contributors could make a review of this PR?


🥳[Feature] version-code bump

skipped ints to allow others to merge

Will make a proper release


kubectl Cheat Sheet

set yaml file and build namespace for in pods
### Tasks

Hello @supriyanath, What is it that you would like to report or request in this issue?
/triage needs-information
/language en

closing this issue, as there is no response from the author.
/close


Update the postsubmit auto-generate-controllers job to use ACK prow repo.

Description of changes:

Updating the auto-generate-controllers to use ACK prow repo for fetching images.
Pushed the image to ACK public ecr repo for prow. https://gallery.ecr.aws/m5q3e4b2/prow

In future PR: cleanup the naming of these image and remove redundant "prow" in the naming convention
In future PR: making these images semver compatible by naming like "0.0.1-auto-generate-controllers"
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/lgtm


GEODE-5530 create geode-assembly-test for better dependency resolution

Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[ ] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[ ] Is your initial contribution a single, squashed commit?

[ ] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

CI failures for flaky tests.
https://issues.apache.org/jira/browse/GEODE-5601
https://issues.apache.org/jira/browse/GEODE-5602
https://issues.apache.org/jira/browse/GEODE-5603


Can't load sqlite.dll from current directory

I attempted to run label-studio from a windows computer with limited access. I installed the package via pip in a conda environment, all seems good so far. However when I try to run label-studio I get the following error:
(label-studio-3.7) Y:\>label-studio
Current platform is win32, apply sqlite fix
Can't load sqlite3.dll from current directory

The error seems to traceback to the following script:
https://github.com/heartexlabs/label-studio/blob/ef93ceb9965c9bcd8b492e81bdef09d0bbd74c7e/label_studio/core/utils/windows_sqlite_fix/__init__.py
Perhaps I can attempt to manually copy the correct DLL to the "current directory". However, In which folder should I copy this file to?
edit: I figured out the current working directory by printing out the current directories but I found that there were no .zip files in the directory. Still the issue remains when I downloaded the .zip files and placed them in the folder.

@akuuzii Could you please try:
pip install -U label-studio==1.4

There should be a fix for this issue.

You can close this issue. Turns out my actual issue had to do with internal proxy settings that interfered with the html routing. I managed to solve it by changing some .env variables.

You can close this issue. Turns out my actual issue had to do with internal proxy settings that interfered with the html routing. I managed to solve it by changing some .env variables.

How did you resolve this issue exactly? I seem to be facing the same issue in my system

Is there any guidelines to solve this issue ? I'm facing the same problem, any help would be appreciated.

@halilergul1 try to use anaconda python and its environment, it already has the proper sqlite library. Or try to download sqlite dll and place it in the same folder where you run LS.

Hello, I tried to install label-studio today and I getting the same error related to sqlite. I tried to replace the dll (which was already there in the folder), but it didnt work. I will post more details of the startup logs tomorrow? is there any guidelines to solve this? Thanks.

Hello! I'm currently having this same error - and I'm having a hard time identifying the solution? Could anyone help?
Current platform is win32, apply sqlite fix
Can't load sqlite3.dll from current directory
I tried this both in a base python setup and inside the latest Anaconda venv - but no luck - same error both times.

@swingard007 could you write your windows version and python version?
Also console logs would be helpful.

Hi,
I am getting this error with Win 11, jsutr installed the newest version of app. Python 3.11.2

Not sure python 3.11 is working with downloadable version of sqlite lib.

My problem was that there were multiple versions of sqlite3.dll on my computer and Python was using a version that was not compatible with Label Studio. I found this out by running the following Python code:
import sqlite3
sqlite3.sqlite_version
Then I searched my computer for sqlite3.dll and deleted all of the files with that name. The wrong version came with AWS CLI. Then I downloaded the latest version and copied to C:\Users<USER>\Anaconda3\Library\bin. Make sure this path is added to your PATH variable.

Just a little note for clarity:
a version that was not compatible with Label Studio

=>
a version that was not compatible with your version of python

Unfortunately i am having the same issue regarding "can't load sqlite.dll from current directory"
windows version 10
python version 3.10
below is the console log:
(env) C:\Users\mycomputer\env>label-studio start
Current platform is win32, apply sqlite fix
Can't load sqlite3.dll from current directory
=> Database and media directory: C:\Users\mycomputer\AppData\Local\label-studio\label-studio
=> Static URL is set to: /static/
=> Database and media directory: C:\Users\mycomputer\AppData\Local\label-studio\label-studio
=> Static URL is set to: /static/
Traceback (most recent call last):
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in run_code
exec(code, run_globals)
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\Scripts\label-studio.exe_main.py", line 7, in
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\label_studio\server.py", line 296, in main
setup_env()
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\label_studio\server.py", line 40, in setup_env
application = get_wsgi_application()
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\django_init.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\django\conf_init.py", line 82, in getattr
self.setup(name)
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\django\conf_init.py", line 69, in setup
self.wrapped = Settings(settings_module)
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\django\conf_init.py", line 170, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\importlib_init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\label_studio\core\settings\label_studio.py", line 45, in
sentry.init_sentry(release_name='label-studio', release_version=version)
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\label_studio\core\utils\sentry.py", line 75, in init_sentry
sentry_sdk.init(
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sentry_sdk\hub.py", line 121, in init
client = Client(*args, **kwargs)  # type: ignore
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sentry_sdk\client.py", line 143, in init
self.init_impl()
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sentry_sdk\client.py", line 223, in init_impl
self.integrations = setup_integrations(
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sentry_sdk\integrations_init.py", line 109, in setup_integrations
for integration_cls in iter_default_integrations(
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sentry_sdk\integrations_init.py", line 41, in iter_default_integrations
yield getattr(import_module(module), cls)
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\importlib_init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in find_and_load_unlocked
File "", line 688, in load_unlocked
File "", line 883, in exec_module
File "", line 241, in call_with_frames_removed
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sentry_sdk\integrations\sqlalchemy.py", line 13, in
from sqlalchemy.engine import Engine  # type: ignore
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy_init.py", line 12, in
from sqlalchemy.sql import (
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\sql_init.py", line 7, in
from sqlalchemy.sql.expression import (
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\sql\expression.py", line 32, in
from sqlalchemy import util, exc
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\util_init.py", line 7, in
from .compat import callable, cmp, reduce, defaultdict, py25_dict,
File "C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\util\compat.py", line 202, in
time_func = time.clock
AttributeError: module 'time' has no attribute 'clock'

I recommend downgrading to python 3.8. I think I had the same problem with
newer versions.
On Sun, Jun 11, 2023 at 12:32 PM chop-pixel @.***>
wrote:

Unfortunately i am having the same issue regarding "can't load sqlite.dll
from current directory"
windows version 10
python version 3.10
below is the console log:
(env) C:\Users\mycomputer\env>label-studio start
Current platform is win32, apply sqlite fix
Can't load sqlite3.dll from current directory
=> Database and media directory:
C:\Users\mycomputer\AppData\Local\label-studio\label-studio
=> Static URL is set to: /static/
=> Database and media directory:
C:\Users\mycomputer\AppData\Local\label-studio\label-studio
=> Static URL is set to: /static/
Traceback (most recent call last):
File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\runpy.py",
line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\runpy.py",
line 86, in
run_code exec(code, run_globals) File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\Scripts\label-studio.exe_main.py",
line 7, in
File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\label_studio\server.py",
line 296, in main
setup_env() File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\label_studio\server.py",
line 40, in setup_env application = get_wsgi_application() File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\wsgi.py",
line 12, in get_wsgi_application django.setup(set_prefix=False) File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\django_init.py",
line 19, in setup configure_logging(settings.LOGGING_CONFIG,
settings.LOGGING) File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\django\conf_init.py",
line 82, in getattr
self.
setup(name) File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\django\conf_init.py",
line 69, in
setup self.wrapped = Settings(settings_module) File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\django\conf_init.py",
line 170, in init mod = importlib.import_module(self.SETTINGS_MODULE) File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\importlib_init.py",
line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\label_studio\core\settings\label_studio.py",
line 45, in
sentry.init_sentry(release_name='label-studio', release_version=version)
File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\label_studio\core\utils\sentry.py",
line 75, in init_sentry
sentry_sdk.init(
File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sentry_sdk\hub.py",
line 121, in
*init client = Client(*args, *kwargs) # type: ignore File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sentry_sdk\client.py",
line 143, in init self.init_impl() File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sentry_sdk\client.py",
line 223, in init_impl self.integrations = setup_integrations( File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sentry_sdk\integrations_init.py",
line 109, in setup_integrations for integration_cls in
iter_default_integrations( File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sentry_sdk\integrations_init.py",
line 41, in iter_default_integrations yield getattr(import_module(module),
cls) File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\importlib_init.py",
line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in
find_and_load_unlocked File "", line 688, in load_unlocked File "", line
883, in exec_module File "", line 241, in call_with_frames_removed File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sentry_sdk\integrations\sqlalchemy.py",
line 13, in from sqlalchemy.engine import Engine # type: ignore File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy_init.py",
line 12, in from sqlalchemy.sql import ( File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\sql_init.py",
line 7, in from sqlalchemy.sql.expression import ( File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\sql\expression.py",
line 32, in from sqlalchemy import util, exc File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\util_init.py",
line 7, in from .compat import callable, cmp, reduce, defaultdict,
py25_dict, File
"C:\Users\mycomputer\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\util\compat.py",
line 202, in time_func = time.clock AttributeError: module 'time' has no
attribute 'clock'
—
Reply to this email directly, view it on GitHub
https://github.com/heartexlabs/label-studio/issues/1766#issuecomment-1586309236,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARWWYGPUOTJB72X7BH3ZQGLXKYMLJANCNFSM5IL2S6OQ
.
You are receiving this because you commented.Message ID:
@.***>

--
Mohammad

I guess, the possible workaround is to change the path variable in "label_studio/core/utils/windows_sqlite_fix/init.py" file. In my case, the default directory of conda Powershell was set as "C:\Users\This_user", so that label-studio was looking for sqlite3.dll inside it. Changing variable "path_to_dll" from os.path.abspath('.') to os.path.abspath(r'anaconda3\envs\label-studio\Library\bin') inside init.py fixed it.

Having a similar issue. Currently, I have been able to partially fix it.
The workaround for the "Can't load sqlite3.dll from current directory" appears to be this (changing the string arg of path_to_dll to '.', alongside having the actual DLL file in the dir):

I guess, the possible workaround is to change the path variable in "label_studio/core/utils/windows_sqlite_fix/init.py" file. In my case, the default directory of conda Powershell was set as "C:\Users\This_user", so that label-studio was looking for sqlite3.dll inside it. Changing variable "path_to_dll" from os.path.abspath('.') to os.path.abspath(r'anaconda3\envs\label-studio\Library\bin') inside init.py fixed it.

With that said, while no longer having the sqlite3 file loading issue, I still appear to have the warning for this issue, alongside the other similar warning:

What gives? I've made sure to double-check both issues prior to running the command, and the PATH variable does include the folder.


Dynamically switching environments

Is there a way to dynamically change the environment without re-starting the language server? In vscode, one can pick another environment from the bottom status bar. I am interested in this feature to facilitate development of a monorepo with multiple sub-packages that all provide their own env.

I think that vscode-julia switch environment by send notification to LS.
I try it in nvim by
:call CocNotify('julia', 'julia/activateenvironment', '/Users/loong/.julia/environments/v1.7')

However, the LS restart but don't change environment.
Log:
  2022-03-17T21:22:02.941 INFO (pid:71776) [attach] - Request action: sendNotification [
    'julia',
    'julia/activateenvironment',
    '/Users/loong/.julia/environments/v1.7'
  ]
  2022-03-17T21:22:04.439 INFO (pid:71776) [services] - Julia Language Server state change: running => stopped
  2022-03-17T21:22:04.439 INFO (pid:71776) [services] - Julia Language Server state change: stopped => starting
  2022-03-17T21:22:04.440 INFO (pid:71776) [language-client-index] - Language server "julia" started with 71901
  2022-03-17T21:22:11.923 INFO (pid:71776) [services] - Julia Language Server state change: starting => running

:call CocNotify('julia', 'julia/activateenvironment', '/Users/loong/.julia/environments/v1.7')

will look into this.


fix: PoA web3 middleware issue for Polygon networks [APE-788]

What I did
polygon poa detection was failing for some reason
How I did it
check both first and last block
How to verify it
Checklist

[ ] Passes all linting checks (pre-commit and CI jobs)
[ ] New test cases have been added and are passing
[ ] Documentation has been updated
[ ] PR title follows Conventional Commit standard (will be automatically included in the changelog)

dup


Need Documentation!

You can find documentation here: https://hyva-themes.github.io/magento2-hyva-checkout/
It contains only the basic information as of now. More technical details are in progress. Stay tuned.

To do: add that link to the README :)

To do: document how country configuration is used (see #138 )

Todo: add env configurations in the doc (see #106)


[T2A2][T16-A1]TranVietQuang

Ready for review

Accepting this PR without a review because another of your PRs for this tutorial was reviewed in detail.


Getting - ERROR 404: PAGE NOT FOUND error on Q and A page

Hi,
We have integrated Q and A - Backstage Qeta pluging with our Backstage Instance.
Followed the installation instruction mentioned in repo.
On the UI we are can see the Q and A option in the item list but when clicked on the same we are getting Error 404: Page Not Found.
Not sure what we did wrong here. While starting the Backstage as well there is no error coming in the logs either for frontend or backend. Since we are on older version of Backstage i.e. v1.17.0 so havent configured the new backend changes suggested.
Can any one suggest what i have missed in the process which might be causing the same.
Any help will be appreciated. Thanks in advance.

You sure you have the route setup in the frontend like the docs say:
const AppRoutes = () => (
  <FlatRoutes>
    // ...
    <Route path="/qeta" element={<QetaPage title="Questions" />} />
    // ...
  </FlatRoutes>
);

Hi @drodil ,
Yeah, we have set the path on frontend like suggested and added the config on app-config.yaml as well
App.tsx
const AppRoutes = () => (

// ...
<Route path="/qeta" element={} />
// ...

);
app-config.yaml we have added qeta tag as well
qeta:
allowAnonymous: true
allowMetadataInput: false
allowGlobalEdits: false
entities:
kinds: ['Component']
max: 3
tags:
Attached is the screen shot for the error, which we are getting when we are click on the Q and A.

But you don't have qeta in the routes? And missing element as well?

Hi @drodil ,
I am sorry, looks like while copying the app.tsx content here, it was missed somehow.

As you can see in the image have added the routes and elements as well in app.tsx.
const AppRoutes = () => (

// ...
<Route path="/qeta" element={} />
// ...

);
Do we need to add the same value in const routes tag as well ? Or is it something else i am missing here ? If yes, can you please suggest , what and where.
Sorry for dragging this. and thanks for the quick replies ...

Of course you have to add it to the routes. The AppRoutes does nothing at the moment.

Hi @drodil ,
Thanks a lot for the suggestion. Able to use Q and A plugin now.
And Thanks again for creating such a wonderful plugin. Helps a lot. TA

Thanks @drodil again for the help. Closing this issue now.


Implement limited view for the player character sheet

show only About tab in the character sheet if player has limited permissions.

The current data store already has values for if you're limited at sheetData.limited there isn't any reason to add a 2nd data store


New Feature: to have ability to ignore all assert when expected value is null

Summary
to have ability to ignore all assert when expected value is null.
Example
Let's call the new method "ignoreAssertWhenExpectedIsNull"
assertThat("Hello World!").ignoreAssertWhenExpectedIsNull().isEqualTo(null); // will pass

Further more
If go further, we could have a method as ignoreAssertWhen(IgnoreType ignoreType)
Above would be
assertThat("Hello World!").ignoreAssertWhen(IgnoreType.ExpectedIsNull).isEqualTo(null); // will pass

IgnoreType could contains

ExpectedIsNull
ActualIsNull
EitherIsNull

Hmm, I fail to see how this is useful, do you have a real use case for that ?
I feel that if you can't tell whether the object under test is null or not then your unit test is not properly designed.

@joel-costigliola a use case for this is when you create parametrized tests and for some inputs you actually expect null.
In order to achieve a correct test I do an if check and invoke the required method. For example:
@Test
public void testParametrized(String input, String expected) {
    String result = someMethocCall(input);

    if (expected == null) {
        assertThat(result).isNull();
    } else {
        assertThat(result).isEqualTo(expected);
    }
}

@Sean-PAN2014 did I got your use case right?

Well, I was thinking of this case.
@Test
public void testParametrized(String input, String expected) {
    String result = someMethocCall(input);

    if (expected != null) {
        assertThat(result).isEqualTo(expected);
    }
}

When expected is null, assertThat is not needed, and actual may not be null.

Also when there is a condition (boolean or function):
@Test
public void my_test() {
    assertThat(obj1).ignoreAssertsWhen(x -> x < 0).isEqualTo(10); // using function condition
    assertThat(obj2).ignoreAssertsWhen(obj9 == 0.0).isEqualTo(10); // using boolean condition
    assertThat(obj3).ignoreAssertsWhenIsNull().isEqualTo(10); // using null condition
}

so basically conditional assertions, right ?
thinking out loud, we could passe a Predicate or a Condition, another name that could work is skipping
assertThat(obj1).skippingAssertionsWhen(x -> x < 0).isEqualTo(10);

A better alternative would be implement the opposite: onlyAssertWhen and onlyAssertWhenNotNull

// using function condition (ignore assert when obj1 is a negative numbers)
assertThat(obj1).onlyAssertsWhen(i -> i >= 0).isEqualTo(10);

// using boolean condition (ignore assert when obj2 is 0)
assertThat(obj2).onlyAssertsWhen(obj9 != 0.0).isEqualTo(10);

// using not null condition (ignore assert when obj3 is null)
assertThat(obj3).onlyAssertsWhenNotNull().isEqualTo(10);

// more complex (if obj4 is negative should be -10, if positive should be 100, ignore zero)
assertThat(obj4)
    .onlyAssertWhen(i -> i < 0).isEqualTo(-10)
    .onlyAssertWhen(i -> i > 0).isEqualTo(100);

I would just like to that I am no longer sure if this new feature is good (looking from the perspective of writing tests).
It can lead to a lot of "business" logic into the tests, make them difficult to understand and possibly make them miss edge conditions.
For the use case that I wrote it might be more "correct" to write separate test cases that will test those nulls and the special conditions.

It can be very handy on Parametrised tests.
I am using drools in which all triggered rules are registered.
For simplicity here it is a simple example:
private static Stream<Arguments> multiplyArguments() {
        return Stream.of(
                create(null, "no values", null, null, null),
                create(null, "only left value", new N(1), null, null),
                create(null, "only right value", null, new N(1), null),
                create("MULT_SIMPLE", "values", new N(2), new N(3), new N(6)),
                create("MULT_COMPLEX", "values", new N("2i"), new N(3), new N("6i"))
                create("MULT_COMPLEX", "values", new N("2i"), new N("3i"), new N(-6))
        );
    }

    @ParameterizedTest(name="[{index}] {1}")
    @MethodSource(names="multiplyArguments")
    @DisplayName("Multiply two complex numbers")
    void multiply_two_complex_numbers(String rule, String name, N left, N right, N expected) {
        assertThat(drools.process(left, right)).isEqualTo(expected);
        assertThat(drools.triggeredRules()) // Returns a list of strings
                .assertOnlyWhen(rule != null).contains(rule)
                .assertOnlyWhen(rule == null).doesNotContain("MULT_SIMPLE", "MULT_COMPLEX");
    }

I know that it can be handy on Parametrised tests.
The test really doesn't look cluttered, I am just not sure whether it is good to write such tests, tests that have logic in the assertions. However, I know that it is not the job of the assertion framework to dictate how one should write tests. I just wrote to counter my previous comment.

It's not exactly the same but we have some similar filtering logic in iterable assertions where you filter the elements to assert, ex:
assertThat(fellowshipOfTheRing).filteredOn(character -> character.getName().contains("o"))
                               .containsOnly(aragorn, frodo, legolas, boromir);

so I don't see a problem having a similar filter idea before any assertions as long as users can chosse not to use it, another blocker would be to clutter the API but if it's only one or two more methods then that's ok for me.
@tetv I will try to think of alternative names for assertOnlyWhen (it's not bad but we maybe can do better), onlyAssertingWhen ? let's think about it ... suggestions welcome.

Just some ideas (however without having a strong preference):

assertWhen
onlyWhen (the assert word is already mentioned in assertThat)
when (simple form of onlyWhen).
assuming or something similar (like assumeTrue).

assertThat(obj).onlyAssertingWhen(condition).isEqualTo(10)....
assertThat(obj).assertOnlyWhen(condition).isEqualTo(10)....
assertThat(obj).assertWhen(condition).isEqualTo(10)....
assertThat(obj).onlyWhen(condition).isEqualTo(10)....
assertThat(obj).when(condition).isEqualTo(10)....
assertThat(obj).assuming(condition).isEqualTo(10)....

I end up creating a limited assertj extension to be able to condional asserts:
assertThat(list).when(condition).containsExactly("UnitTest-018").otherwise().isEmpty();

Assertj Extension:
    protected <T> ConditionalListAssert<T> assertThat(List<T> list) {
        return new ConditionalListAssert<T>(list);
    }

    public class ConditionalListAssert<T> {
        private boolean conditionInitialised = false;
        private BooleanSupplier conditionSupplier = () -> true;
        private ListAssert<T> actual;

        private ConditionalListAssert(List<T> actual) {
            this.actual = assertThat(actual);
        }

        public ConditionalListAssert<T> when(boolean condition) {
            this.conditionSupplier = () -> condition;
            this.conditionInitialised = true;
            return this;
        }

        public ConditionalListAssert<T> when(BooleanSupplier conditionSupplier) {
            this.conditionSupplier = conditionSupplier;
            this.conditionInitialised = true;
            return this;
        }

        public ConditionalListAssert<T> unless(boolean condition) {
            this.conditionSupplier = () -> !condition;
            this.conditionInitialised = true;
            return this;
        }

        public ConditionalListAssert<T> unless(BooleanSupplier conditionSupplier) {
            this.conditionSupplier = () -> !conditionSupplier.getAsBoolean();
            this.conditionInitialised = true;
            return this;
        }

        public ConditionalListAssert<T> otherwise() {
            if(!conditionInitialised) {
                throw new UnsupportedOperationException("'otherwise()' can only be used after a 'when(...)' or 'unless(...)' conditions!");
            }
            BooleanSupplier conditionSupplier = this.conditionSupplier;
            this.conditionSupplier = () -> !conditionSupplier.getAsBoolean();
            this.conditionInitialised = false;
            return this;
        }

        public final ConditionalListAssert<T> isEmpty() {
            if(conditionSupplier.getAsBoolean()) {
                actual.isEmpty();
            }
            return this;
        }

        @SafeVarargs
        public final ConditionalListAssert<T> containsExactly(T... values) {
            if(conditionSupplier.getAsBoolean()) {
                actual.containsExactly(values);
            }
            return this;
        }

        @SafeVarargs
        public final ConditionalListAssert<T> containsAnyOf(T... values) {
            if(conditionSupplier.getAsBoolean()) {
                actual.containsAnyOf(values);
            }
            return this;
        }
    }

I am using drools and DSL, and therefore I have thousands of JUnit 5 parametrised tests just to test all the scenarios of the Domain Specification Language.
Becuase of the majority of my tests use parametrised tests, and one of the parameters represents if a certain rule should be triggered or not, I was ending up with 5 lines (if-then-else) to assert just one field.
Now I have just one assert line per field, improving drastically the readability of the tests.

Any update on this feature as this would be really useful! Better than doing lots of if statements to check if a field is null.

I'm sympathetic to @tetv approach, the main point to solve IMO is to find an elegant implementation to avoid having to write a ConditionalXAssert  for each type AssertJ provides assertions for and it needs to play nicely with soft assertions too.
I don't have the time to tackle this one but contribution are welcome :)

Hi, I would like to do some contribution if this issue is still open ☺.

Thank you!

it is @wuqihan837 but the solution to that issue still needs some exploration,  @tetv approach does not scale since we would have to duplicate all Assert classes and maintain the ConditionalxxxAssert with its counterpart.
Did you have in mind a specific implementation you wanted to try?

Instead of duplicating all classes, you could ensure that all assert classes have the conditional behaviour (when & otherwise methods), and the "skip assert logic" in all assert methods. Note that by default the conditionSupplier would return true, therefore if you don't specify "when" it will maintain the current behaviour.
To simplify it, If all the assert classes extend a base assert class, then the conditional behaviour could be added into that base assert class.
Furthermore, you may need to pass the conditional status when initialising other assert classes from an assert class.

That could work indeed, let's write a POC one or two assert classes, @wuqihan837 have you got questions on this approach?

@joel-costigliola won't it make sense to use ByteBuddy here as well and use proxies? In the proxy method you can check the condition and if it satisfies it it will call the original method, otherwise it will return itself.

@filiphr I was thinking of it, I'm not sure how well it would play with soft assertions but worth a try

@joel-costigliola what I was thinking of was to create the proxy based on the current class and pass this. That way it should play nicely with soft assertions as well, since the delegation will then be to the actual and not to super (this idea just occurred to me).

@filiphr sounds good, can you create a draft/poc to validate the approach?

@joel-costigliola I went ahead and did https://github.com/assertj/assertj-core/pull/2171. How the API will look like, doesn't really matter, the concept behind it is important. If you like the concept we can talk about the API and I can add different tests.

This is what Assumptions are for.
Assumptions.assumeThat(value).isNotNull();


Fix error. attribute can be an object or other.

Hi:
I try to use your behaviour to serialice objects, but you force attribute to be a array.
This PR fix this.
Thanks in advance

Sorry, you PR breaks down existing behavior. Empty array shouldn‘t be serialized. Please fix it.

empty arrays, also, can be serialized without problem:
if you try:
$value = [];
$result = serialize ($value);

result is: a:0:{}

For sure. But there’s an issue. Current behavior is not to serialize them, but to put NULL value instead. And what you offer is to break back compatibility which is not acceptable.

i check about the back compatibility later.
right now, i need this working assap, so i work on my own copy.
thanks in advance


How to open a .py-file from Nautilus in an open instance of Spyderlib?

From<EMAIL_ADDRESS>on 2013-06-07T07:02:09Z
What steps will reproduce the problem?

In nautilus, right click a .py file and "open with > Spyder".
Then repeat that process for another file in Nautilus. What is the expected output? What do you see instead? I expect the second file to open in the existing open instance of Spyder, but instead it opens the .py file in a new instance of Spyder.

I am using Spyder version 2.19 on an up to date Ubuntu 12.04 installation.
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=1434

From<EMAIL_ADDRESS>on 2013-06-07T07:30:22Z
I believe this feature is only available in 2.2.0+

From<EMAIL_ADDRESS>on 2013-06-07T08:39:47Z
Alright. Would you possible know how I can install the most recent stable version of Spyder on Ubuntu 12.04?

From<EMAIL_ADDRESS>on 2013-06-07T08:44:12Z
Nevermind. I just downloaded the source and did a "sudo setup.py install" which fixed the issue.
Thanks for creating Spyder! I simply love it!

From<EMAIL_ADDRESS>on 2013-06-07T08:44:50Z
Btw. This issue can be marked as solved, but I have no clue how to do that..

From ccordoba12 on 2013-06-07T09:13:52Z
Thanks for your interest in Spyder and your kind words
Status: Duplicate
Mergedinto: 466


Documentation

Hi,
I am very new to your library. I went through the documentation, but it is very hard to understand how to use the library.
For example, I manage to place an order based on this script:

 client = oandapyV20.API(access_token=api, environment="practice")
    order = {"order": {"instrument": cross,
                       "units": str(market_order_units),
                       "type": "MARKET",
                       "positionFill": "DEFAULT"}}
    r = orders.OrderCreate(accountID=account_id, data=order)
    client.request(r)

But I have no idea what my options are for "type", for instance, how do I place a limit order.  How do I know what instruments I can use. It seems the strings you are using do not follow the conventions, for example, instead of  USD/JPY, the API takes USD_JPY as input. Also, what are the strings for stocks or bonds, or it is only for FX.
I think people will highly appreciate a more user-friendly documentation if it is possible.

Hi,
The oandapyV20 library is an API wrapper for the OANDA V20 API. So, it is only to trade at OANDA. Request the instruments list and you will know what you can trade.
OANDA uses symbols as  USD_JPY.
Regarding documentation: check https://developer.oanda.com/rest-live-v20/introduction/, you will find full documentation of their V20 API.
But also https://oanda-api-v20.readthedocs.io/en/latest/oandapyV20.definitions.orders.html


[BUG] - Loading and cropping takes literally minutes to execute

Lib Version 2.3.0

Describe the bug
Nothing too complex. It sometimes simply takes a lot of time to load the image and perform the cropping. This doesn't occur every time, but it does from time to time (say 1 out of 3).
To Reproduce
Steps to reproduce the behavior:

Select an image from the gallery or take a photo with the camera.
With the image's URI, initialize the library through a fragment.
Wait for  the image to load.
Crop the image.

Expected behavior
3 and 4 are supposed to occur reasonably fast, but it takes minutes to load the image and to crop it. Sometimes, after more than 10 minutes, I simply gave up.
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):

Device: [OnePlus 6]
OS: [Android 10]

Additional context
My device, OnePlus 6, has a pretty good hardware, so I definitely do not think it's a matter of resources.

Hey @Moliholy thanks for pointing, not sure what we can do here...
Gonna ask you to help with some tests. Can you git clone the library in your local Android Studio and build the Sample app we have in the library code?
Then execute this steps:

Open the app
Select Sample Calling CropImage option (third one)
Select Outside Camera and Start(URI)
Take a picture
Accept the picture
Clip on crop, top right.

This take longer to process in your OnePlus 6 ?
Please, provide a video, so I can understand better
Maybe is something device related

Gonna do that, but in the meantime I'll share what I found out while debugging my app:
It seems when asynchronously executing a coroutine in the Default scheduler, it never manages to run a single line of code of that coroutine. I'm constantly using coroutines throughout the app, and it's the very first time I found this issue. I'll keep an eye ono this while executing the tests you mention.
Oh, and thanks a lot for the super quick reply!

My pleasure, all this image stuffs need to be done in the main-ui thread.

I just tried your tests, but there's not much to say: it works like a charm. It might be myself doing something weird in the code. I'll keep researching...

I will close this, but if you find something that we could improve or could help other people using the library, please add here =D.
Hopefully the sample code can help you some how.


How can I proof?

Not a issues at all, but I have a question.
I am currently graduating and I am doing research on how to better us KMM. And on KotlinConf I watched a talk from Salomon Brys and he mentioned KMP-NativeCoroutines as the better way for Coroutines on iOS, GREAT!!
And now I have an application that uses your KMP-NativeCoroutines, but I wanted to know if there is a way to make my research more valid. The application I made works.. But how do I know tasks are not performed on the main Thread?
So I was wondering if you could maybe help me out with a way to prove this, can you print() like a ID of a Thread or is there a way to use the debugger to show that the task is running async.
I hope you could help me with this one, would really appreciate the help!

Hi, that is cool!
You could definitely prove this with a simple check:
println("isMainThread: ${NSThread.isMainThread}")

Note: this should be either in your iOS source-set, or you'll need to use expect/actual to access NSThread.isMainThread.
KMP-NativeCoroutines uses the Dispatchers.Default by default:
https://github.com/rickclephas/KMP-NativeCoroutines/blob/2f1097b3a5c61f358a1a08a8dab332fa689e2ce9/kmp-nativecoroutines-core/src/nativeCoroutinesMain/kotlin/com/rickclephas/kmp/nativecoroutines/CoroutineScope.kt#L10
So isMainThread should return false unless you explicitly specify a CoroutineScope with the Dispatchers.Main.

It there a way to proof it in the iOS code? I have cloned your project and added print(Thread.isMainThread)
to the func loadRandomLetters but this also prints true?
func loadRandomLetters(throwException: Bool) {
    Task {
        isLoading = true
        result = nil
        do {
            print(Thread.isMainThread)
            let letters = try await asyncFunction(for: randomLettersGenerator.getRandomLetters(throwException: throwException))
            result = .success(letters)
        } catch {
            result = .failure(error)
        }
        isLoading = false
    }
}

Before I had a view model that I used in the view that had the @MainActor annotation added to it, but this it not really the way to go, and removing the annotation will give me: Publishing changes from background threads is not allowed; warnings. I added the same code that you have in your example that has a protocol with all the variables that is annotated with @MainActor.
On StackOverFLow I found this post, so Im not sure if it is even possible?

Yeah indeed. The code from the ViewModel is always run on the main thread due to the @MainActor attribute it inherits.
The Kotlin suspend function will by default run in the background. In this case the asyncFunction(for:) is the bridge between the two. It will asynchronously await the completion of the suspend function.
I hope it makes sense 😄.

Dankjewel voor je uitleg 😉! Really helpful information this, really going to help making my research more valid! Ohh and thanks for this amazing work in general! I was able to the coroutines going within a few hours om iOS because of the wonderful work you have done for the KMP and Kotlin community🫶!


Test Suite aggregation should occur in runtime

Description
As mentioned in #126. Aggregation of test suites should occur in runtime.  Test_command should only be responsible for composing our test suites.

@SimonBaeumer I've looking at this some more as I'm up for another refactor. I was looking through the code base and how to implement this. The current goal of this issue would be to move the TestSuite aggregation into runtime. We have defined in the past that the computation of results and other measurements is the responsibility of runtime, so it would make sense to move the convergence of runtime.Result's into runtime.
In order to do this we will need to move convergeResults into runtime. It's not possible to just move app.Execute into runtime as we will be creating a circular dependency between runtime and suite.
Currently my thoughts/prototypes to accomplish aggregation in runtime.

Performing something like this in app.Execute

// iterate and add all runtimes
myRuntimes.AddRuntime(out.GetEventHandler(), tests, s.Nodes...)
// after iterating
result := myRuntimes.Start()

Meaning that we would simply need to support a higher level runtime struct composed of a []runtime.Runtime. I'm not too sure about going down this route as I don't really see the benefit.

Create a higher level struct in runtime. Something like:

type RuntimeMeta struct {
    Nodes []runtime.Node
    Tests []runtime.TestCase
}

This could then be passed to runtime which would then be responsible for configuring every single runtime.Runtime.

Remove the runtime dependency in suite and change the suite.Suite struct too:

type Suite struct {
	TestCases []suite.TestCase
	Config    suite.GlobalTestConfig
	Nodes     []suite.Node
}

This would allow for a slice of []suite.Suite to be passed to runtime, this would then allow runtime to compose it's runtimes and aggregate them. We could then move more of the functionality in app into runtime. However, I think would be nice to allow app  to continue performing I/O and generating the Suites. At most we could be passing []bytes too runtime. It would then be possible to begin executing each suite in a channel without having to. pass said channel across packages (This isn't really in the scope of this, just a thought).
What are your thoughts on this? I personally like number 3, but this would require moving some of the runtime structs into suite which on the surface I don't see a problem with.

One thing to note moving removing the runtime dependency in suite would then require the majority of the structs in runtime to be moved to suite.


Check if the output file exists before writing

In convert._write_markdown should check, if the output markdown file already exists. Unique naming scheme?

Fixed in https://github.com/janikarh/enex2md/commit/9d49b332ec4d639960a1668ca55741a25ce0a74d


Example for call

Creates an Appliance object that can be either on or off.
Each time the object is called as a function, it's state switches and a message is returned.
Calling just the object will go through the __repr__ dunder

I think a better example for call is mimicking functools.partial. People probably wonder how that works as well.

The functools.partial idea sounds better than this dummy example. I'm closing this PR so __call__  can be returned to  the TO DO list on the tracking spreadsheet.


bupstash: 0.6.4 -> 0.7.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/andrewchambers/bupstash/releases.
meta.description for bupstash is: "Easy and efficient encrypted backups"
meta.homepage for bupstash is: "https://bupstash.io"
meta.changelog for bupstash is: ""
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 0.7.0 with grep in /nix/store/3kklfbmhw0qhsznmhhrpmwiipq0xgp4w-bupstash-0.7.0

directory tree listing: https://gist.github.com/bdb5b15856a91fd25880ccc93f07cbd2

du listing: https://gist.github.com/406fc32ec0408a7e35ec657f40d323dc

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
bupstash

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/3kklfbmhw0qhsznmhhrpmwiipq0xgp4w-bupstash-0.7.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A bupstash https://github.com/r-ryantm/nixpkgs/archive/6d362be60812407c6667f977c443b7d42e621a2b.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/3kklfbmhw0qhsznmhhrpmwiipq0xgp4w-bupstash-0.7.0
ls -la /nix/store/3kklfbmhw0qhsznmhhrpmwiipq0xgp4w-bupstash-0.7.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

bupstash

Maintainer pings
cc @andrewchambers for testing.

Result of nixpkgs-review pr 115077 run on x86_64-linux 1

1 package built:

bupstash

lgtm


Slate template broken

Hey,
I just ran into an issue with the current Slate version.
The template for Slate generates some blocks like this:
### Request

#### Endpoint
```
GET /v1/app_configs
Authorization: Token token=qyKRKqDwtFs7QgUNjNgo
Accept: application/json
```

or
### Response

```
Content-Type: application/json; charset=utf-8
200 OK
```

The problem is, no lang is specified for these blocks, Slate tries to interpret them but throws this:
NoMethodError at /
undefined method `split' for nil:NilClass

Ruby	/home/xxx/xx/lib/multilang.rb: in block_code, line 3
Web	GET localhost/

When I edit my Markdown file and replace ``` by ```plaintext it stops crashing.

I'm experiencing the same issue. I'm not sure how to stop it from crashing though

Happy to accept a PR if you can fix the template or whatever else is wrong with it. I don't use Slate so I can't help much.

@sweinertjr You can simply edit the template to add plaintext next to the declaration of code block.
E.g:
### Response

```
Content-Type: application/json; charset=utf-8
200 OK
```

Becomes:
### Response

```plaintext
Content-Type: application/json; charset=utf-8
200 OK
```

Fixed with PR #346


How to use it?

Hi! Sorry for the dumb question but... How to load the program? Do I need a compiler or a command line or something else?

Hi! Yes, you need a Visual Studio to open and compile the project. I will create release with downloadable .exe today if i find some time

Here it is
https://github.com/Magiczne/JD-XI-Editor/releases/tag/v0.1.1

As well as v0.1.2 which includes updated for all used libraries


Add a copy of the code cell for part 2 of Activity 1

I made an absolute mess of my notebook since I didn't make a copy of the original cell before modifying things.
I have empathy for former me and future students so I added a copy of the cell in part 2.

this is a great idea. I do this all the time with present me vs. past and future me. If we had more time i would say we should make a directive and do this for all the code blocks (have an expandable duplicate that can be edited without wrecking the existing cell)

awesome!! thank you for this! let's merge


GROOVY-8794: Add groovy-yaml subproject to support parsing and building yaml

+1 but agree some extra doco would be nice.
I'd suggest a yaml equivalent of "json-userguide.adoc".
I'd just move YamlParserTest and YamlBuilderTest into src/spec and just reference those.
Let me know if you need any help.

@paulk-asert  It would be great if you could help :-)

Also, I'd be inclined to make it an optional module in upload.gradle.

@remkop Thanks for your reviewing 😉

@jwagenleitner I've fixed the issues you found. Thanks!

@paulk-asert  I've refined the docs and moved dependencies to groovy-yaml subproject

This is a reference implementation, we can improve it when we have enough time. In addition, the YamlBuilder will be seldom used in projects, so it should be OK to include it IMO.


KYLIN-3562, remove the logic that updating the user when user logged in.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Codecov Report

Merging #254 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #254      +/-   ##
============================================
- Coverage     21.11%   21.11%   -0.01%
  Complexity     4404     4404
============================================
  Files          1087     1087
  Lines         69878    69877       -1
  Branches      10103    10103
============================================
- Hits          14756    14753       -3
- Misses        53723    53724       +1
- Partials       1399     1400       +1

Impacted Files
Coverage Δ
Complexity Δ

...lin/rest/security/KylinAuthenticationProvider.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

...rg/apache/kylin/cube/inmemcubing/MemDiskStore.java
69.3% <0%> (-0.92%)
7% <0%> (ø)

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 34fd447...e6c73ec. Read the comment docs.

Pull Request Test Coverage Report for Build 3654

0 of 0   changed or added relevant lines in 0 files are covered.
5 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.003%) to 23.119%

Files with Coverage Reduction
New Missed Lines
%

core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/MemDiskStore.java
5
77.81%

Totals

Change from base Build 3650:
-0.003%

Covered Lines:
16155

Relevant Lines:
69877

💛  - Coveralls

Hi jiatao, as the root cause is KYLIN-3499, this change is not needed I think. Let's see how it goes on. Thank you.


clean up codecov

Codecov Report
Patch coverage has no change and project coverage change: +0.99 :tada:

Comparison is base (2349ebf) 77.70% compared to head (19b1805) 78.70%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #322      +/-   ##
==========================================
+ Coverage   77.70%   78.70%   +0.99%
==========================================
  Files          26       26
  Lines        2032     1991      -41
==========================================
- Hits         1579     1567      -12
+ Misses        453      424      -29

Flag
Coverage Δ

unittests
78.70% <ø> (+0.99%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 13 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


View helper

I’m not sure how useful this would actually be but I thought it might be worth surfacing for potential addition to the library. I created a View Helper library a while ago, which allows you to turn arbitrary HTML into a view using one of two APIs:
view`... html source ....`(initialValue, rootNode => {
  // set up event listeners etc
  // write to `rootNode.value` to dispatch an `input` event
})

// or

view(createDOMNodeSomehow(), initialValue, rootNode => { ... })

This is kind of similar to Input() (except that it lets you render an HTML node) and to bind() (except that it doesn’t synchronize to another input; you could totally pass this input to bind though).

I don’t think it’s appropriate to dispatch an input event whenever the value is assigned — native inputs don’t behave that way, so neither do Observable Inputs. If that’s gone, then, not sure what’s left…
Here’s one take on your increment button:
viewof f = Object.assign(html`<form>
  <button type=button onclick=${event => {
    const {form} = event.currentTarget;
    ++form.value;
    form.dispatchEvent(new Event("input"));
  }}>Increment</button>
</form>`, {value: 0})

The Object.assign is awkward; Hypertext Literal doesn’t provide a way to set the value property on the form element (it only sets attributes).
With the set helper #52, that could be written as:
viewof f = Object.assign(html`<form>
  <button type=button onclick=${event => {
    const {form} = event.currentTarget;
    set(form, form.value + 1);
  }}>Increment</button>
</form>`, {value: 0})

If set returned the passed-in input, then you could do something like
viewof f = set(html`<form>
  <button type=button onclick=${event => {
    const {form} = event.currentTarget;
    set(form, form.value + 1);
  }}>Increment</button>
</form>`, 0)

If set could take an optional reducer, then you could do something like:
viewof f = set(html`<form>
  <button type=button onclick=${event => set(event.currentTarget.form, x => x + 1)}>Increment</button>
</form>`, 0)

Maybe that’s enough?

Maybe! My rationale for dispatching an input event whenever you change the value is that for the narrow case of updating the value of a DOM element being used as a view, it never makes sense for viewof foo.value and foo to produce different results (assuming they both execute at the same time), and the input event is what’s needed to sync them up.
Perhaps something like this?
viewof f = view`... html source ....`(initialValue, (rootNode, setValue) => {
  // set up event listeners etc
  // call `setValue(newValue)` to update `rootNode.value` and dispatch an `input` event
})

Or, as an additional overload to the set function:
viewof f = set(setValue => html`<form>
  <button type=button onclick=${event => setValue(x => x + 1)}>Increment</button>
</form>`, 0)

Here, setValue(foo) would call set(viewof f, foo).

…but perhaps I’m optimizing too much for magical/compact code rather than clear and understandable code.

My rationale for dispatching an input event whenever you change the value is that for the narrow case of updating the value of a DOM element being used as a view, it never makes sense for viewof foo.value and foo to produce different results

I also have wondered for the same reason about the right default: dispatching an input event or not (in https://observablehq.com/@severo/inputs-setter I even dedicated a Boolean option dispatch to choose the behavior).

Folding this issue in #52.


Select server only showed for few seconds on launch

I'm working with a launch.json that has more than one configuration (e.g. one for local dev and one for central test server).
When I use F5 first time, after opening VS Code, the dropdown appears to select the server configuration. However, that dropdown disappears disappears in a second, before I can choose the server. Then only the package is created but not published.
The only solution is to temporarily remove servers configurations from the launch.json. Then the publish process works. After the first publish, the status bar shows the configuration in use. Then it is possible to add the other server configurations and select the server by clicking on the server in the status bar. The dropdown appears but now waiting for selection.

Another observation: the app file is not created when you click on 'Select and start debug configuration' in the status bar.
So... with multiple configurations in the launch.json, the behavior is:

F5 builds the app file, shows the select server dropdown for just a few seconds, no debug session is started. The debug console shows status lines of previous successful debug session.
The 'Select and start debug' from the status bar does not build the app, let you select the server, publishes the (yet outdated) app and starts a debugging session on the selected server.

Thanks for reporting, we will look into it.

Have same behavior. It is hard to switch between the configurations (e.g. I have one with recreate and one with synchronize). When using command "AL: Publish" the list is displayed shortly and after that the last config is used.

I can no longer reproduce the dissapearing dropdown on VS Code 1.22.1 and AL Language 0.15.
Can you confirm it works for you as well?


Get the previewUrl correctly

:star: PR built and available in a preview environment carlossg-croc-hunter-jenkinsx-pr-17 here

:star: PR built and available in a preview environment carlossg-croc-hunter-jenkinsx-pr-17 here


Code Coverage

On ant deploy to our Sandbox we are receiving the following errors on Code Coverage. Are there any workaround?
Code Coverage Failures:

Class: ApplicationRegistration -- Test coverage of selected Apex Class is 65.979%, at least 75% test coverage is required
Class: INT_InteractionProcessor -- Test coverage of selected Apex Class is 74.539%, at least 75% test coverage is required
Class: ApplicationAdminView -- Test coverage of selected Apex Class is 74.312%, at least 75% test coverage is required
*********** DEPLOYMENT FAILED ***********

@PacoPDS This has been fixed in our development environment. The next push (next week) will include a lot more coverage.

Code coverage is now above 75% for all classes. The INT_InteractionProcessor class can't be fully covered in non-HEDA orgs because it first tests for HEDA before executing that part of the code.


dumping - but maintaining relationships

Hi,
Currently, if I run a dump of a specific document id, just the items surrounding that id are dumped and I have to check and specify another dump to include any related items' ids.
Is there a way to dump a document, or number of documents, and preserve the relationships of those documents to other documents or media?
Thanks,
amy

As an update, the dump command can now filter by layer. Another solution is to use filtered replication as documented by the CouchDB maintainers.


Expand on why "no whitespaces in macros"

http://stackoverflow.com/questions/35495279/

Guidelines should be as terse as possible. This is worth to be clarified, but not in guideliens bu in Wiki


hydra.errors.MissingConfigException: Primary config module 'sam2' not found.

I encountered an error when finetuning. The errors says:

And below is my file structure:

Clearly there is an init file and configure file. Can you help me with this issue? Thank you a lot!

The same error, have you solved this problem? Thank you!

+1