Stubby can't be built anymore since they now use cmake

As of getdns 1.6.0 they seemed to have switched to using cmake instead of autoconf/libtool
Might not be optimal but this got mine going:
diff --git a/stubby/Dockerfile b/stubby/Dockerfile
index a63337b..9d51e0b 100644
--- a/stubby/Dockerfile
+++ b/stubby/Dockerfile
@@ -43,7 +43,7 @@ WORKDIR /tmp/src
 COPY --from=builder /opt/openssl /opt/openssl

 RUN set -e -x && \
-    build_deps="autoconf build-essential dh-autoreconf git libssl-dev libtool-bin libyaml-dev make m4" && \
+    build_deps="build-essential git libssl-dev libtool-bin libyaml-dev make m4 cmake libev-dev libevent-dev libuv1-dev check" && \
     debian_frontend=noninteractive apt-get update && apt-get install -y --no-install-recommends \
       $build_deps \
       ca-certificates \
@@ -57,11 +57,9 @@ RUN set -e -x && \
     git clone https://github.com/getdnsapi/getdns.git --branch develop && \
     cd getdns && \
     git submodule update --init && \
-    libtoolize -ci && \
-    autoreconf -fi && \
     mkdir build && \
     cd build && \
-    ../configure --prefix=/opt/stubby --without-libidn --without-libidn2 --enable-stub-only --with-ssl=/opt/openssl --with-stubby && \
+    cmake -DCMAKE_INSTALL_PREFIX=/opt/stubby -DUSE_LIBIDN2=OFF -DENABLE_STUB_ONLY=ON -DOPENSSL_INCLUDE_DIR=/opt/openssl -DBUILD_STUBBY=ON .. && \
     make && \
     make install && \
     groupadd -r stubby && \
@@ -83,4 +81,4 @@ COPY stubby.yml /opt/stubby/etc/stubby/stubby.yml

 HEALTHCHECK --interval=5s --timeout=3s --start-period=5s CMD drill @<IP_ADDRESS> -p 8053 cloudflare.com || exit 1

-CMD ["/opt/stubby/bin/stubby"]
+CMD ["/opt/stubby/bin/stubby", "-C", "etc/stubby/stubby.yml"]

Thanks for sharing. TI appreciate you sharing a possible fix.
I've been needing to re-factor how Stubby is built since they made several updates since I first created this. https://github.com/MatthewVance/stubby-docker/issues/4
To be honest, I've neglected this project lately. Unbound has improved some of the DNS over TLS features in more recent releases so I've went back to relying solely on it. I need to dig back into Stubby to re-compare the feature sets.

If they've managed to close the feature gap it would certainly make it simpler to just run one server. Let me know if you get around to comparing the features. Thanks in advance

It looks like the feature gaps remain. Unbound plans to release connection reuse in the coming months per https://github.com/NLnetLabs/unbound/issues/47. I didn't have any success confirming 'Strict' mode support or padding queries to hide query size.
Unbound 1.9.0 did include some performance improvements. Namely, TLS session resumption support and TCP fast open support.

Actually, after re-reading the change log, TCP fast open was released before 1.9.0.

I'm looking into re-factoring to use cmake. I have some testing to do, but think I have the commands worked out:
    git clone https://github.com/getdnsapi/getdns.git && \
    cd getdns && \
    git checkout "${VERSION_GETDNS}" && \
    git submodule update --init && \
    mkdir build && \
    cd build && \
    cmake \
        -DENABLE_STUB_ONLY=ON \
        -DCMAKE_INSTALL_PREFIX=/opt/stubby \
        -DOPENSSL_INCLUDE_DIR:PATH=/opt/openssl \
        -DUSE_LIBIDN2:BOOL=OFF \
        -DBUILD_LIBEV=OFF \
        -DBUILD_LIBEVENT2=OFF \
        -DBUILD_LIBUV=OFF ..&& \
    cmake .. && \
    make && \
    make install

It also requires cmake and check be installed (put in ${build_deps}).

Closed by https://github.com/MatthewVance/stubby-docker/commit/4a06090ac5500d755387722e470f40ad6a59d289


fix: add hba jurisdiction data transfers

This PR addresses #715

[x] Addresses the issue in full
[ ] Addresses only certain aspects of the issue

Description
Initial script for moving over data from SMC. This adds two scripts, one for copying over the base jurisdiction data such as AMI charts and preferences and the other is for copying over listings/units.
Notes:

Images and lottery results will be manually ported over by product. That way the images will be moved to s3.
Requested approver field is not going to get ported over since this doesn't port over the users at this point. Talked with product and that is ok with them.

How Can This Be Tested/Reviewed?
This is how I've been testing it:

Do a reseed locally
Start up the app locally and go to the swagger api http://localhost:3100/api.
Login via the api to the admin account http://localhost:3100/api#/auth/login.
Go to Heroku and get the DB credentials for the HBA staging environment https://data.heroku.com/datastores/fd968c98-f208-4066-b8cf-7d3a6bf8ff03#administration
Use the credentials from above to run the first script http://localhost:3100/api#/scriptRunner/transferJurisdictionData. I've been using "San Mateo" as the jurisdiction but any of the three jurisdictions would work
Verify that AMI charts and multiselect questions are in the database. You can also verify that they show up in the partner site (This will only work for San Mateo)
Run the script for http://localhost:3100/api#/scriptRunner/transferJurisdictionListingsData using the same db credentials and jurisdiction used in the previous script
Verify that the new Listings look identical in partners between HBA staging vs local partners

Author Checklist:

[ ] Added QA notes to the issue with applicable URLs
[x] Reviewed in a desktop view
[x] Reviewed in a mobile view
[x] Reviewed considering accessibility
[x] Added tests covering the changes
[ ] Made corresponding changes to the documentation
[ ] Ran yarn generate:client and/or created a migration when required

Review Process:

Read and understand the issue
Ensure the author has added QA notes
Review the code itself from a style point of view
Pull the changes down locally and test that the acceptance criteria is met
Either (1) explicitly ask a clarifying question, (2) request changes, or (3) approve the PR, even if there are very small remaining changes, if you don't need to re-review after the updates

@ludtkemorgan Do you mind filling out the PR template?

Has this already been run on staging?

Has this already been run on staging?

No, this needs to be merged before we run it on staging

@YazeedLoonat this is ready to re-review

This LGTM! The only thing I noticed comparing the public site listings is that for the Test Listing SMC, the apply online button doesn't appear on the transferred version


Bond userEmail with userId on Dust managed apps in createConversation

Description

We are preparing to test some dust-managed apps, in which users can create conversations from the public API
To be able to track MAU and bill accordingly, we need to bond the userId of these messages like we do with slack
So we use the email in the message context to find the corresponding user

Risk
Not much
Deploy Plan

That's just being used to save userId in the message when creating the conversation to track MAU from external apps managed by Dust (like we currently do with Slack).
Previous version in with the code the private conversation API did not use any authenticators but only added the userId when creating the message, so I'd say that was better.
If vaults accesses based on conversation participants (userId in messages from that conversation) then yes, that's an issue indeed. We then have 3 solutions:

Add a salt to dust-managed external apps (zendesk marketplace, jira marketplace, etc) and only allow this to happen when the salt is checked
Abort all this and rework a bit MAU calculation in stripe to invoice active users also based on userEmail in messages and not just userId
Let it go for now, check the usage of external apps using metabase and act accordingly if usage rises and billing becomes an issue

Adding @thib-martin to the discussion, might have an insight

Access to vaults is based on the Authenticator object. Here you crearte a new One based on a user controled string which is not acceptable.

Access to vaults is based on the Authenticator object. Here you crearte a new One based on a user controled string which is not acceptable.

That's what I figured - reverted the last 2 commits.
Imho the best way is to keep that check in the conversations private endpoint, because if I want to move it to the public endpoint, I need to modify postUserMessage() to add a userId argument and that seems quite overkill.
WDYT?

You likely want to dry it and use it in editUserMessage as well?
Done

LGTM modulo the last comment 🙏

Done and merging


Support EventSource polyfill last event ID setting

Support EventSource polyfills that send the last event ID in the URL instead of in the HTTP request headers.

Implemented in #23.


Make transparent window configurable

Electron and frame less/transparent windows seems the have several issues on Windows and Linux.
Some issues that are currently related to this:

Windows Snap not working #1128
Hyper shows blank screen on Windows (7) when Aero is disabled #1223
Background turns transparent on Windows on full reload #1026 (Seems to be an Electron issue)
Several limitations as documented by Electron
@paulcbetts (Electron Master) has transparency explicitly disabled for Windows and Linux in this PR #1307

Since Hyper turns transparency always on regardless of the platform. I agree with Paul that transparency should be disabled for platforms where it causes issues like mentioned here above. However as an advanced user I would like to have control over this, as I like to have a transparent terminal and can live with the sacrifices (Windows Snap) that I have to make on Windows 10.
When enabling transparency is a configurable option in hyper.js, there should be a description with the trade offs that users have to make. Many users (including myself) have a habit of forgetting about trade offs like these and what causes the issues they experience, for example Windows Snap that isn't working. The instant reaction of most users is to log an issue on the project, which leads to unnecessary work for the maintainers.
I would propose that transparency is an option that could be enabled via a (core) plugin. This raises the bar for users, but this is reasonable regarding the trade offs that they have to face. The readme of the plugin can provide users with the necessary info.

I would propose that transparency is an option that could be enabled via a (core) plugin.

afaik plugins are loaded in the renderer process so you're already too late by the time it gets loaded. Just turn it off tbh, it's not with the significant headaches.

My 2 cents: just make it a core setting enableWindowTransparancy defaulted to false (in hyper.js) with a good comment above it (warning etc)
Personally, I would regret that I will loose the nice transparent effect of Hyper. It just works on my Windows machine ™ (although with some issues, but those are fixable bugs imo)

I talked to @matheuss about this before and we discussed that making it configurable is the best option. So yes, i can see it in the future. PRs are always welcome.

I talked to @matheuss about this before and we discussed that making it configurable is the best option. So yes, i can see it in the future. PRs are always welcome.

That makes no sense, why would you allow people to opt-into incorrect and broken behavior

AFAIK this will need to change in Electron in order to truly enable transparency on platforms not supporting it currently.
Is there any discussion about getting such a change landed in Electron upstream?


Added some papers based on 3D-GS

Added three new papers based on 3DGS focused on dynamic human avatars.

Thanks for your contribution.
From my perspective, inverse rendering for human avatars is a down-stream application. At this time, I want to keep the repo simple and neat, focusing on general inverse rendering.
But anyway, thanks for your contribution and effort!!


Cloning new black-parrot repository

Hi, not entirely sure what's going wrong here or if I'm missing some step. So I recently used docker on Mac run black-parrot and got simulations working fine. However, it seemed like it wasn't up to date, so I exited out of the docker build, removed the black-parrot directory from my home machine, and then reran all the docker steps. Could there be something I'm missing?
(base) Chases-Air:~ chasewhyte$ git clone https://github.com/black-parrot/black-parrot.git
Cloning into 'black-parrot'...
remote: Enumerating objects: 63, done.
remote: Counting objects: 100% (63/63), done.
remote: Compressing objects: 100% (49/49), done.
remote: Total 31274 (delta 20), reused 27 (delta 11), pack-reused 31211
Receiving objects: 100% (31274/31274), 22.70 MiB | 9.24 MiB/s, done.
Resolving deltas: 100% (22224/22224), done.
(base) Chases-Air:~ chasewhyte$ cd black-parrot
(base) Chases-Air:black-parrot chasewhyte$ docker-compose build --build-arg USER_ID=$(id -u) --build-arg GROUP_ID=$(id -g) bp
Building bp
Step 1/12 : FROM ubuntu:18.04
---> c3c304cb4f22
Step 2/12 : RUN apt-get update
---> Using cache
---> 825e64dbf977
Step 3/12 : ENV DEBIAN_FRONTEND=noninteractive
---> Using cache
---> 6d6c55457f15
Step 4/12 : RUN apt-get install -y apt-utils tzdata git vim gettext-base         bash autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk         build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev         wget byacc device-tree-compiler python gtkwave python-yaml pkg-config swig python3-dev
---> Using cache
---> 0c167a6289da
Step 5/12 : RUN apt-get clean
---> Using cache
---> 5a33364a9360
Step 6/12 : ARG USER_ID
---> Using cache
---> 2eb351773e18
Step 7/12 : ARG GROUP_ID
---> Using cache
---> 061215bbfd6c
Step 8/12 : RUN getent group $GROUP_ID || groupadd --gid $GROUP_ID build
---> Using cache
---> d2f03efa4e6c
Step 9/12 : RUN useradd --no-log-init --uid $USER_ID --gid $GROUP_ID --shell /bin/bash --create-home build
---> Using cache
---> d9205b2f47fb
Step 10/12 : LABEL maintainer="Mike Patnode<EMAIL_ADDRESS>---> Using cache
---> 6459f120fcdc
Step 11/12 : WORKDIR /home/build/black-parrot
---> Using cache
---> ce2f81612edc
Step 12/12 : ENTRYPOINT ["sleep", "inf"]
---> Using cache
---> 0c51723f440e
Successfully built 0c51723f440e
Successfully tagged black-parrot_bp:latest
(base) Chases-Air:black-parrot chasewhyte$ docker-compose up -d
black-parrot_bp_1 is up-to-date
(base) Chases-Air:black-parrot chasewhyte$ docker-compose exec bp su - build
build@89f89b477c90:~$ ls
ls: cannot access 'black-parrot': No such file or directory
black-parrot
build@89f89b477c90:~$ cd black-parrot
cd: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
build@89f89b477c90:~/black-parrot$ make prep_lite
make: getcwd: No such file or directory

Looks like the problem was that I had to stop and delete the docker container and images too relating to the previous build


Sweden

http://www.opengov.se/sidor/remisser/

Possible source of zip data: http://postnummeruppror.nu/
Somewhat similar to the link above.

Closing as stale - Feel free to open a new issue if someone is actively going after these.


Can not sign in leetcode-cn.com

Environment

os: Win10

when I find the plugin leetcode in vscode, i download it and find can't sigin in. I tried login with github, accounts and cookies but it dose not work.
Then I find the issue#478 and download the leetcode-cli version 2.7.0 and i tried login with github, accounts and cookies but still doesn't work.
when I login with github.  it shows
[ERROR] Login failed. Please make sure the credential is correct.

and when I login with leetcode account.  it shows
[ERROR] invalid password?

and I also tried login with cookie, it show something different.
[WARN] Failed to retrieve user favorites: [object Object]
C:\Users\XXX\AppData\Roaming\npm\node_modules\vsc-leetcode-cli\lib\plugins\leetcode.js:525
        user.paid = _user.isCurrentUserPremium;
                          ^

TypeError: Cannot read property 'isCurrentUserPremium' of null
    at C:\Users\XXX\AppData\Roaming\npm\node_modules\vsc-leetcode-cli\lib\plugins\leetcode.js:525:27
    at Request._callback (C:\Users\XXX\AppData\Roaming\npm\node_modules\vsc-leetcode-cli\lib\plugins\leetcode.js:431:12)
    at Request.self.callback (C:\Users\XXX\AppData\Roaming\npm\node_modules\vsc-leetcode-cli\node_modules\request\request.js:185:22)
    at Request.emit (events.js:315:20)
    at Request.<anonymous> (C:\Users\XXX\AppData\Roaming\npm\node_modules\vsc-leetcode-cli\node_modules\request\request.js:1161:10)
    at Request.emit (events.js:315:20)
    at IncomingMessage.<anonymous> (C:\Users\XXX\AppData\Roaming\npm\node_modules\vsc-leetcode-cli\node_modules\request\request.js:1083:12)
    at Object.onceWrapper (events.js:421:28)
    at IncomingMessage.emit (events.js:327:22)
    at endReadableNT (_stream_readable.js:1221:12)

actually, i hidden account information and use the XXX instead。
So, how can i  solve this problem, thank you very much.

Did you link your account to github？

may i asked how to link to github?

may i asked how to link to github?

Login leetcode, in this url https://leetcode.com/profile/account/
You can click the arrow button to login GitHub, then try login in vscode-leetcode again.

actually i already link the leetcode to github.
But i use the leetcode-cn.com, can it still work?

actually i already link the leetcode to github.
But i use the leetcode-cn.com, can it still work?

@Aaronself  for leetcode.cn I think the origin accout can login.

please make sure your node version is more than 10+
please make sure you have switched to leetcode.cn endpoint

node version 12.18.2
may I ask how to change to leetcode.cn

ok, thank you. I find it is strange that the UI is different from yesterday. Yesterday i can only find the button sign in. And today i find other buttons and sign in successfully. thank you very much.


feat(migration): empty OnDestroy method removing

PR Type
What kind of change does this PR introduce?
[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?
Issue Number: 95
What is the new behavior?
Ability to remove OnDestroy methods in migration script.
Does this PR introduce a breaking change?
[ ] Yes
[x] No

Btw just thinking aloud maybe we could remove all that stuff via TS compiler API? Just parse the code into AST, find the MethodDeclaration -> Identifier -> text -> ngOnDestroy, check if its statements array is empty and remove it from AST. No tricks with dozens of regexes.

@arturovt Agree the AST is better. At that time, this was the quickest solution. @FFKL if you want to convert the script to use tsquery, feel free to do it. It'll be a great practice if you're not familiar with AST.

@NetanelBasal Ok, I want to work with AST. I don't have practice with it. Only theoretical knowledge;) Can I add new version in this PR or create new? And what about testing. I still don't understand - should I split script into separate files and test it or something different? Maybe build it? Or use NODE_ENV?

We have Jest installed as a dev-related package, you can use the snapshot-testing approach.

@FFKL

Create a function that takes a string and returns it with the changes.
Test this function with Jest.
Use it in the script. Pass the file content to it.

You can use the ts-morph, it has a brilliant API and provides an easy way to manipulate the tree. I'm using it at work for writing custom Prettier plugins and TSLint rules.

Yes, this is a good library. Also, have a look at https://github.com/phenomnomnominal/tsquery

@arturovt @NetanelBasal thanks for explanations. I'll rework the script :+1:

@arturovt @NetanelBasal please, look at new version

@FFKL amazing work!

I hope that you learned and enjoyed this task.

We can make it easier to consume. Can you add a bin to package.json that'll run the script, please?
npx @ngneat/until-destroy will run it.

You also need to compile it to js, and add #!/usr/bin/env node at the top of the file.

You also need to compile it to js, and add #!/usr/bin/env node at the top of the file.
run.js should be run.ts?

We can make it easier to consume. Can you add a bin to package.json that'll run the script, please?

Don't forget to add ts-morph to dependences, and update the docs.
glob too? Now glob works because one of dev dependencies has it as dependency.

Yes, and yes.

Also, check the CI - https://github.com/ngneat/until-destroy/pull/104/checks?check_run_id=793048607

@NetanelBasal Please check the new changes. I'm not sure I did everything right. If there are errors - point them out and I'll fix them.


add: Microsoft Outlook Web Access

Note, this is the "old" Microsoft OWA logo, the Office 360 suite is on it's way and you might want to refuse this PR in favor the next.

OK, let's wait for the new one.

Got it :)


add lora target modules for stablelm models

i was able to load a model with get_peft_model method that takes LoraConfig object which has ["q_proj", "v_proj"] for its target_modules parameter.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Gizmo subscene visibility option

Accidentally closed previous PR renaming branch, once again opening PR referencing issue #8220 (Previous PR) but adjusted the implementation to a checkbox next to the gizmo option in view, allowing gizmos subscenes to be hidden or shown on demand.

2D implementation:

Bugsquad edit, closes: https://github.com/godotengine/godot-proposals/issues/8220 Closes #14462

Please name your PR to something more descriptive to help people understand what it is about

Functionality should be restored, something went wrong when changing the menu options initially


Transfer gossiping messages from background tasks straight to event listeners

At the moment, each notification received from the network sends a message on a channel whose destination is the network worker. The network worker then reads from that channel and sends out events to various listeners grabbed via NetworkService::event_stream.
The problem is that this channel is already quite overloaded, and we should ideally try to reduce the traffic on this point of contention.
Instead, we should somehow make background tasks directly send notifications to the various listeners.

One additional requirement in lights of https://github.com/paritytech/polkadot/issues/1348 is that "subsystems" (i.e. pieces of code that grab events from event_stream) need to be able to not immediately pull messages from nodes in order to apply back-pressure and force them to send data at a slower rate.

need to be able to not immediately pull messages from nodes in order to apply back-pressure and force them to send data at a slower rate.

To clarify, this is a requirement of part (2) in that ticket, specifically the part where we want to control the incoming bandwidth.

Issue still relevant and important.


Parameterized specifications

Context and Problem Statement
In some cases, it would be beneficial to parameterize the code generation.
Use Cases

UC1 Enable different feature sets (i.e. remove parts of sessions or messages)
UC2 Reduce memory requirements for messages (i.e. restrict possible message length)

Considered Options
O1 Explicit annotations
Specification
These use cases could be realized by making a specification parameterizable. The parameters could be defined in a generic part of a package:
generic
   P : Boolean;
   Q : range 1 .. 42;
package Test is

The parameter type can be a scalar type: A built-in type like Boolean or an anonymous range type.
UC1 could be realized by marking all transitions, states and functions related to a feature with an aspect.
generic
   Feature_X : Boolean;
package Test is
  generic
      with function F1 return Boolean;
      with function F2 return Boolean with Required => Feature_X;
   session Session is

      state S1
      is
      begin
         Transport'Read (Request);
      transition
         goto S2
            with Required => Feature_X
            if Request'Valid and Request.Code = Foo
         goto S3
            if Request'Valid and Request.Code = Bar
         goto Error_Invalid_Request
      end S1;

      state S2 with
         Required => Feature_X
      is

Alternatively, a condition depending on a parameter could be added to all transitions related to a feature. In that case, conditions which get statically false due to a parameter value must be ignored during code generation (and must not be detected as invalid during model verification). It would be necessary, to detect which states and functions only get unreachable because of a parameter (Is that even possible in the general case?) or related states and functions would need to be marked explicitly again.
More complex verification of the state machine (e.g., model checking) would likely need to be performed for each possible variant.
UC2 could be realized by adding a field condition depending on a parameter:
generic
   Max_Length : range 1 .. 2**16 - 1;
package Test is
   type Length is mod 2 ** 16;

   type Message is
      message
         Length : Length;
         Value  : Opaque
            with Size => Length * 8
            if Length <= Max_Length;
      end message;

Code Generation
The concrete values for the parameters could be defined in the integration file, i.e., only one specific variant is generated.
+
− Using an aspect to define that some entity does not exist is unusual (naming the aspect Required is probably also not optimal)
− Annotating transitions seem to be redundant (annotating states should be sufficient)
O2 Explicit annotation of transitions
Implicit removal of states or functions.
Specification
generic
   Feature_X : Boolean;
package Test is
  generic
      with function F1 return Boolean;
      with function F2 return Boolean;
   session Session is

      state S1
      is
      begin
         Transport'Read (Request);
      transition
         goto S2
            if Request'Valid and Request.Code = Foo and Feature_X
         goto S3
            if Request'Valid and Request.Code = Bar
         goto Error_Invalid_Request
      end S1;

      state S2
      is

− Implicit removal of unreachable states and unused function can be confusing
− Potential difficulties in finding out if a state or function was implicitly removed due to a formal parameter or due to a mistake in the specification
O3 Explicit annotation of states and functions
Implicit removal of transitions. No implicit removal of states or functions.
Specification
O3.1
generic
   Feature_X : Boolean;
package Test is
  generic
      with function F1 return Boolean;
      with function F2 return Boolean is null if not Feature_X;
   session Session is

      state S1
      is
      begin
         Transport'Read (Request);
      transition
         goto S2
            if Request'Valid and Request.Code = Foo
         goto S3
            if Request'Valid and Request.Code = Bar
         goto Error_Invalid_Request
      end S1;

      state S2
      is null if not Feature_X else
         ...
      begin
         ...

− is null if syntax is rather strange
O3.2
generic
   Feature_X : Boolean;
package Test is
   generic
      with function F1 return Boolean;
      with function F2 return Boolean if Feature_X;
   session Session is
      state S1
      is
      begin
         Transport'Read (Request);
      transition
         goto S2
            if Request'Valid and Request.Code = Foo
         goto S3
            if Request'Valid and Request.Code = Bar
         goto Error_Invalid_Request
      end S1;

      state S2
      is
         ...
      begin
         ...
      end S2
         if Feature_X;

TODO: We should find another keyword than if (e.g., when, present if, only if, requires, for) to differentiate it from existing uses of if (e.g., make it possible to make message fields optional).
+
−
Decision Outcome
TBD

It might make more sense to treat the generic formals directly as aspects, rather than adding the "Required =>" part.  Hence, you could write "with Feature_X" for a Boolean formal, and for an enumeration you could write "with R => Bar"

How about given?
generic
   Feature_X : Boolean;
package Test is
   generic
      with function F1 return Boolean;
      with function F2 return Boolean given Feature_X;
   session Session is
      state S1
      is
      begin
         Transport'Read (Request);
      transition
         goto S2
            if Request'Valid and Request.Code = Foo
         goto S3
            if Request'Valid and Request.Code = Bar
         goto Error_Invalid_Request
      end S1;

      state S2
         given Feature_X
      is
         ...
      begin
         ...
      end S2;

Not bad.  It is unique! ;-)
I would suggest making several examples, using "when", "for", and "given"
and share them with a somewhat wider circle, and see if you get any strong
reactions either way.
-Tuck
On Thu, Dec 8, 2022 at 10:03 AM Alexander Senier @.***>
wrote:

How about given?
generic
Feature_X : Boolean;package Test is
generic
with function F1 return Boolean;
with function F2 return Boolean given Feature_X;
session Session is
state S1
is
begin
Transport'Read (Request);
transition
goto S2
if Request'Valid and Request.Code = Foo
goto S3
if Request'Valid and Request.Code = Bar
goto Error_Invalid_Request
end S1;
  state S2
     given Feature_X
  is
     ...
  begin
     ...
  end S2;

—
Reply to this email directly, view it on GitHub
https://github.com/Componolit/RecordFlux/issues/1035#issuecomment-1342868482,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANZ4FJNNKC7DZHBPTS3IZDWMH2FTANCNFSM5WFQJDWA
.
You are receiving this because you commented.Message ID:
@.***>


Updated recipe/meta.yaml to version 3.38.0

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


"Download in browser" stopped working in 19.04

There is this note for Webmin 1.870 and Authentic theme 19.04:

This is a very large update of the Authentic theme, which likely introduces fun new bugs (we've fixed all the ones we've found over the past couple of months of beta testing, but Webmin is huge), so we need y'all to let us know when you run into UI problems. Specifically, there's a common class of bug where buttons don't work on Webmin pages that have oddly nested forms.

So I decided to try and report a bug.

What is my Webmin and Authentic version? 1.870 and 19.04
What is my server-side OS and its version? CentOS 7.4.1708
What is my client-side OS, browser and its versions? Windows 10, Chrome 63
What are the steps to reproduce the issue?

Basically, "Download in browser" functionality seems to be broken in 19.04, wherever it is used. It just hangs and it's loading forever (button spinning and top red line moving), but it will not download the file in browser. Other methods still work fine, so I can workaround it, for example by making a local file and then I would manually download it.
To reproduce, go to for example "Backup Virtual Servers" in Virtualmin or "Backup Configuration Files" in Webmin, choose "Download in browser" and click "Backup now".
This is working fine in Authentic 18.49-9.

seems to be broken in 19.04, wherever it is used.

Does it work in Webmin/Upload and Download module?
I will fix it shortly.

Does it work in Webmin/Upload and Download module?

Good question. In that module, there is a popup, which is obviously a different method than in the other modules, and then it works. (But Chrome first blocks the popup by default unless you allow it for your website, so I had to click the icon for the popup)

Yes, without pop-up, I don't think it's possible to make a difference in response, meanwhile.
However, there are ways to make it work using plain XMLHttpRequest and properly handle binary responses. I think this is what I would do but it's not easy, because jQuery AJAX is not able (was not for sure) to do it properly.
We rely on it at the moment and doing it without popup would be difficult.

But why did it stop working without the popup in the first place, who knows? :) But don't worry, I don't think there is a great need for doing it without the popup, it's not a crucial function. And for people who use it regularly, they can just click to allow popups from that site, I just tried it and it works great, it instantly opens and closes a tab and it downloads fine.
But could you copy this popup way of downloading to those other modules?

Yes, I could and I will for now make it work the same way as in Upload and Download module, only if I don't find better solution to differentiate response type.
Things work completely different on theme 19+.

Interesting that I missed the following. The server has a response with content-disposition header and it could be easily controlled.
I will upload the fix in a bit, I would be very appreciate if you could test it.

I could test, does that require me to install Webmin from scratch?
Also, I just realized that in the File Manager, when you left click on a file to download it, it will use the popup way of downloading, but it will not trigger the popup blocker, because the browser recognizes that you just clicked on something and that you want that to open, that was your intent. The reason it blocks the backup download is because the "Backup now" button does not do it immediately, but after the backup is finished (which is logical), so the browser thinks something is trying to download a file without your consent, because you didn't click anything.
So maybe there could be a way to display a new button "Download now" after the backup is finished. Then the download would not be blocked. But that's too much work for a rare use case, I don't think much people use the "Download in browser" anyway.

No, no. You just would have to go to Theme Configuration and hit Force Update from the bottom of the screen, selecting Install Latest Development version.
I'm aware about File Manager. I will just do my best not to come up with fancy stuff and rely on server response. We have already great amount of complexity.

All right, just tell me when it's ready, I have git installed, so I can force update it.

Great. I'm trying to make Dispay In Browser also work when possible.

Oh, I've made some great progress!! Now all unsupported links (with out needed container) will be opened to the new tab automatically and those that can be downloaded (octet-stream and application/zip) will be downloaded without new tab, as they should.
I also fixed it for File Manager!
I was trying to make it for a long time but it seems it's not possible without people's interest. 😉
Give it a try, now!?!

YES, I updated theme to dev and download now works without any popups, you are a genius! Great job 🏆

😄 I'm glad you enjoy it.

Here I am again, I hope I am not annoying, I am just trying to help Webmin and Authentic become the best :)
I was digging around a bit, and I found this bug, I don't know if it has to do with the theme or Webmin itself.
Go to "Backup Configuration Files", choose any module which is active (don't choose all) and check "Download in browser".
I will get this error:
Backup failed : Missing or invalid absolute local file
But strangely, on stable release of 19.04, this happens only the first time for the selected module, then every next time when the same module is selected, it will download (in popup of course). And on this new dev version of 19.04 it will show that error every time and couldn't download.
And I am pretty sure this didn't happen on 1.860 and 18.49-9. But first take a rest 😄

It seems there is the same logic applied in Perl as in MySQL/PostgreSQL/Backup.
I will try to find the global solution for it.

It took me many hours to figure this out. 🎆 😀
It will work properly, for sure with the part where download is a progressive output stack.
For regular requests, the third-party library will have to be patched, again.. It's not a problem, though..
I think, I will release a patch for it within an hour after testing it thoroughly.
👷 ...

I will also add progress like Mega download have and you will be able to do other things while it's downloading and showing progress in background .. 🏆
Yay!!

Okay, finally finished!
I will have to polish the code before pushing it to the repo, but here is how it's going to look/work?
Example video-screencast.
Like it? 😆

This is awesome, well done! 👏 Turning Webmin into a next-generation dashboard :)

It's fixed on the latest commit.
There is one thing is still not working, when downloading zip via internal redirect, like in Upload Download module. I will fix it later tonight.
Everything else is working. Please give it a try. ;)

The browser download with Safari 11.0.2 does not work. Pushing button 'Backup Now' does nothing.
On Firefox and Chrome it works.

Forget my last comment. My fault, forgot to clear the cache :-(
It works with Safari 11.0.2 and 11.0.3 (dev edition) as well.

Example video-screencast.

Did you maybe revert this back to the popup / new tab download? Because I experienced that now when I tried it on the latest version (Webmin 1.900, Authentic 19.21, Windows 10, Chrome 70). I used all the default settings on the "Backup virtual servers" page, I just selected one site and I chose "Download in browser".

You should have a new tab opening. Check URL bar for the new request to always allow pop-ups from this site.

Yes, what I'm asking is - is that normal now? Because if you see the video clip you made, it's different - you made it so that new tab isn't necessary for download, and now it's like that in File Manager, but not in "Backup virtual servers".

Yes, what I'm asking is - is that normal now?

Yes, it is. File Manager is an exception. The way it's designed is different from what backups scripted and the way it pushes data. At the moments it's the only best way to do it without redundancy.


fix: executor

link to issue https://github.com/apache/dubbo/issues/11524

@aamingaa Please add some test cases to verify this.


Create actions@hannahzacharski

create actions@hannahzacharski

Markdown

merge infinite

merge infinite

merge infinite

merge infinite

merge infinite

merge infinite


question about Nvidia driver

It seems that I have successfully deployed the OpenPAI, the kubernetes show that the nvidia driver is deploy in the master and worker, and I can see the information by /var/drivers/nvidia/384.111/bin/nvidia-smi, when I run nvidia-smi, it shows commond not found, I must use the absolute path /var/drivers/nvidia/384.111/bin/nvidia-smi.
But I cannot log in the master and worker machine locally and because the problem of nvidia-driver（always in the landing page）. Is it normal ?
And when I try to submit hello world job to examine the openpai, I failed. The Exit reason shows that Launcher AM failed to heartbeat with YARN RM due to YarnException

Organization Name:

Short summary about the issue/question:
Brief what process you are following:

How to reproduce it:

OpenPAI Environment:

OpenPAI version:
Cloud provider or hardware configuration:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Hardware (e.g. core number, memory size, storage size, GPU type etc.):
Others:

Anything else we need to know:

I find there is a change, does this mean we need to install nvidia driver on all the node(master and worker) by ourself?
Remove drivers service in k8s cluster deployment
https://github.com/microsoft/pai/pull/3648

in the future, we will allow you to use third party tool like AKS or Kubespray to install driver.

in the future, we will allow you to use third party tool like AKS or Kubespray to install driver.

I still need to deploy openpai in Ubuntu without nvidia driver installed berfore ,and openpai will install nvidia-driver in docker , right? Thank you .


Biometric Auth

Description

Fixes #ISSUE
Type of Change:

Android application added

Checklist:

[x] My PR follows the style guidelines of this project
[x] I have performed a self-review of my own code or materials
[x] My branch is up-to-date with the Upstream development branch
[x] I have added necessary images/screenshots of my changes

Hey @Esetobore your app looks good, please remove .idea folder you changed/pushed, it'll merge smoothly

Its been removed @aadityamp01

Hey @Esetobore Great work!
Thanks for your contribution into Androapps!


Fix tests for API package

This PR fixes two problems:

tests for API package are not executed by CI
some time ago CNI version was updated in the code, but not in the .golden files which used for tests

cc @SchSeba

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+1.1%) to 39.68%

Totals

Change from base Build<PHONE_NUMBER>:
1.1%

Covered Lines:
5004

Relevant Lines:
12611

💛  - Coveralls


KAFKA-9548 Added SPIs and public classes/interfaces introduced in KIP-405 for tiered storage feature in Kafka.

KAFKA-9548 Added SPIs and public classes/interfaces introduced in KIP-405 for tiered storage feature in Kafka.
KIP-405 introduces tiered storage feature in Kafka. With this feature, Kafka cluster is configured with two tiers of storage - local and remote. The local tier is the same as the current Kafka that uses the local disks on the Kafka brokers to store the log segments. The new remote tier uses systems, such as HDFS or S3 or other cloud storages to store the completed log segments. Consumers fetch the records stored in remote storage through the brokers with the existing protocol.
We introduced a few SPIs for plugging in log/index store and remote log metadata store.
This involves two parts

Storing the actual data in remote storage like HDFS, S3, or other cloud stroages.
Storing the metadata about where the remote segments are stored. The default implementation uses an internal Kafka topic.

You can read KIP for more details at https://cwiki.apache.org/confluence/display/KAFKA/KIP-405%3A+Kafka+Tiered+Storage
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@junrao @kowshik

@junrao thanks for the comment, added all public classes to javadoc section in build.gradle.

@kowshik @ijuma thanks for your review. Raised https://github.com/apache/kafka/pull/10424 to address your comments.


Jest encountered an unexpected token with spin.js

FAIL  src/tests/App.test.js
● Test suite failed to run
Jest encountered an unexpected token

This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.

By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".

Here's what you can do:
 • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
 • If you need a custom transformation specify a "transform" option in your config.
 • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

You'll find more details and examples of these config options in the docs:
https://jestjs.io/docs/en/configuration.html

Details:

/Volumes/Machintosh_HD2/workspace/Study/react-study/node_modules/spin.js/spin.js:79
export { Spinner };
^^^^^^

SyntaxError: Unexpected token export

> 1 | import Spinner from 'spin.js';
    | ^
  2 | import 'spin.js/spin.css';

I fixed it on temporary.
/node_modules/spin.js/spin.js at line 79
export { Spinner }; -> module.exports = Spinner;
I hope to fix it next version.

This still seems to be an issue.

For Laravel devs using mix, using mix.js... will sort out this issue

It looks like Jest may need to be configured with Babel to handle ES6 modules: https://github.com/facebook/jest/issues/2550.

I'm having this same issue. Has anyone had any luck finding a permanent fix for this?

window.Spinner = require('spin.js'); instead of import Spinner from 'spin.js'; solved it for me. Maybe it'll help someone else.

Assuming that you don't actually need to test Spin.js, you can mock it:
in your Jest config:
moduleNameMapper": {
      "spin.js": "<rootDir>/test/__mocks__/spinMock.js",
    },

in spinMock.js:
module.exports = {};

Mocking suggestion by @JCB-K works, and I would say that it's a better solution to mock it, but you can also try using the transform ignore
    "transformIgnorePatterns": [
      "/node_modules/(?!spin.js).+\\.js$"
    ],

I'm unable to get "transformIgnorePatterns" to work to fix this for some reason, have tried quite a few variations at this point.


Downloading Дзен video

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting that yt-dlp is broken on a supported site
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
Sweden
Provide a description that is worded well enough to be understood
Trying to download this video: https://dzen.ru/video/watch/64ff332441215b18642646c3
It plays just fine in the browser but yt-dlp cannot download it because of some parsing error with a regex.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', 'https://dzen.ru/video/watch/64ff332441215b18642646c3']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8 (No ANSI), error utf-8 (No ANSI), screen utf-8 (No ANSI)
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp (linux_exe)
[debug] Python 3.11.10 (CPython x86_64 64bit) - Linux-6.10.10-061010-generic-x86_64-with (OpenSSL 3.1.7 3 Sep 2024)
[debug] exe versions: ffmpeg N-110171-g2244722f1f (setts), ffprobe N-110171-g2244722f1f, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.21.0, brotli-1.1.0, certifi-2024.08.30, curl_cffi-0.7.1, mutagen-1.47.0, requests-2.32.3, secretstorage-3.3.3, sqlite3-3.44.2, urllib3-2.2.3, websockets-13.1
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1838 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[ZenYandex] Extracting URL: https://dzen.ru/video/watch/64ff332441215b18642646c3
[ZenYandex] 64ff332441215b18642646c3: Downloading webpage
[ZenYandex] 64ff332441215b18642646c3: Redirecting
ERROR: [ZenYandex] 64ff332441215b18642646c3: Unable to extract metadata; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp/extractor/common.py", line 742, in extract
  File "yt_dlp/extractor/yandexvideo.py", line 260, in _real_extract
  File "yt_dlp/extractor/common.py", line 1360, in _search_json
  File "yt_dlp/extractor/common.py", line 1346, in _search_regex

Duplicate of #11385


Don't Merge! Regression pull request test

Docs Build status updates of commit b021eb7:
:clock10: Full build: the average full build time is 6 min(s) 42 sec(s), this is based on the last 35 build(s) for this repository.

Docs Build status updates of commit b021eb7:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-conceptual/TestingPullRequest.md
:warning:Warning
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)
Details

docs-ref-conceptual/TestingPullRequest.md

[Warning] Metadata with following name(s) are not allowed to be set in Yaml header, or as file level metadata in docfx.json, or as global metadata in docfx.json: content_type. They are generated by Docs platform, so the values set in these 3 places will be ignored. Please remove them from all 3 places to resolve the warning.
[Warning] Metadata with following name(s) are not allowed to be set in Yaml header, or as file level metadata in docfx.json, or as global metadata in docfx.json: content_type. They are generated by Docs platform, so the values set in these 3 places will be ignored. Please remove them from all 3 places to resolve the warning.
[Warning] Metadata with following name(s) are not allowed to be set in Yaml header, or as file level metadata in docfx.json, or as global metadata in docfx.json: content_type. They are generated by Docs platform, so the values set in these 3 places will be ignored. Please remove them from all 3 places to resolve the warning.
[Warning] the value invalid_type is undefined for metadata content_type
[Warning] the value invalid_type is undefined for metadata content_type
[Warning] the value invalid_type is undefined for metadata content_type
Line 7: [Warning] Invalid file link:(~/nonexisted1.md).
Line 7: [Warning] Invalid file link:(~/nonexisted1.md).
Line 7: [Warning] Invalid file link:(~/nonexisted1.md).
Line 8: [Warning] Invalid file link:(~/nonexisted2.md).
Line 8: [Warning] Invalid file link:(~/nonexisted2.md).
Line 8: [Warning] Invalid file link:(~/nonexisted2.md).
Line 9: [Warning] Invalid file link:(~/nonexisted3.md).
Line 9: [Warning] Invalid file link:(~/nonexisted3.md).
Line 9: [Warning] Invalid file link:(~/nonexisted3.md).
[Suggestion] Missing attribute: title. Add a title string to show in search engine results.
[Suggestion] Missing attribute: title. Add a title string to show in search engine results.
[Suggestion] Missing attribute: title. Add a title string to show in search engine results.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Workbench: navigate active view by simple "next/previous" as well as existing "up/down/left/right"

Coming from vim, I like using the <c-w w> and <c-w W> commands (next / previous view) to cycle between visible views (I remap the actual keys, but those are the default keybindings).
I can get half of this with vscode, by binding keys to:
{ "key": "alt+shift+j",         "command": "workbench.action.navigateDown" },
{ "key": "alt+shift+k",         "command": "workbench.action.navigateUp" },
{ "key": "alt+shift+h",         "command": "workbench.action.navigateLeft" },
{ "key": "alt+shift+l",         "command": "workbench.action.navigateRight" }

However that forces me to have 4 keybindings, and to navigate by direction. I would much prefer to have just two keybindings, for next / previous. That way I can cycle through my views without having to think too hard about where I'm going - I just tap the next shortcut until the one I want is active. The order doesn't need to be 100% intuitive, a rough algorithm which is stable is sufficient (i.e. running next then previous should always bring me back to the same place)
I started coding this as an extension, but I'm fairly new to vscode and it doesn't look like there's enough access. I'd need information about: all visible editors + panes, as well as the ability to see which one is in focus (and focus a particular one).
There's some pieces of this in e.g. vscode.window.visibleTextEditors, but it's not really enough to get a full view of what views are visible / active.
I think this would mostly just affect https://github.com/microsoft/vscode/blob/8fcf778ba251131780f2a110d311161f39b97b03/src/vs/workbench/browser/actions/navigationActions.ts#L40-L72

Feels like a fair feature request.
fyi please note that we have Focus Next Part F6 and Focus Previous Part shift+F6 for a top level view navigation (editor -> panel -> status bar -> activity bar -> side bar -> editor).
As for you exact ask it personally feels to me a bit more intuitive than the current navigate down, left, up, right. Though leaving this up to @sbatten to decide since he introduced the inital actions.

to clarify, given the F6 navigation suggested by @isidorn, is this request simply to have the same type of navigation for editor panes?

@sbatten I think so, but the question is a little ambiguous so so I'll try to be more explicit:
There's already the same type of navigation for only editor panes ("Focus next/prev editor group"), I want a next/previous action that extends this to cover both editor groups and views. i.e. when I press it from the last editor group, it continues on to the next view (for me this is usually the terminal).
If you're proposing extending "parts" (as focussed by F6) to include editor panes, that's not quite what I want since it seems a bit too granular - e.g. the strip of buttons to the left of the sidebar and the bottom statusbar are both distinct parts, but I wouldn't want this feature to include those.

@timbertson would the following keybinds meet your description?
    {
        "key": "f6",
        "command": "workbench.action.focusNextGroup",
        "when": "editorFocus"
    },
    {
        "key": "shift+f6",
        "command": "workbench.action.focusPreviousGroup",
        "when": "editorFocus"
    },
    {
        "key": "f6",
        "command": "workbench.action.focusNextPart",
        "when": "!editorFocus || activeEditorGroupLast"
    },
    {
        "key": "shift+f6",
        "command": "workbench.action.focusPreviousPart",
        "when": "!editorFocus || activeEditorGroupIndex == 1"
    },
    {
        "key": "shift+f6",
        "command": "workbench.action.focusLastEditorGroup",
        "when": "panelFocus"
    },
    {
        "key": "f6",
        "command": "workbench.action.focusFirstEditorGroup",
        "when": "sideBarFocus"
    },

I used f6 here but you can replace as you like.

Ah, very clever thanks. This is very close to what I want, and is certainly a good workaround for now.
The only problem being that it still cycles through the bottom sidebar and strip of buttons to the left of the folder view, which (imo) shouldn't be included in this enumeration (I already have different keyboard shortcuts for activating various sidebar modes, and I never really interact with the botto status panel).

my hesitation is that the functionality you mention that should differ here is not something I can say should be universal. If I were to implement such a command, I would expect that it hits those 2 parts you mention you'd like to skip.

True, but the set of things I want it to go through exactly matches what the "View: navigate up/down/left/right" commands do, so I'm just wanting a different way to cycle through that same set of items.


Storage Linking Issue in Laravel

Laravel Version: 8.35.1
PHP Version: 8.0.0

Description:
I'm uploading an image with laravel using this code:
 $product_image = $request->file('product_image');
 $product_image_extension = $product_image->extension();
 $product_image_name = time() . '.' . $product_image_extension;
 $product_image->storeAs('/media/product_images', $product_image_name);
 $model->product_image = $product_image_name;

It works fine, the file is uploaded to storage/app/media/product_images/.
Then, I run the command php artisan storage: link  to create the symlink in public.
The Command Execute Like this:
Local NTFS volumes are required to complete the operation.
The [E:\Complete Programming Bootcamp\laravel Work\ecom-project\cyber_shopping\public\storage] link has been connected to [E:\Complete Programming Bootcamp\laravel Work\ecom-project\cyber_shopping\storage\app/public].
The links have been created.

I am Using This Code To Display Image:
{{asset('storage/media/product_images/' . $list->product_image)}}
But Image is not displaying on the frontend.
PLz, Help Me.
Thanks

Hi there,
Thanks for reporting but it looks like this is a question which can be asked on a support channel. Please only use this issue tracker for reporting bugs with the library itself. If you have a question on how to use functionality provided by this repo you can try one of the following channels:

Laracasts Forums
Laravel.io Forums
StackOverflow
Discord
Larachat
IRC

However, this issue will not be locked and everyone is still free to discuss solutions to your problem!
Thanks.


[ELE-64] Show databases and schemas in dbt  on the elementary report

Is your feature request related to a problem? Please describe.
We use dbt with BigQuery and have a lot of GCP projects and BigQuery datasets in each. As, the elementary report shows only table names corresponding to tests, it can get much better to show database (GCP projects) and schemas too.

Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
I don't think we have any alternative solutions.
Additional context
Nothing
Would you be willing to contribute this feature?
I would love to contribute.
ELE-64

Hi @yu-iskw ! thanks so much for opening this issue! today do you have a single dbt project that creates tables / views in different GCP projects and datasets?

Yes. We create tables and views in different GCP projects. And source tales as dbt sources exist in different GCP project due to data security. We separate GCP projects of sources from ones of models, since I don't want grant writable/editable permissions in GCP projects of sources to a Google service account to create models. But, the service account has permissions to read sources. So, it can run tests of both sources and models in different GCP projects. That's why I would like to show databases(GCP projects) and schemas(datasets).

Thanks @yu-iskw ! we added this task to our task management backlog so this issue will go through our product scoping and prioritization process now. Usually one of our considerations for prioritizing is demand from the community. We'll keep you updated once we have news about this issue


ERROR: Building BenchBot "core" returned a non-zero error code: 1

Hi, when running the benchbot install script, I get the error: 'Building BenchBot "core" returned a non-zero error code: 1'
I've checked docker can run without root access, it seems that it can.
Read threads #59, #60 - Unsure where to go from this.
Output:
################################################################################
######################## PART 3: BUILDING DOCKER IMAGES ########################
################################################################################
BUILDING BENCHBOT CORE DOCKER IMAGE:
unknown shorthand flag: 't' in -t
See 'docker --help'.
Usage:  docker [OPTIONS] COMMAND
A self-sufficient runtime for containers
Options:
--config string      Location of client config files (default "/home/steven/.docker")
-c, --context string     Name of the context to use to connect to the daemon (overrides
DOCKER_HOST env var and default context set with "docker context use")
-D, --debug              Enable debug mode
-H, --host list          Daemon socket(s) to connect to
-l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal")
(default "info")
--tls                Use TLS; implied by --tlsverify
--tlscacert string   Trust certs signed only by this CA (default
"/home/steven/.docker/ca.pem")
--tlscert string     Path to TLS certificate file (default "/home/steven/.docker/cert.pem")
--tlskey string      Path to TLS key file (default "/home/steven/.docker/key.pem")
--tlsverify          Use TLS and verify the remote
-v, --version            Print version information and quit
Management Commands:
builder     Manage builds
config      Manage Docker configs
container   Manage containers
context     Manage contexts
image       Manage images
manifest    Manage Docker image manifests and manifest lists
network     Manage networks
node        Manage Swarm nodes
plugin      Manage plugins
secret      Manage Docker secrets
service     Manage services
stack       Manage Docker stacks
swarm       Manage Swarm
system      Manage Docker
trust       Manage trust on Docker images
volume      Manage volumes
Commands:
attach      Attach local standard input, output, and error streams to a running container
build       Build an image from a Dockerfile
commit      Create a new image from a container's changes
cp          Copy files/folders between a container and the local filesystem
create      Create a new container
diff        Inspect changes to files or directories on a container's filesystem
events      Get real time events from the server
exec        Run a command in a running container
export      Export a container's filesystem as a tar archive
history     Show the history of an image
images      List images
import      Import the contents from a tarball to create a filesystem image
info        Display system-wide information
inspect     Return low-level information on Docker objects
kill        Kill one or more running containers
load        Load an image from a tar archive or STDIN
login       Log in to a Docker registry
logout      Log out from a Docker registry
logs        Fetch the logs of a container
pause       Pause all processes within one or more containers
port        List port mappings or a specific mapping for the container
ps          List containers
pull        Pull an image or a repository from a registry
push        Push an image or a repository to a registry
rename      Rename a container
restart     Restart one or more containers
rm          Remove one or more containers
rmi         Remove one or more images
run         Run a command in a new container
save        Save one or more images to a tar archive (streamed to STDOUT by default)
search      Search the Docker Hub for images
start       Start one or more stopped containers
stats       Display a live stream of container(s) resource usage statistics
stop        Stop one or more running containers
tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top         Display the running processes of a container
unpause     Unpause all processes within one or more containers
update      Update configuration of one or more containers
version     Show the Docker version information
wait        Block until one or more containers stop, then print their exit codes
Run 'docker COMMAND --help' for more information on a command.
To get more help with docker, check out our guides at https://docs.docker.com/go/guides/
ERROR: Building BenchBot "core" returned a non-zero error code: 1
Ensure that Docker has been installed correctly AND that you can run Docker
WITHOUT root access (there is no need to ever run Docker with root). See
https://docs.docker.com/install/linux/linux-postinstall/ for details on how to
fix this.
If the error is more generic, please contact us so that we can update our
pre-install host system checks.

Thanks for reporting @StevenDavenport .
This is one I haven't seen before. Can I get you to share a full log so I can dig a bit deeper:
benchbot_install 2>&1 | tee benchbot.log

I was under the impression benchbot would have to be installed before commands like this would work? Perhaps I've missed something.
With the command: "benchbot_install 2>&1 | tee benchbot.log"
I get the output: "benchbot_install: command not found"

So the issue seems to be with the following line in the benchbot_install file.
docker buildx build -t "$DOCKER_TAG_CORE" -f "PATH_DOCKERFILE_CORE" \ etc..
As the error is "unknown shorthand 't' in -t" I changed the -t to --tag. This produced the same error.
I don't know loads about docker so I'm really struggling to figure this one out.
Any help greatly appreciated!!

My bad, didn't mean to close..
So the issue seems to be with the following line in the benchbot_install file.
docker buildx build -t "$DOCKER_TAG_CORE" -f "PATH_DOCKERFILE_CORE" \ etc..
As the error is "unknown shorthand 't' in -t" I changed the -t to --tag. This produced the same error.
I don't know loads about docker so I'm really struggling to figure this one out.
Any help greatly appreciated!!

The issue was with the command docker buildx. To fix this I re-installed docker and docker-desktop, ensuring that I had the docker buildx binaries.

Sorry @StevenDavenport for not getting back to you sooner; glad you were able to resolve.
I was struggling to re-produce the error, and wasn't sure if it was to do with using 22.04 (you had a newer version of Docker than available on 20.04).
Can I you provide me the result of apt list --installed | grep docker now you've got it installed. I'd like to see if there are installer checks I should update to catch this issue?

No problem @btalb the results are:

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

docker-ce-cli/jammy,now 5:20.10.17~3-0~ubuntu-jammy amd64 [installed]
docker-ce-rootless-extras/jammy,now 5:20.10.17~3-0~ubuntu-jammy amd64 [installed,automatic]
docker-ce/jammy,now 5:20.10.17~3-0~ubuntu-jammy amd64 [installed]
docker-compose-plugin/jammy,now 2.6.0~ubuntu-jammy amd64 [installed]
docker-desktop/now 4.11.0-83626 amd64 [installed,local]
docker-scan-plugin/jammy,now 0.17.0~ubuntu-jammy amd64 [installed,automatic]

Thanks. All seems similar to what's on my working systems.
I'll close this for now, but re-open if this pops up again in 22.04 installs.


chore(main): release 0.1.6

:robot: I have created a release beep boop
0.1.6 (2024-12-16)
Bug Fixes

metrics targetPort https -> 8443 (#427) (7df785a)

Dependency Updates

deps: update all non-major dependencies to v0.31.4 (#423) (a549acd)
deps: update build digest to 5e4aaa9 (#425) (fc18a81)
deps: update golang.org/x/exp digest to 1829a12 (#422) (e030e3e)
deps: update golang.org/x/exp digest to 4a55095 (#428) (b3b0a37)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v0.1.6
:sunflower:


[Error] json: cannot unmarshal object into Go struct field Result.parameters of type string

Hi,
I use your test framework with my Dialogflow weather POC, but I got this issue :
./dialogflow-query-checker run test.yml -d
dialogflow-query-checker version 1.11.0
The configuration file loaded: test.yml
The debug mode is on
The count of retrying: 0
Running query tests for Dialogflow.
[Start] Query: météo à Bordeaux (weather)
<Request body> {
  "contexts": [
    "weather"
  ],
  "lang": "fr",
  "originalRequest": {
    "source": "google",
    "data": {
      "user": {
        "locale": "fr-FR"
      }
    }
  },
  "query": "météo à Bordeaux",
  "event": {},
  "sessionId": "da2257ab-e844-4264-873b-7f21171ab138"
}
<Response Status> 200 OK
<Response body> {
  "id": "48cc05aa-b092-4980-b0a5-a41b5f843556",
  "timestamp": "2018-03-05T13:30:39.729Z",
  "lang": "fr",
  "result": {
    "source": "agent",
    "resolvedQuery": "météo à Bordeaux",
    "action": "weather",
    "actionIncomplete": false,
    "parameters": {
      "address": {
        "city": "Bordeaux"
      },
      "date-time": ""
    },
    "contexts": [
      {
        "name": "_actions_on_google_",
        "parameters": {},
        "lifespan": 100
      },
      {
        "name": "weather",
        "parameters": {
          "date-time.original": "",
          "address": {
            "city": "Bordeaux",
            "city.original": "Bordeaux"
          },
          "date-time": "",
          "address.original": "Bordeaux"
        },
        "lifespan": 5
      }
    ],
    "metadata": {
      "intentId": "f1b75ecb-a35f-4a26-88fb-5a8049b92b02",
      "webhookUsed": "true",
      "webhookForSlotFillingUsed": "true",
      "webhookResponseTime": 1050,
      "intentName": "weather"
    },
    "fulfillment": {
      "speech": "légère pluie à Bordeaux il fera au minimum 9 degrès et au maximum 16 degrès",
      "messages": [
        {
          "type": 0,
          "speech": "légère pluie à Bordeaux il fera au minimum 9 degrès et au maximum 16 degrès"
        }
      ],
      "data": {
        "google": {
          "expect_user_response": true,
          "no_input_prompts": [],
          "rich_response": {
            "items": [
              {
                "simple_response": {
                  "text_to_speech": "légère pluie à Bordeaux il fera au minimum 9 degrès et au maximum 16 degrès"
                }
              },
              {
                "basic_card": {
                  "title": "légère pluie à Bordeaux",
                  "formatted_text": "Température maximale : 16°C   \nTempérature minimale : 9°C",
                  "buttons": [],
                  "image_display_options": "CROPPED"
                }
              }
            ],
            "suggestions": []
          },
          "user_storage": "{\"data\":{}}"
        }
      }
    },
    "score": 1.0
  },
  "status": {
    "code": 200,
    "errorType": "success",
    "webhookTimedOut": false
  },
  "sessionId": "da2257ab-e844-4264-873b-7f21171ab138"
}

[Error] json: cannot unmarshal object into Go struct field Result.parameters of type string

May be you expect that parameters are string, but they can be objects.
"parameters": {
      "address": {
        "city": "Bordeaux"
      },
      "date-time": ""
    },

May be you expect that parameters are string, but they can be objects.

@darrimajou Yes, I understand that the value of parameters can be string only, but I just know that the type can also become an object. I intend to handle this issue as bug, therefore I think that this issue take a priority than others.

@darrimajou I have just released a new version 1.14.0. In this version, specifying an object supported to assert each structured parameter. Could you test the version for your test-cases?

@darrimajou I close this issue. If you find some problem, please report it to me as a new issue. Thank you for this reporting!


Example for how to use existing config functions

Related to #193 but more pragmatic.
I typically structure my projects like this:
def generate_foo_config(*args, **kwargs):
       # just manually defining foo_config['arg'] = arg
        foo_config = {....}
        return foo_config

def pipeline_foo(foo_config):
      # parse foo_config and do foo task

Where I have a pair of those methods for foo = data, train, model.  Then the main method for the whole experiment looks like this:
def pipeline_run(data_config, train_config, model_config):
      full_config = {
           'data': data_config,
           'train': train_config,
           'model': model_config
     }
     # load pipelined batch gen, model and run pipelined training

What would the best way to go about integrating this scheme with sacred?  There isn't a way to directly add the configs using generate_foo_config, right? I have to call all generate_foo_config with arbitrary args to get the structure of the config dicts, compose them into full_config, and then pass that to experiment.add_config?
So something like this:
from experiment_pkg.train import generate_train_config, pipeline_train
from experiment_pkg.model import generate_model_config, pipeline_model
from experiment_pkg.data import generate_data_config, pipeline_batch_gen

from sacred import Experiment

experiment = Experiment('foo_bar')

full_config = {
    'data': generate_data_config(....),
    'train': generate_train_config(....),
    'model': generate_model_config(...)
}

experiment.add_config(full_config)

@experiment.automain
def main(_config):
    # do everything

And then the syntax for updating the hierarchical config is experiment.run(config_updates={'train.n_epochs' = 10'}) ?
Any general insights appreciated!

@rueberger I've been dealing with this same issue since getting up and running last week and am more or less dealing with similar things.  The only other workaround I've come up with is similar to #211 - decorate generate_foo_config with @experiment.config and then delete any variables you don't want tagged onto the config.  Something like this:
@experiment.config
def generate_foo_config(*args, **kwargs):
    intermediate_variable = some_other_fn(args[2])
    arg_for_config = another_fn(intermediate_variable)
    del intermediate_variable

Also, if you're nesting configurations, I highly recommend using Ingredients.  Based on your code, it seems like you could have one for data, train, and model.  Just cross your fingers there aren't any dependencies among them or it gets hairy quickly.  It'd be a lot nicer with the OO approach we mentioned in #193, but I haven't had a chance to get going on that yet.

@rueberger:  You can call functions from the global namespace in your config function. So if I understand your case correctly you might just want to do this:
@ex.config
def cfg():
    data = generate_data_config(...)
    train = generate_train_config(...)
    model = generate_model_config(...)

Additionally, if the corresponding arguments of your pipeline functions are called data, train, and model respectively,  then you can add them as captured functions and have sacred pass them automatically, like this:
ex.captured(pipeline_data)
ex.captured(pipeline_train)
ex.captured(pipeline_model)

@ex.automain
def main():
    d = pipeline_data()
    m = pipeline_model()
    t = pipeline_train()

And yes: In both cases you would update parameters using train.n_epochs. So on the commandline with train.n_epochs=10 and from python config_updates={'train.n_epochs':10} (or equivalently config_updates={'train': {'n_epochs':10}}

Thanks for your help @Qwlouse. Everything worked perfectly :)

Glad to hear!


Update char for time while app is not running

Need to figure out how to update character realistically for time in between "sessions" of when the user has the app open.
I attempted to run the full task manager upon app re-launch with task durations all reduced to milliseconds, and this gets out of hand pretty quickly. Also, since there is no limit to the time between sessions, there would be no limit to how long it would take to emulate it.
We also can't rely on any platform really letting the service worker run in the background while the app is closed/minimized/whatever, so we will need a way to "catch up" anyway.
It looks like we will have to do some simulation based on pure calculation of time. We could also put a limit on the total back-time, such as 1 week. This basically creates a short term incentive to check in on the app to change your adventure mode, and a long term incentive to just open the app to let it catch up. If you don't open the app for over a week, then you just lose that time. Then we could have various levels of calculation, so for example we could shave off days at a time until we get to 24 hours prior to the present, then shave off hours until we get to maybe an hour prior to present, and then run an actual emulation? This basically gives us a hard limit of how much calculation needs to be done, but maybe gives us a little more fidelity in terms of what sort of progress would have actually happened if you had been playing in that time.
So then we could essentially create a "calculateProgressHour" function and a "calculateProgressDay" function, and just use those to fast forward until an hour before present.
Will need to think about how this fits into my plan of having configurable content...

An alternative means of updating chunks of time would be to break advancement up into milestones that could impact the rate of advancement, such as long-term limit break, leveling up, or story advancement. Essentially when the app loads, if it has been over say an hour since the last task was started, then calculate the “time to next milestone” for long-term limit break, level up, and chapter advancement. Whichever is soonest, make sure that would happen in the time since the last task, then calculate updates and apply. Rinse and repeat until the time gap is less than the nearest milestone, and then just calculate based on current state at that time.

So let's start thinking about this on the level of specifics: given a known set of stats and a known task mode, we should be able to estimate with decent accuracy the amount of time required for the next "milestone" that could alter those stats.
Assuming LOOT task mode:

assume BUILD_UP_LIMIT = 10 + hero.stats[LOOT mode's "buildUpLimitBaseStatIndex"]
each "build-up" cycle will last on average "average LOOT task duration" * BUILD_UP_LIMIT + 4 seconds (for the "startBuildUp" Task); It will reduce TRIAL & QUEST env limits by 2 * BUILD_UP_LIMIT; it will increase xp and adventure progress by "average LOOT task duration" * BUILD_UP_LIMIT.
the "tear-down" cycle duration is a little harder to predict because common items are merged, and there is no way to know how many duplicates will occur. We should assume low, but could base it on the number of options available. Whatever this number is, the "tear-down" cycle will that that many seconds + 4 (for the startTearDown task); it will add BUILD_UP_LIMIT to gold and to the LOOT env limit, or half of BUILD_UP_LIMIT to gold if LOOT env limit already broken.
not sure of a good way to predict the frequency of major reward tasks, but each would add 5 seconds to the full-cycle duration and the "tradeInCostForLevel" to the LOOT spentCurrency.

So, with this already in mind, we should be able to calculate the number of cycles required to reach each type of milestone. Whichever is closest, we could tally up the results from all cycles that would happen before that milestone. We could then take the total currency gained, and figure out how many MajorRewards would be added, and add the total time of those to the duration.

At this point, this is done, but I can make the checking logic slightly better: if “catch up” is the closest milestone, and the number of cycles is at least 3, just chop off one (or two?) cycle (subtracting the proper time from “total time”) and go from there.


Relocate examples

{src/examples/ -> examples/}

This PR has the examples install retreon as a module instead of importing from source. That should help identify common publishing issues, such as missing distribution files or misconfigured types.

If I were a reasonable man, I would've converted retreon to a monorepo with examples as a sibling package, but I'm tired of managing monorepos. I'll wait until I absolutely have to.


Fixes 6117 - disabled toolbar button tooltip should remain if no alternate text given

Fixes #6117
disabled toolbar button tooltip remains the same if no alternate text

@himdel @abonas @martinpovolny

I think you need to add "#" in commit in order to link this to the bug that fixes it

@miq-bot add_label ui, bug


Replace SSH url repo with HTTPS url repo

I believe most users don't have their SSH public keys imported in this repository, so they can only do git clone via HTTPS and not SSH. ;)

We need to clone the tldr repo to parse the man pages, not my repo. Issue #34 also talked about the cloning problem. So close this one and move discussions to that one. :)


registered_heaps_write_lock will never be NULL from heap_caps_init.c (IDFGH-4347)

Environment

Development Kit:  ESP32-DevKitC
Module or chip used:  ESP32-WROOM-32
IDF version: v4.3-dev-1197-g8bc19ba89
Build System: Make
Compiler version: (crosstool-NG esp-2020r3) 8.4.0
Operating System: Linux - ubuntu
Using an IDE?: No
Power Supply: USB

Problem Description
I am trying to use this repository, i only change flash size to 4MB (expected by partition table total size) then directly make the project. An error happens that i think not from the TFT project but from idf  (CMIIW).
Expected Behavior
Build success
Actual Behavior
/home/samuel/tools/esp/esp-idf/components/heap/heap_caps_init.c:230:44: error: the comparison will always evaluate as 'true' for the address of 'registered_heaps_write_lock' will never be NULL [-Werror=address]
     MULTI_HEAP_LOCK(&registered_heaps_write_lock);
                                            ^~
/home/samuel/tools/esp/esp-idf/components/heap/heap_caps_init.c:232:45: error: the comparison will always evaluate as 'true' for the address of 'registered_heaps_write_lock' will never be NULL [-Werror=address]
     MULTI_HEAP_UNLOCK(&registered_heaps_write_lock);

Steps to reproduce

Clone [repository](https://github.com/loboris/ESP32_TFT_library
Change flash size to 4MB
Compile using make

This seems to be due to this line: https://github.com/loboris/ESP32_TFT_library/blob/aa21772f54a71887ec08b2e8bbaef9e304009891/Makefile#L8
Could you try removing it?
Note that there are a couple other issues that need to be fixed in order to get the library to build: there is a missing #include "driver/gpio.h" in one file and a couple of misleading-indentation errors in another. That said, ESP32_TFT_library project hasn't been maintained since 2018, so even if it compiles, it might not work due to API changes. PR https://github.com/loboris/ESP32_TFT_library/pull/79 seems to have the changes to get the library to work with ESP-IDF v4.0, which is a bit more up to date.

Hi thank you for your response. Yes, i decided to use the PR that you mention. Thank you


Environment setting problem(POSIXPATH error)

I've clone this code and run pip3 -r requirement.txt
But I met some problem due to invalid arguments
ex:
os.path.join didn't support POSIXPATH
my environment is
ubuntu 16.0.4
python 3.5.1

tell me which package cause the error

I'm using Python3.6

It seems to be a python version problem
I used python3.5 which is default version of Ubuntu 16.04
After using python3.6 problems seems to be gone


New image not being downloaded upon restart

Hello.  The way in which we are deploying is from Azure Dev Ops, a pipeline that is pushing a new docker image of our Azure Web App running on a linux instance.  The last step is a restart of the App Service, which is supposed to pull the latest image (tag) upon restart.  That is our deployment model.
Even though the logs state that it is pulling the container, and maybe it is, the old container is still what runs even after a restart, and even after waiting for hours.  Some times, it takes a few manual restarts or full stop/start, and the new image will work as hoped.
We have verified that the image is in fact available from the ACR, no network issues, and no errors in the log.
From all signs, the new image / container should be available to pull and use.
In our development environment, we have only 1 instance of our Web App, so there's no scaling issue or orphaned processes around unless the log entries for stop and delete container are not truly what is happening.
The logs do not output the SHA digest of the image, which would be helpful to verify what is what, and I do not see a way to trigger that type of output.  We are not able to SSH to the machine because our stack does not allow this in an Azure web app.
Please kindly advise what we might do next, it is greatly appreciated.

Hi
If the problem persists and is related to running it on Azure App Service, please open a support incident in Azure:
https://learn.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request
This way we can better track and assist you on this case
Thanks,
Joaquin Vano
Azure App Service


Mitmproxy crashes when loading a bad server replay from the terminal

Mitmproxy doesn't like loading (bad) client or server replays from the command line, as it fails to display the error.
Note that server_playback_path is called in __init__ before self.statusbar is initialized. Loading the file via the S key in mitmproxy shows the error just fine.
$ mitmproxy -S ~/Downloads/oldreplay.capture
Traceback (most recent call last):
  File "/usr/local/bin/mitmproxy", line 3, in <module>
    mitmproxy()
  File "/usr/local/lib/python2.7/site-packages/libmproxy/main.py", line 97, in mitmproxy
    m = console.ConsoleMaster(server, console_options)
  File "/usr/local/lib/python2.7/site-packages/libmproxy/console/__init__.py", line 426, in __init__
    self.server_playback_path(options.server_replay)
  File "/usr/local/lib/python2.7/site-packages/libmproxy/console/__init__.py", line 514, in server_playback_path
    self.statusbar.message(ret)
AttributeError: 'ConsoleMaster' object has no attribute 'statusbar'

Excellent find. Thanks for the report!

Thanks Max! I've had a quick stab at resolving the issue, let me know if the above PR makes sense.


Expand MTA-STS acronym

To help people who are unfamiliar with it

Pretty sure that failed auto approve check doesn't apply here.


housekeeping: add more folks into their team

What is the current behavior? (You can also link to an open issue here)
"core" team? pfft.
What is the new behavior (if this is a feature change)?
recognise all the peeps

Lets get this baby in there :)

When I try to view a team I constantly get 404 exceptions.
If I log out, click on one of these links redirects me to Github login page.
People in Slack say, this is a permissions issue.
Can we do something with this?

It's a GitHub limitation. You have to be in a team to be able to view who's in them or request to join.

If you would like to join a team ask in #reactiveui-succession in slack.


The product life time of Finance + Operations (on-premises) software ends December 2027!?

Hi,
Product life time
The product life time of Finance + Operations (on-premises) software ends December 2027. Licensed customers who are in compliance with this policy are entitled to product support. Product support is available at a minimum through December 31, 2027.
How should I read this. Does the D365FO LBD version end of life in December 2027? It is a bit unclear for me and one of our prospects.
Appreciate your assistance.
Best regards,
Michael

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

ID: 45e09816-9864-f87d-4117-5276a8790a09
Version Independent ID: 6709e1e7-8130-570d-0f33-64c4bfe604ad
Content: Software lifecycle policy and on-premises releases - Finance & Operations | Dynamics 365
Content Source: articles/fin-ops-core/dev-itpro/migration-upgrade/on-prem-version-update-policy.md
Service: ****
Product: dynamics-365
Technology: ****
GitHub Login: @faix
Microsoft Alias: osfaixat

Bug 810559 has been logged to address this issue.

@johnmichalak this issue can be closed now.


Add filled rectangle - miss the example of code in wiki

When using PDDocument directly i can use PDPageContentStream with doc and page parameter to draw a rectangle.
(let [doc (PDDocument.)
        page (PDPage. (PDRectangle. (mm->points 43) (mm->points 58)))
        content (PDPageContentStream. doc page)]
(doto content
      (.addRect 0 0 (mm->points 43) (mm->points 6))
      (.setNonStrokingColor Color/RED)
      (.fill)))

How can i draw a rectangle when using pdfbox-layout?
I thought it works like paragraph:
(let [rect (Rectangle. 0 0 (Rectangle. 0 0 (mm->points 43) (mm->points 6)))]
(doto doc
      (.add rect)
      (.add parahraph VerticalLayoutHint/CENTER)
      (.save (clojure.java.io/file path))))

But it throws an exception:
CompilerException java.lang.ClassCastException: rst.pdfbox.layout.elements.Rectangle cannot be cast to rst.pdfbox.layout.elements.Element
What i miss?

The layout/document API is thought to work with abstractions like paragraphs, not the PDPageContentStream directly. See the Text-API section in the wiki on how to work with the low-level text-API.
If you need to use the layout API and want to directly draw to the stream, you could implement the Drawable and Element interface. Drawable gives you access to the content stream, the Element interface is just a tagging interface, you need to implement (that's the ClassCastException).
Let me know if this works for you, or make a suggestion.

In simply words i need draw a rectangle and what is important text should appear on this rectangle. So something like that:
+-----+
|  text  |
+-----+
But text have to be white and background black and always have the same height, no matter text has 2 lines or 1.
So solution for that can be add a text and independently add a black rectangle behind the text. Did i miss some solution what you already have?
https://github.com/ralfstuckert/pdfbox-layout/blob/master/examples/LowLevelText.java
This code?
Do you suggest write my own class to draw rectangle? No simpler way?

The Layout API is intended to dynamically create floating text, where exact positioning is not the point. If you need to do exact pixel layout, you'll be better done with the low level text API.
Anywhere, here is an example that might fulfil your needs:
package example;

import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;

import rst.pdfbox.layout.text.BaseFont;
import rst.pdfbox.layout.text.DrawListener;
import rst.pdfbox.layout.text.Position;

public class Box implements Element, Drawable {

    private Paragraph inner;
    private float leftMargin;
    private float rightMargin;
    private float topMargin;
    private float bottomMargin;
    private Color backgroundColor;

    private float width;
    private float height;

    private Position absolutePosition;

    public Box(final Paragraph inner, final float width, final float height) {
	this.inner = inner;
	this.width = width;
	this.height = height;
    }

    public float getLeftMargin() {
	return leftMargin;
    }

    public void setLeftMargin(float leftMargin) {
	this.leftMargin = leftMargin;
    }

    public float getRightMargin() {
	return rightMargin;
    }

    public void setRightMargin(float rightMargin) {
	this.rightMargin = rightMargin;
    }

    public float getTopMargin() {
	return topMargin;
    }

    public void setTopMargin(float topMargin) {
	this.topMargin = topMargin;
    }

    public float getBottomMargin() {
	return bottomMargin;
    }

    public void setBottomMargin(float bottomMargin) {
	this.bottomMargin = bottomMargin;
    }

    public void setMargins(float left, float right, float top, float bottom) {
	setLeftMargin(left);
	setRightMargin(right);
	setTopMargin(top);
	setBottomMargin(bottom);
    }

    public Color getBackgroundColor() {
	return backgroundColor;
    }

    public void setBackgroundColor(Color backgroundColor) {
	this.backgroundColor = backgroundColor;
    }

    @Override
    public float getWidth() throws IOException {
	return width;
    }

    @Override
    public float getHeight() throws IOException {
	return height;
    }

    @Override
    public Position getAbsolutePosition() throws IOException {
	return absolutePosition;
    }

    public void setAbsolutePosition(Position absolutePosition) {
        this.absolutePosition = absolutePosition;
    }

    @Override
    public void draw(PDDocument pdDocument, PDPageContentStream contentStream,
	    Position upperLeft, DrawListener drawListener) throws IOException {
	float x = upperLeft.getX();
	float y = upperLeft.getY() - getHeight();
	contentStream.setNonStrokingColor(getBackgroundColor());
	contentStream.fillRect(x, y, getWidth(), getHeight());

	inner.setMaxWidth(getWidth() - getLeftMargin() - getRightMargin());
	Position innerUpperLeft = upperLeft
		.add(getLeftMargin(), -getTopMargin());
	inner.draw(pdDocument, contentStream, innerUpperLeft, drawListener);
    }

    @Override
    public Drawable removeLeadingEmptyVerticalSpace() throws IOException {
	return this;
    }

    public static void main(String[] args) throws Exception {
	String text1 = "{color:#ffffff}Lorem ipsum dolor sit amet, consetetur sadipscing elitr, "
		+ "sed diam nonumy eirmod tempor invidunt ut labore et dolore magna "
		+ "aliquyam erat, _sed diam_ voluptua. At vero eos et *accusam et justo* "
		+ "duo dolores et ea rebum.";

	Document document = new Document();

	Paragraph paragraph1 = new Paragraph();
	paragraph1.addMarkup(text1, 11, BaseFont.Times);

	Box box = new Box(paragraph1, 400, 100);
	box.setMargins(10, 10, 20, 5);
	box.setBackgroundColor(Color.black);
	document.add(box);

	final OutputStream outputStream = new FileOutputStream("box.pdf");
	document.save(outputStream);

    }

}

Thank you for example.
Did you consider add code to generate paragraph with background as default part of you package? It would be perfect then :)

Hi,
I'm currently working on something like that. It will be a container for all kind of elements (e.g. paragraph) which can be given a shape (e.g. rect), that may be used as a border and/or background.

Added Frames and Shapes to version 0.8.0

You are great! Thank you.

I back to the topic.
Maybe i miss it but still i don't know how to achieve what i want.
I want do black rectangle 43x6mm and put in the center (vertical and horizontal) of it white text.
As i understand it doesn't solve my problem? :)


JENKINS-20991 - changed firstLine in revParse to use firstNonBlankLine

@reviewbybees
@ndeloof This is the one I mentioned to you
Basically, git rev-parse has been observed to return a leading blank line in its results. Not sure why. This change basically just covers for it by returning the first non blank line in the result or null if no result (which is existing behaviour).

This pull request originates from a CloudBees employee. At CloudBees, we require that all pull requests be reviewed by other CloudBees employees before we seek to have the change accepted. If you want to learn more about our process please see this explanation.

Thank you for this pull request! Please check this document for how the Jenkins project handles pull requests.

@MarkEWaite

Why only guard one of the two calls to rev-parse in CliGitAPIImpl?

Wasn't a conscious decision. Simply missed those cases.
I've updated isBareRepository and validateRevision to use the new method. Let me know if there are any others I've missed.
Cheers

While evaluating the pull request in my testing environment, I found the tests pass on all the Linux variants I tested (Ubuntu 12, 13, 14, CentOS 6, 7, and Debian 6, 7, and 8).  Unfortunately, they fail on the two Windows platforms (Windows 7 and Windows 10).
One failure was:
`Error Message
expected:<[58c8401641511340b7d919a4e6b805d9f3416d3f]> but was:<[
58c8401641511340b7d919a4e6b805d9f3416d3f
61c8401641511340b7d919a4e6b805d9f3416d1c]>
Stacktrace
org.junit.ComparisonFailure: expected:<[58c8401641511340b7d919a4e6b805d9f3416d3f]> but was:<[
58c8401641511340b7d919a4e6b805d9f3416d3f
61c8401641511340b7d919a4e6b805d9f3416d1c]>
at org.junit.Assert.assertEquals(Assert.java:115)
at org.junit.Assert.assertEquals(Assert.java:144)
at org.jenkinsci.plugins.gitclient.utils.GitOutputUtilsTest.testFirstNonBlankLine_TwoResults(GitOutputUtilsTest.java:27)`
The other failure was:
`Error Message
expected:<[58c8401641511340b7d919a4e6b805d9f3416d3f]> but was:<[
58c8401641511340b7d919a4e6b805d9f3416d3f
61c8401641511340b7d919a4e6b805d9f3416d1c]>
Stacktrace
org.junit.ComparisonFailure: expected:<[58c8401641511340b7d919a4e6b805d9f3416d3f]> but was:<[
58c8401641511340b7d919a4e6b805d9f3416d3f
61c8401641511340b7d919a4e6b805d9f3416d1c]>
at org.junit.Assert.assertEquals(Assert.java:115)
at org.junit.Assert.assertEquals(Assert.java:144)
at org.jenkinsci.plugins.gitclient.utils.GitOutputUtilsTest.testFirstNonBlankLine_TwoResults(GitOutputUtilsTest.java:27)`
Could you investigate those Windows test failures before the code is merged?

@MarkEWaite
Nice catch. My guess is its this line - https://github.com/jenkinsci/git-client-plugin/pull/199/files#diff-2a3315af197d8897c3ed957db727fb37R21
The code is using Java's line.separator. Obviously this is wrong. Forgot to circle back to that.
Maybe the line separator should be passed into firstNonBlankLine as a parameter?
Not sure how git would return the result with blank line on Windows. Would it use the native CRLF or just LF? Maybe querying core.autocrlf would work. Not sure the correct approach here.. Thoughts?
Maybe your original idea of simply trimming the output is the better approach. Although then we don't cover the scenario where multiple results are returned (which should never happen right?).
Obviously I can change the test to use Java's line.separator instead of simply doing "\n" and it will pass but that seems wrong.
Or maybe the test is just rubbish.. Or both :)
Thoughts?
@ndeloof Maybe you have some thoughts here as well?
Cheers

I hadn't considered making the change in the test until you suggested it.  I replaced the test references to "\n" with EOL, a constant copy of line.separator.  That was enough to allow the tests to pass on Windows and Linux.
It is especially challenging that the change is fixing a problem which we don't know how to duplicate.  Refer to c167579d47e329b4689cb9f776a2da363a329836 to see if you think my change is of interest.

After reading stackoverflow split Java string I think we may need to reconsider the use of the line.separator property.  Isn't the use of line.separator assuming that the "git rev-parse" command will output lines separated by the same line separator that java uses?  Is that a safe assumption?
Since this is always parsing the output of "git rev-parse", I don't think it is as risky as the conditions described in the article.  The article talks about reading files from arbitrary sources, etc.  That's not the case which this code needs to support.

@MarkEWaite

Isn't the use of line.separator assuming that the "git rev-parse" command will output lines separated by the same line separator that java uses? Is that a safe assumption?

Yeah this is my concern as well. I have no idea if the assumption is safe at this point. I can experiment in a Windows VM to see which line ending git uses by default but I do agree that simply trimming output as you originally suggested is a better option here, especially, as you mentioned, we are only using this for git rev-parse at the moment.
I'll try and find some time today to make the changes if you agree?

Yes, I think a trim of the output may be the safest thing in this context.

Hey @MarkEWaite,
I've removed the new classes and basically replaced the instances where I was calling firstNonBlankLine to use Apache Commons StringUtils.trim().
I have no idea how to test this scenario without extracting the trim call out to test in isolation, which seems a bit redundant.

Any further ideas of ways to duplicate the actual conditions that the customer is seeing?

Sorry no clue here. This also makes writing an end-to-end test case pretty hard :(.
Any suggestions for how to add a test case for this (without just mocking out everything I guess) ?

I squashed and rebased the change so that it would appear as a single change rather than the series of commits used to arrive at the final solution.  It is now on the master branch and will be included in the next release of the git client plugin.