BlockDurationMinutes is not a valid parameter

Gitlab runner errors because of this amazonec2-block-duration-minutes
Which prevents it from launching a spot instance.
Error in logs:
Aug 27 17:33:17 ip-10-200-29-136 gitlab-runner: #033[31;1mERROR: Error creating machine: Error in driver during machine creation: Error request spot instance: InvalidParameterValue: BlockDurationMinutes is not a valid parameter.#033[0;m  #033[31;1mdriver#033[0;m=amazonec2 #033[31;1mname#033[0;m=runner-cymmmn5c-auto-scale-1630085593-79a7822a #033[31;1moperation#033[0;m=create

The offending line is "amazonec2-block-duration-minutes=${spot_block_duration}",
https://github.com/aleks-fofanov/terraform-gitlab-runner-aws-spot/blob/master/templates/gitlab.runner.config.template.toml#L50
After removing this manually from the manager EC2 instance /etc/gitlab-runner/config.toml spot instances launch and no error.
From AWS Documentation: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html

BlockDurationMinutes
Deprecated.
Type: Integer
Required: No

Attempting to comment out spot_block_duration the below message is given back:
 The given value is not suitable for child module variable "runner" defined at .terraform/modules/runner/variables.tf:102,1-18: attributes "spot_block_duration" are required.

Supporting documentation depreciation notice:
https://github.com/docker/machine/issues/4893
Will this be fixed anytime soon as doing manual editing in the manager instance isn't practical and for repeatability this isn't possible.

Thanks for bringing this up @jimsmith .
This is addressed in #4 . Just pin your module to 2.2.0 and set spot_block_duration = 0 in the runner config object and amazonec2-block-duration-minutes param won't be included in the docker machine config.
To allow other customers which still can use block duration parameter I decided to make this parameter optional instead of removing it. Let me please know if that helps so I can close the issue.
Thank you.

@aleks-fofanov thanks for that, that indeed helps.


FileSelector defaults to the first globbed path

Addresses the first issue raised https://github.com/holoviz/param/issues/545, i.e. that the FileSelector parameter is not updating its default value to the first path found in objects, which is inconsistent with how Selector works.

Looks good to me!
Right now it looks like the glob is run when the parameter is declared which is probably what I would expect. Unlike Selector, the set of 'objects' is implicit so I think it might be worth stating in the docstring that the glob is run at the point where the parameter is declared.

Thanks for the review! I'll update the docstring in another PR.


Add ability to define tsconfig.json path

Closes #10
This uses cosmiconfig so you can provide config via:

a jest-runner-tsc property in your package.json
a jest-runner-tsc.config.js JS file
a .jest-runner-tscrc JSON file

Thanks for this feature!

@azz No problem, happy to help


Make into_arrow truly zero-copy for Primitive, VarBin

Before we would go through the ArrowBuffer::from(&[u8]) constructor, which would actually do a full data copy.
Now we're just doing pointer tricks. Shaved about 30ms (~7%) off of the tpc-h benchmark.

I'm using this as a more general improve-the-benchmarks PR, found a few more allocations and rewriting the vortex memory scan exec, should have something ready to ship later this morning

Rewrote the datafusion operators to operate over ChunkedArray rather than very large single arrays. All operators still operate as a single partition, but now they emit streams with one element per chunk.
This plus eliminating all of the extra allocations brings us down to parity with DataFusion's builtin Arrow MemTable for TPC-H query 1.

The spread between vortex-pushdown and vortex-nopushdown is all of the takeing, particularly for VarBin, which requires rebuilding the whole string table. If we had VarBinView supported in datafusion, this operation would be considerably faster.


Sphinx 4: Custom CSS injection does not work

What's happening?
Custom CSS set in the configuration file, is not affecting the page, on Sphinx 4.
Reproducer
Discussed in https://github.com/pradyunsg/furo/discussions/162

Build a documentation set, with Furo's custom CSS overrides (per https://pradyunsg.me/furo/customisation/colors/#defining-overrides-for-defaults for example)
Notice that the overrides are not in effect.

Expectation
Looks like Sphinx 4's stylesheet changes, affected more than just pygments stuff (noticed in  e49e5dde09a71998dc334929921083e8b071fc6c).

As I understand the issue, it is related to the fact that Sphinx 4.x adds theme stylesheet in css_files.
It seems that applying an exclusion in base.html like it is already done for pygments_dark is a way to fix this without breaking Sphinx 3 ?
I try this fix (crappy way to write the string condition in a way that ignores digest=... fragment) and it seems to work as expected. furo.css is not added after the inlined style tag.
    {%- for path in css_files -%}
    {% if not path.filename.startswith("pygments_dark") and not pathto(furo_assets['style'], 1).startswith(path.filename) -%}
      {{ css_tag(path) }}
    {%- endif %}

Yea, basically. From the Sphinx changelog:

html theme: Move a script tag for documentation_options.js in
basic/layout.html to script_files variable
html theme: Move CSS tags in basic/layout.html to css_files variable

I, somehow, completely missed this.

This should be fixed by d3a43e630dcdcf67540270518e4354d3ebe707e6, taking a more nuclear option of dropping the digests and leaning into Sphinx's default behaviour.

Released in beta37.

Is this confirmed to be fixed? I'm still seeing this locally. I can link code if needed.

Yes. Please open a discussion topic for this.

Don't have a minimal example yet, but this reproduces with Sphinx 4.4. Version 4.3 works as expected.


Move all ring-related metrics into ring.go; prefix them with cortex_ring

Also, break cortext_ring_ingesters down by state - healthy or unhealthy.  This involved moving the ingester heartbeat timeout into the ring struct.

:+1:


Can't set panelState in code

Hi there,
First, I set the panel state in xml:  sothree:umanoInitialState="hidden"
Then in onCreate function of Activity I have this code:
if( mSlidingUpLayout != null &&
(mSlidingUpLayout.getPanelState() == SlidingUpPanelLayout.PanelState.ANCHORED ||
mSlidingUpLayout.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED ||
mSlidingUpLayout.getPanelState() == SlidingUpPanelLayout.PanelState.HIDDEN))
{
mSlidingUpLayout.setPanelState(SlidingUpPanelLayout.PanelState.EXPANDED);
Toast.makeText(getApplicationContext(), mSlidingUpLayout.getPanelState().toString() , Toast.LENGTH_SHORT).show();
}
The panel still hidden, and the text of toast still Hidden?
I don't know how to fix it. Can you help me to solve it?
My thanks,

Try running it inside of a handler.

I don't know what are you recommending?

Example here http://stackoverflow.com/questions/1921514/how-to-run-a-runnable-thread-in-android


make DNS1123 validation more verbose

bug: https://bugzilla.redhat.com/show_bug.cgi?id=1710901

Pull Request Test Coverage Report for Build 1849

41 of 44 (93.18%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 82.526%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/utils/validations.js
28
31
90.32%

Totals

Change from base Build 2178:
0.02%

Covered Lines:
4032

Relevant Lines:
4679

💛  - Coveralls

Needs rebase, otherwise lgtm

rebased


[$1000] Remove Jest test matrix

We added caching and github matrix to our Jest tests in this PR. Let's remove the matrix. Context in the PR discussion.
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0172a4a7d9f592a3ac
Upwork Job ID:<PHONE_NUMBER>856166400
Last Price Increase: 2023-01-06

proposal
name: Jest Unit Tests

on:
  workflow_call:
  pull_request:
    types: [opened, synchronize]
    branches-ignore: [staging, production]

jobs:
  test:
    if: ${{ github.actor != 'OSBotify' || github.event_name == 'workflow_call' }}
    runs-on: ubuntu-latest
    steps:
      - uses: Expensify/App/.github/actions/composite/setupNode@main

      # If automatic signing is enabled, iOS builds will fail, so ensure we always have the proper profile specified
      - name: Check Provisioning Style
        run: |
          if grep -q 'PROVISIONING_PROFILE_SPECIFIER = chat_expensify_appstore' ios/NewExpensify.xcodeproj/project.pbxproj; then
            exit 0
          else
            echo "Error: Automatic provisioning style is not allowed!"
            exit 1
          fi
      - name: Jest Unit Tests
        run: npm run test
        env:
          CI: true

      - name: Pull Request Tests
        run: tests/unit/getPullRequestsMergedBetweenTest.sh

      - name: Cache Jest cache
        id: cache-jest-cache
        uses: actions/cache@v1
        with:
          path: .jest-cache
          key: ${{ runner.os }}-jest

      - name: All Unit Tests
        if: ${{ fromJSON(matrix.chunk) < fromJSON(env.CHUNKS) }}
        # Split the jest based test files in multiple chunks/groups and then execute them in parallel in different jobs/runners.
        run: npx jest --listTests --json | jq -cM '[_nwise(length / ${{ fromJSON(needs.config.outputs.JEST_CHUNKS) }} | ceil)]' | jq '[[]] + .' | jq '.[${{ fromJSON(matrix.chunk) }}] | .[] | @text' | xargs npm test

      - name: Pull Request Tests
        # Pull request related tests will be run in separate runner in parallel.
        if: ${{ fromJSON(matrix.chunk) == fromJSON(env.CHUNKS) }}
        run: tests/unit/getPullRequestsMergedBetweenTest.sh

Proposal
We can remove the matrix. I noticed @roryabraham added a method to get the number of CPU cores and assign maximum workers accordingly. If that is an intended feature to implement, we can add that too.
A sample run with this config can be found here - https://github.com/Prince-Mendiratta/expensify-app/actions/runs/3859206702
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 72dde5fe38..72099e68c9 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -6,37 +6,17 @@ on:
     types: [opened, synchronize]
     branches-ignore: [staging, production]

-env:
-  # Number of parallel jobs for jest tests
-  CHUNKS: 3
 jobs:
-  config:
-    runs-on: ubuntu-latest
-    name: Define matrix parameters
-    outputs:
-      MATRIX: ${{ steps.set-matrix.outputs.MATRIX }}
-      JEST_CHUNKS: ${{ steps.set-matrix.outputs.JEST_CHUNKS }}
-    steps:
-      - name: Set Matrix
-        id: set-matrix
-        uses: actions/github-script@v6
-        with:
-          # Generate matrix array i.e. [0, 1, 2, ...., CHUNKS - 1] for test job
-          script: |
-            core.setOutput('MATRIX', Array.from({ length: Number(process.env.CHUNKS) }, (v, i) => i + 1));
-            core.setOutput('JEST_CHUNKS', Number(process.env.CHUNKS) - 1);
-
   test:
-    needs: config
     if: ${{ github.actor != 'OSBotify' || github.event_name == 'workflow_call' }}
     runs-on: ubuntu-latest
-    name: test (job ${{ fromJSON(matrix.chunk) }})
+    name: test (shard ${{ fromJSON(matrix.chunk) }})
     env:
       CI: true
     strategy:
       fail-fast: false
       matrix:
-        chunk: ${{fromJson(needs.config.outputs.MATRIX)}}
+        chunk: [1, 2, 3]

     steps:
       # This action checks-out the repository, so the workflow can access it.
@@ -55,7 +35,11 @@ jobs:
             echo "Error: Automatic provisioning style is not allowed!"
             exit 1
           fi
-
+
+      - name: Get number of CPU cores
+        id: cpu-cores
+        uses: SimenB/github-actions-cpu-cores@31e91de0f8654375a21e8e83078be625380e2b18
+
       - name: Cache Jest cache
         id: cache-jest-cache
         uses: actions/cache@v1
@@ -64,11 +48,9 @@ jobs:
           key: ${{ runner.os }}-jest

       - name: All Unit Tests
-        if: ${{ fromJSON(matrix.chunk) < fromJSON(env.CHUNKS) }}
         # Split the jest based test files in multiple chunks/groups and then execute them in parallel in different jobs/runners.
-        run: npx jest --listTests --json | jq -cM '[_nwise(length / ${{ fromJSON(needs.config.outputs.JEST_CHUNKS) }} | ceil)]' | jq '[[]] + .' | jq '.[${{ fromJSON(matrix.chunk) }}] | .[] | @text' | xargs npm test
+        run: npx jest --shard=${{ fromJSON(matrix.chunk) }}/${{ strategy.job-total }} --max-workers ${{ steps.cpu-cores.outputs.count }}

       - name: Pull Request Tests
         # Pull request related tests will be run in separate runner in parallel.
-        if: ${{ fromJSON(matrix.chunk) == fromJSON(env.CHUNKS) }}
         run: tests/unit/getPullRequestsMergedBetweenTest.sh

sorry for the lack of communication on my part here. I have a draft PR which reimplements the matrix in a much simpler way using Jest's --shard feature. I'm partial to this approach because it resolves most of my concerns with the matrix approach. https://github.com/Expensify/App/pull/13943

Updated Proposal
I've been working and testing different kinds of configurations and have added my understandings through my tests. We can choose either of these workflows depending on what we're looking for.
Background
In the current implementation, the OP of the PR manually divided the jest tests into chunks and then executed them as batches/groups. This is a approach that was used in lower versions of jest, where the shard argument was not supported and tests had to be divided manually. However, using the shard argument, jest automatically constructs the batches in an intelligent and non complex manner. Thus, we can directly use the matrix feature of Github actions along with the shard argument in jest to divide tests in an easy to debug and execute manner.
Testing workflow
I've forked the repo and create new tests with different configurations. I then created a PR to the repo through another account, modifying just text files to run the Github Actions. Then, I analyse how the results differ. The two major contributing factors to the time are-

Installing node dependencies
Running jest tests

Both of them take around 1:30 - 3:00 minutes each, depending on the optimization.
With the use of jest cache, the time for jest tests can be reduced to less than 1 minute, per shard.
Base

No sharding, single runner.
.npm with cache and npm ci executed.
Directly executes npm test
No caching, other than .npm cache from setupNode
Takes around 3-6 minutes, each time. Each major task of the two is completed in 1:30-2:30 minutes.

Workflow log - https://github.com/Prince-Mendiratta/expensify-app/actions/workflows/test.yml
Config file - https://github.com/Prince-Mendiratta/expensify-app/blob/main/.github/workflows/test.yml
Results:

Jest Optimisation

3 shards.
.npm with cache and npm ci executed.
Uses the --shard and --max-workers config in jest
Uses jest cache.
Cache miss takes up around 5 minutes to complete from scratch
Takes 2:50-3:50 minutes to complete.

Workflow log - https://github.com/Prince-Mendiratta/expensify-app/actions/workflows/test2.yml
Config file - https://github.com/Prince-Mendiratta/expensify-app/blob/main/.github/workflows/test2.yml
Results:

2 shards, Jest optimised

2 shards.
.npm with cache and npm ci executed.
Uses the --shard and --max-workers config in jest
Uses jest cache.
Cache miss takes up around 5 minutes to complete from scratch
Takes 3:30-4:30 minutes to complete.

Workflow log - https://github.com/Prince-Mendiratta/expensify-app/actions/workflows/test5.yml
Config file - https://github.com/Prince-Mendiratta/expensify-app/blob/main/.github/workflows/test5.yml
Results:

3 shards, cached node_modules

3 shards.
Uses the --shard and --max-workers config in jest
Does not use jest cache.
Caches node_modules based on the hash of package-lock.json, inducing cache miss and reinstalling dependencies if there have been any changes to the package-json.lock file
If node_modules cache hit, skips installing node_modules and reuses cache.
If cache does not exist for the hash of that particular package-lock.json, reinstalls node_modules with npm ci
Cache miss takes up around 5 minutes to complete from scratch
Takes 3 minutes consistently to complete with the tests.

Workflow log - https://github.com/Prince-Mendiratta/expensify-app/actions/workflows/test6.yml
Config file - https://github.com/Prince-Mendiratta/expensify-app/blob/main/.github/workflows/test6.yml
Results:

3 shards, cached node_modules, jest cached

3 shards.
Uses the --shard and --max-workers config in jest
Caches jest.
Caches node_modules based on the hash of package-lock.json, inducing cache miss and reinstalling dependencies if there have been any changes to the package-json.lock file
If node_modules cache hit, skips installing node_modules and reuses cache.
If cache does not exist for the hash of that particular package-lock.json, reinstalls node_modules with npm ci
Cache miss takes up around 5 minutes to complete from scratch.
Takes 1:50-2:30 minutes consistently to complete with the tests.

discussed 1:1 with @thienlnam and I'll take this over as I have more context.

I'll go ahead and unassign @Santhosh-Sellavel and I, but let me know if I am missing something here @roryabraham .

@roryabraham Just wondering, is it a bad idea to cache node_modules as well as suggested in my proposal, considering the use case for Expensify?

This issue has not been updated in over 14 days. @roryabraham eroding to Weekly issue.

Triggered auto assignment to Contributor Plus for review of internal employee PR - @mananjadhav (Internal)

PR ready for review: https://github.com/Expensify/App/pull/13943

Reviewing label has been removed, please complete the "BugZero Checklist".

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.2.68-0 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/13943

If no regressions arise, payment will be issued on 2023-02-17. :confetti_ball:
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

[ ] External issue reporter
[ ] Contributor that fixed the issue
[ ] Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

Merged PR within 3 business days of assignment - 50% bonus
Merged PR more than 9 business days after assignment - 50% penalty

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ] [@roryabraham] The PR that introduced the bug has been identified. Link to the PR:
[ ] [@roryabraham] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] [@roryabraham] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] [@roryabraham] Propose regression test steps to ensure the same bug will not reach production again.
[ ] [] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

No payments due here, so we're done


delete-unnused-aws-loggroups - document what constitutes "unused"

It would be really useful to document exactly what determines whether a log group is "unused"
I don't know rust but as far as I can tell from the source, it seems to only be looking for (a) lambda logs corresponding to lambda functions that don't exist, (b) codebuild logs corresponding to projects that don't exist. Other types of logs are left untouched.

Yes your statement is correct. At least for the moment.
However you do have a point in writing something in the readme. I should be able to do this this weekend.

Updated documentation can be found here:
https://github.com/itmettkeDE/lambdas/tree/main/delete-unnused-aws-loggroups#delete-unnused-aws-loggroups


User registration

At some point in the user flow, provide prompt to invite user to register. (might be after search or before download\upload)


tar file to large for dockerbuild to handle

I have a tar file which is 1.1gb, it fails to send to docker due to stack below. Is there a way to do this streaming and not using fs.readFileSync?
dockerode called like so:
docker.buildImage('file.tar', cb)

stack
buffer.js:194
      this.parent = new SlowBuffer(this.length);
                    ^
RangeError: length > kMaxLength
    at new Buffer (buffer.js:194:21)
    at Object.fs.readFileSync (fs.js:309:16)
    at Modem.dial (/source/node_modules/dockerode/node_modules/docker-modem/lib/modem.js:117:17)
    at Docker.buildImage (/source/node_modules/dockerode/lib/docker.js:146:14)
    at Builder.startImageBuild (/source/lib/steps/build.js:45:15)

I just found out you can pass tar stream as argument, might want to include that in the README and/or code comment?

There's already an example of this in the examples folder :)
https://github.com/apocas/dockerode/blob/master/examples/build/build_img_cwd.js
I guess I will also add a note to the readme saying it also accepts a stream.


FancyZones: Layout Shortcut for Different Layouts Per Monitor (or shortcut only affects one monitor)

Description of the new feature / enhancement
I utilize a shortcut key often for my main monitor depending on what I am doing.
I would however not want the shortcut to affect the second monitor OR have a shortcut save a different layout per monitor.
Scenario when this would be used?
Anytime you're using shortcuts to switch layouts quickly, but only want to affect one monitor or want a different layout per monitor.
Supporting information
No response

Need this!

Say I have two monitors:
We'll call monitor 1, LM (left monitor), and monitor 2 RM (right monitor).
I have two custom zones established in Fancy Zones:
Custom Zone 1: "Default LM" (Ctrl+Alt+Win+1) and Custom Zone 2: "Default RM" (Ctrl+Alt+Win+2)
Currently, when trying to apply Default LM to LM - it automatically applies the Default LM layout to RM as well. I would like to be able to apply custom layouts via the keyboard shortcut(s) to the monitor where either the mouse cursor is active or the monitor with focus.
Scenario when this would be used?
When trying to apply custom zones to specific monitors via the keyboard shortcut(s).


'--ndet' flag

Hi Jun,
Thank you so much for sharing this with everyone. I'm coming from the nnU-Net repository after researching some of the issues posted.
I'm getting ready to implement your repository but noticed the --ndet flag at the end of the suggested run command python run/run_training.py 3d_fullres nnUNetTrainer_Dice TaskXX_MY_DATASET FOLD --ndet. I'm not familiar with what this flag does, and I can't seem to find any information about it anywhere. My best guess is that it is for non-deterministic training but I think nnU-Net does this by default.
Any info is much appreciated. Take care!
Andres

Hi @abergsneider ,
Thanks for your interest very much.
I guess you are using the nnU-Net V2. However, my repo was developed with nnU-Net V1.
If you want to use the Dice loss to train your model, I would recommend nnUNetTrainerV2_Loss_Dice.py.
nnUNet_train 3d_lowres nnUNetTrainerV2_Loss_Dice TaskXXX_MYTASK FOLD

Hope this answer can help you.  Also, please feel free to raise any questions.
Best regards,
Jun

Hi @abergsneider ,
Thanks for your interest very much.
I guess you are using the nnU-Net V2. However, my repo was developed with nnU-Net V1.
If you want to use the Dice loss to train your model, I would recommend nnUNetTrainerV2_Loss_Dice.py.
nnUNet_train 3d_lowres nnUNetTrainerV2_Loss_Dice TaskXXX_MYTASK FOLD

Hope this answer can help you.  Also, please feel free to raise any questions.
Best regards,
Jun

Thanks @JunMa11, I will go ahead and play around with those loss functions. And thanks for kindly pointing me in the right direction.
Best,
Andres

Thanks @JunMa11, I will go ahead and play around with those loss functions. And thanks for kindly pointing me in the right direction.
Best,
Andres


rendom forst testing

two testing cases, 1 . rondom forst is done on pyspark dataframe, 2. test is done on pandas

I checked the PR, very cool to see that you took two different approaches (Spark's Random Forest and Scikit-Learn's Random Forest).

The first file gives correct and expected results: the data is really insufficient, but the ROC curve goes above diagonal (diagonal is "random guessing"), so the method manages to get a little bit of information even from this poor data.

The second file is honestly a shock to me, it works way better than I would imagine. Sure, we have over 5000 points - but predicting so well without specialised geological data is really unexpected. Well done!

This means we are back on the timeline for your thesis. Please check the requirements, and a couple theses of other people who got a 5, to see how much programming stuff you would need to show in the MSc thesis. The second result is great, but I would guess it is not enough, and you should show more stuff around it: maybe compare to other models, maybe try other data sources.


⚠ SceneTime has degraded performance

In 89ff04b, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1380 ms

Resolved: SceneTime performance has improved in ae5114c after 6 minutes.


check on cardinality for shex in noctua-dev

It appears the cardinality constraints in the schema are not being checked in the code running live on noctua-dev today.

on wonky model..  seems okay.


v-ryzube/build-release-custom-task

Added a step to add-build-task.md explaining how to create a build and release pipeline for an Azure DevOps custom task.

@ZuberR97 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off

@ktoliver are you able to merge this PR please? I am not authorized. Thanks for your help!

@ktoliver are you able to merge this PR please? I am not authorized. Thanks for your help!

Yes! Sure thing. I'll make a few edits and then merge. Thanks.

Actually, we'll need to move this commit to the private repo so we can rename the image file that uses uppercase letters; only lowercase letters, numbers, and hyphens are allowed in file names. There are some other blocking quality criteria that we can fix in the new PR, like removing locales from microsoft.com URLs. The original contributor will still be acknowledge as contributor. I'll do this later this morning.

@ZuberR97 @chcomley The commits in the PR were moved to private repo PR https://github.com/MicrosoftDocs/azure-devops-docs-pr/pull/1644. The new PR will be assigned to @chcomley for review after blocking issues are resolved. We'll close this PR. Thanks.

Updated private repo PR: https://github.com/MicrosoftDocs/azure-devops-docs-pr/pull/1779
We'll close this PR.


Update README.md

Updates based on rollup warning messages.
options.entry is now options.input
options.dest is now options.output.file
options.format is now options.output.format

Good catch, thank you!


Add order status direct changes to history

When order fulfillment or payment status is changed directly (not adding entry on history list), would be good to wait some time, then check if the respective history entry was created, if not, create it.

https://github.com/ecomclub/procedures/commit/e1bcaaf3c26be22b525381c614b97d4aa07dde03


Proposal for rasdaman jupyter notebook template

I have updated the repo with the newest version of the jupyter notebook for the rasdaman ML UDF proof of concept. This will be the endpoint for the Resource metadata under the Reference subheader.
It would be nice if we agree on the structure of this notebook so that it can later be used as a template for the other ML UDFs. Maybe even use it to programmatically generate the preamble of new ML notebooks with the metadata provided by Resource metadata.

Indeed, good to streamline it a bit and clarify what should go into the resource metadata, a reference notebook (if available) and an example (also a notebook)? And how one can automatically be created from another, otherwise it will be a lot of work to fill everything in and keep it in sync (as there might be multiple variants and versions of models).

Maybe this should be moved to the central FAIRiCUBE Hub issue list?

my 2 cents:

don't know what a reference notebook is. We planned to do just the example one.
I do not believe we can automate this fully, data are just too heterogeneous and need different handling.


Restricting Access by IP Address

The Problem
I'm using the reverse proxy to give simple domain names to a couple of dozen services all running on docker in my home so I don't have to remember what random port the container's web interface is on. I suspect this use case is quite common (see #137, #135 as similar examples). However, this potentially exposes my proxy hosts to the internet at large, and I don't want public access to these services.
The current Access list will let me put a basic auth "firewall" between the outside world and my private services, but it also complicates access for legitimate access (particularly since password managers can't always fill out basic auth requests, and strong passwords are highly encouraged for anything public).
The Solution
Expand the Access Lists to allow restriction by IP address in addition to basic auth. The NGINX documentation actually has an amazing example that describes exactly what we're after.
I've made a mockup of the revised "New Access List" modal (the HTML can be found in a gist here).

The goal of the UI changes is to keep things simple and approachable even for users who may not understand what's going on under the hood.  No other UI changes would be necessary. I'm not certain of the extent of back-end changes required at this point.
Alternatives
This configuration can be achieved by utilizing the advanced -> Custom Nginx Configuration feature already built into the application. However, there are a few issues/concerns with implementing IP restriction this way:

It requires the user to have an understanding of NGINX configuration
Changes/updates must be applied to every proxy host individually
It's not obvious from the proxy hosts list that there is any access control enabled (or conversely if you've forgotten to apply access restrictions to a host)

I'm willing to work on a PR on this as well, but I'm not intimately familiar with the js libraries being used so I may only be able to provide an 80% solution before needing some assistance.

Awesome @Indemnity83 ,  I was looking for this as well. Is there any way I can help you with? I am not familiar either, but I am sure we can figure it out!

This was merged in with #360  🎉

this doesnt seam to actually stop anything for me... if I put allow a specific internal ip and leave the block all at the end i can still hit the domain from outside my network.

this doesnt seam to actually stop anything for me... if I put allow a specific internal ip and leave the block all at the end i can still hit the domain from outside my network.

Can I restrict that a host can only be accessed by a specific IP? I want to restrict only one hots, where is my served as bkp running with web interface.

It doesn't seem to work for me also


[BUG] Performance issue using eitinject plugin

Bug description:
Plug-in "eitinject" performance issue adding over 300 EIT services
How to reproduce:
create EIT for 300 services (use generator-eit.py script in attached zip file) and inject them using eitinject plug-in with tsp command:
tsp --debug=1 -I ip <input-ip:port> -P eitinject --files="*.xml" --other --cycle-pf-other=5 --cycle-schedule-other-prime=30 --cycle-schedule-other-later=60 --ts-id=6 -b 3000000 --time=<time> -O ip <output-ip:port>

=> 100% CPU reached and no data on output.
Expected behavior:
output bitrate should be same as input with EIT/o injected in.
Errors and logs:

[be sure to surround verbatim log lines with "~~~" lines]

Environment:

OS: Linux
OS version: debian 12 (bookworm)
TSDuck full version: 3.38.3802
Installation type: build/install
generator-eit.zip

Additional information:
Input TS file:  45 Mbit/s (null packet bitrate +/- 20 Mbit/s), 5 services, no EIT present.

Hi,
After investigation, the problem is caused by ts::EITGenerator::provideSection with 2 hot spots:

updateForNewTime() call
inter section interval adjustment

As this code is called at each processed packet, the overhead becomes huge when a lot of services created.
I am testing a fix that resolves the issue. Need to be reviewed, not sure of the whole impact.

Hi,
First, TSDuck is a test and lab tool, not a production system. Inserting EIT's is complex. The TSDuck implementation is designed to be as accurate as possible to produce test streams but it is not tuned for large systems. Optimizing it for large production systems is outside the scope of a free and open source project with one single maintainer working on it on spare time. If production systems are expensive, there is a reason for it.
The performances of eitinject are a well-known limitation of TSDuck (not a bug).
Second, when you say "no output", what is the precise behavior ? No packet at all or no EIT? In the latter case, see the reference documentation of tsp in the TSDuck user's guide, especially the section on inserting packets. In short, no stuffing on input means no free space in the TS and no inserted data. See the various options in the user's guide.

Second, when you say "no output", what is the precise behavior ? No packet at all or no EIT? In the latter case, see the reference documentation of tsp in the TSDuck user's guide, especially the section on inserting packets. In short, no stuffing on input means no free space in the TS and no inserted data. See the various options in the user's guide.

To anwer your question, there is no packet at all because of 100% CPU. Sometimes few Ko released but that's all.
I guess EIT insertion is complex, We use tsduck in our test framework, not in production. It is a great tool we are using a lot and we would be happy to contribute to enhance some useful features like table injection.
From what I saw, just making light temporisation on time refresh, for instance every 100 ms instead of at every packet, would fix the issue. Do we need precision at millisecond for EIT events?


improve launch.sh

@miyazakifuki
Could you test with the latest launch.sh?

How do you envision the procedure for the testing method?
I tested in the following order:
git checkout daisukes/improve-launch
./launch  (without option because delete y option)

As a result, the server did not start.
I tried again after ./build-docker.sh -w -o, but the result was the same.

Sorry. When I executed ./build-docker.sh -w -o, the following error occurred:
build host_ws
--- stderr: cabot_common
failed to create symbolic link '/home/cabot/cabot-ros2/host_ws/build/cabot_common/ament_cmake_python/cabot_common/cabot_common' because existing path cannot be removed: Is a directory
make[2]: *** [CMakeFiles/ament_cmake_python_symlink_cabot_common.dir/build.make:57: CMakeFiles/ament_cmake_python_symlink_cabot_common] \u30a8\u30e9\u30fc 1
make[1]: *** [CMakeFiles/Makefile2:249: CMakeFiles/ament_cmake_python_symlink_cabot_common.dir/all] \u30a8\u30e9\u30fc 2
make[1]: *** \u672a\u5b8c\u4e86\u306e\u30b8\u30e7\u30d6\u3092\u5f85\u3063\u3066\u3044\u307e\u3059....
make: *** [Makefile:141: all] \u30a8\u30e9\u30fc 2
---
Failed   <<< cabot_common [1.80s, exited with code 2]

Please try to build it again, or clean host_ws/install and host_ws/build before the build

@miyazakifuki
Just a reminder

The new launch.sh assumes that the location of cabot_sites is under top directory, not under cabot-navigation, correct?"
old
cabot_site_dir=$(find $scriptdir/cabot-navigation/cabot_sites -name $CABOT_SITE | head -1)
./server-launch.sh -d $cabot_site_dir/server_data

new
./server-launch.sh -c -p $CABOT_SITE
cabot_site_dir=$(find $scriptdir/cabot_sites -name $OPTARG | head -1)
data_dir=${cabot_site_dir}/server_data

The new launch.sh assumes that the location of cabot_sites is under top directory, not under cabot-navigation, correct?"

Good catch! Thank you!


Unify the automatic reconnection mechanism of turms-client-js/java/swift (including tests)

Done. The tests will be added later.


Add daily call endpoint

Added new template for daily calls via CallPower. By using a separate template, we can adjust disclaimers and required fields in html, instead of javascript.

@jlev Pushed up a revision that makes the existing template modular instead of using a largely duplicate template, and handles the campaign logic in CallForm.js, where we could easily add support for more campaigns if necessary. If this works for you let me know and I'll squash and merge.

This works for me for this use case, but I thought having more flexibility
in the templates would be nice in case there are content changes in the
future. Either way though, the functionality is what I care about.
+1 to merge
On Tue, Jun 13, 2017 at 2:11 PM Mike Morris<EMAIL_ADDRESS>wrote:

@jlev https://github.com/jlev Pushed up a revision that makes the
existing template modular instead of using a largely duplicate template,
and handles the campaign logic in CallForm.js, where we could easily add
support for more campaigns if necessary. If this works for you let me know
and I'll squash and merge.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/fightforthefuture/battleforthenet/pull/49#issuecomment-308096032,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AASAND9eimax9FC3bzrbJbNMz9nrG8QXks5sDnxRgaJpZM4N2aMU
.

--
on mobile, please excuse typos and brevity

We can continue making the template more flexible as needed, like for instance if we want to replace the static header in the template with
<%=header%>
 to change the content based on different call campaigns. This lets us reuse a single DRY (don't repeat yourself) template, to avoid duplicate code and avoid making any HTML changes in multiple places.


Move files to proper locations. Add idea iml file. Add gradlew

When you want to use gradlew, it is recommended to add the gradlew (and gradle?) files to the repository. That's what I found on their website.
I added the RoddyToolLib project to our RoddyInfra project map. For this, the IML is necessary. That's also much closer to the structure we already have.
I also moved the files from src/main/groovy to src and the test files to a test folder. Idea uses this setup and struggled with the former one.

You can do the same things for BatchEuphoria! Be aware, that I also renamed the IOHelper class back to RoddyIOHelper. I want to keep things with as few changes as possible now. I know, the suggestion came from me, but I know think it is much better to create as few trouble as possible :)

Could you please re-review?


Broken in Pharo 9 - Calypso dependencies

Seems like it would be a great tool to debug a Seaside app running in a docker container in production...but it has a dependency on Calypso.

Yes, and it needs some more work in Pharo9 in general (and even more in Pharo10)


Merit/flaw Drop down bar

Submitter: Elliott Tuvey
Email<EMAIL_ADDRESS>Title says it all, the drop down bars for all of the merits and flaws don't seem to be working.

I appreciate the feedback. The title states the problem, but many people still use the site without that problem. Therefore, there must be a case wherein you receive the problem and others do not.
Knowing that, the title information then becomes insufficient to properly diagnose the problem and understand why the merit/flaw drop down bars are not working for you.
I will look into this, and attempt to solve the problem. However I cannot guarantee that I will understand how you got this issue to occur, and might not be able to reproduce the problem with little information based on your case.


[feature request] add pnpm supported

pnpm's market is increasing, some opensource project such as vuejs is fully moving to pnpm. It's better to add pnpm supported.

Until now, pnpm is still not supported🫤

Is there interest on the Paketo side for these changes? What scope would be acceptable?


Update with new azd features starting with chapter 6

when azd is ready to deploy Azure Cosmos DB:
https://github.com/Azure/azure-dev/issues/3066

[x] update chapter 6
[ ] update chapter 10 readme

azd up with 1.6 fails when publishing to ACR, probably because of this: https://github.com/Azure/azure-dev/issues/2980#issuecomment-1843495071

How to get 1.6:
https://github.com/Azure/azure-dev/pull/3164#issuecomment-1871648167

azd deploy with cosmos done


This is global affected?

I found that I use annotation to mock one final class in one test class, but this also affects other tests that not suppose to be mocked.
Is it possible to only mock the class when annotated in the test class specifically.

Hi @LintaoAmons ,
unfortunately it is not possible. Take a look at How does it work.
The extensions works by using class transformation during startup and so spock can do it's normal mocking.
Class transformation affects the entire JVM and it's not possible re-define classes back and forth. This only works if you are using a JVM with dcevm and even if this would be the case it would raise lots of problems with parallel test execution.

Is it possible to add some things like a toggle to the byte codes? Though the modification is globalwise but the toggle can switch on when found that the test class is annotated with mockable, and keep off otherwise.

Sounds more like you want to call the real implementation. That can be done with normal spock:
mock.someMethod() >> { callRealMethod() }

But it what can not be done
// modify visibility
test1 {
  checkIfMethodXIsProtected
}

// revert visibility
test2 {
  checkIfMethodXIsPrivate
}


there is no predict.py?

can you update the predict.py to drow the the mask image,please!thank you very much!

Actually, the code of generating mask images has been involved in the eval_binary.py and eval_multiple.py.


Godep stopped importing a dependency

I'm using a dependency that imports github.com/prometheus/common
godep version godep v71 (linux/amd64/go1.6) doesn't seems to import the github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg directory to vendor so I got a:
$ go install ./...
....
  imports github.com/prometheus/common/expfmt
  imports github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg: use of internal package not allowed

An old godep version (I believe v62) had imported github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg because the file was in vendor directory before. If I put the dependency by hand inside the vendor directory, the project compiles without any problem.
Linking to prometheus issue https://github.com/prometheus/common/issues/45

What does your Godeps.json file look like ?

I also faced this issue while building k8s.io/heapster project with updated github.com/boltdb/bolt, any update on this issue?

@mkumatag can you provide a copy of your Godeps.json file so @freeformz can have a look at it? I wasn't able to reproduce the problem afterwards.

I can't reproduce this. When I require "github.com/prometheus/common/expfmt" and godep save I get "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg" vendored. Can you explain which dep requires this? Is it vendored there? Do you have the same version vendored there on your GOPATH?

Closing this issue since the linked issues was also closed.


Disable Magic Code

We have built chatbot using bot V4 with Direct line channel.
I am trying to disable the magic code functionality by following steps mentioned in the bot framework official document (https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-direct-line-3-0-authentication?view=azure-bot-service-4.0).
Unfortunately steps have been specified for C# and Javas script in the official documentation but I am trying to achieve the same by ReactWebChat component.
Sample Code given below :
<ReactWebChat
directLine={this.state.directLine}
styleOptions={WEBCHAT}
User={{ id: 'dl_123', name: 'user_name' }}
disabled={!this.state.chatEnabled}
locale={this.state.locale}
store={store}
/>
But I am getting following error (error code : 400) : {code: "BadArgument", message: "tokenParameters is missing User."}
It would be great help if you can help me with Reactwebchat code to pass User to directline API
(https://directline.botframework.com/v3/directline/conversations)
C# Reference code is given below:
public class HomeController : Controller
{
public async Task Index()
{
var secret = GetSecret();
    HttpClient client = new HttpClient();

    HttpRequestMessage request = new HttpRequestMessage(
        HttpMethod.Post,
        $"https://directline.botframework.com/v3/directline/tokens/generate");

    request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", secret);

    var userId = $"dl_{Guid.NewGuid()}";

    request.Content = new StringContent(
        JsonConvert.SerializeObject(
            new { User = new { Id = userId } }),
            Encoding.UTF8,
            "application/json");

    var response = await client.SendAsync(request);
    string token = String.Empty;

    if (response.IsSuccessStatusCode)
    {
        var body = await response.Content.ReadAsStringAsync();
        token = JsonConvert.DeserializeObject<DirectLineToken>(body).token;
    }

    var config = new ChatConfig()
    {
        Token = token,
        UserId = userId
    };

    return View(config);
}

}
public class DirectLineToken
{
public string conversationId { get; set; }
public string token { get; set; }
public int expires_in { get; set; }
}
public class ChatConfig
{
public string Token { get; set; }
public string UserId { get; set; }
}

For your implementation, are you using a particular template or setup that you are drawing from? Or, do you have complete code that you could share for reproducing?

For your implementation, are you using a particular template or setup that you are drawing from? Or, do you have complete code that you could share for reproducing?

Hi Stevkan
We are using reactwebchat and which has been extended from botframework-webchat.
Sample code for your reference
<ReactWebChat
directLine={this.state.directLine}
styleOptions={WEBCHAT}
User={{ id: 'dl_123', name: 'user_name' }}
disabled={!this.state.chatEnabled}
locale={this.state.locale}
store={store}
/>
Please let me know if you need more information on the same.

Can you read over this blog post, Using WebChat with Azure Bot Services Authentication, and then verify the below questions for me? When reading, you shouldn't need to update your code with the provided example code as it looks like you already have all the necessary components in your bot. But, double check that you do.

Is the Direct Line channel is enabled in your bot's Channel's blade in Azure?
"Enhanced authentication options" has been enabled within the Direct Line channel?
You have added at least one trusted origin? This should be where your are hosting your bot.
That the user Id begins with "dl_". (I can see you do in your posted code, but it would be good to double check your actual code.)

If you've followed all the steps in the blog, the above is true, and it still isn't working, please try regenerating the Direct Line secret without changing any other settings and test again.

Is the Direct Line channel is enabled in your bot's Channel's blade in Azure? -	Yes
"Enhanced authentication options" has been enabled within the Direct Line channel?-	Yes
You have added at least one trusted origin? This should be where your are hosting your bot.-	Yes. Do you mean the bot messaging endpoint or the webchat ui endpoint??
That the user Id begins with "dl_". - 	Yes
We have also generated the new directline key, but it still generate the Magic code and we have to paste it in the Bot after user sign in.
Can assist with below queries:

We are not using Home controller, instead generating the access token via HTTP call using api : https://directline.botframework.com/v3/directline/tokens/generate, passing the auth header and User Json object. Like to know that it wont affect the magic code disability feature we are working on?
Do we have to change anything at AD application side, currently redirect URI is : https://token.botframework.com/.auth/web/redirect. Is it correct? Anything else we have to change at AD app side?
We are using AadV2 from Bot for OAuthCard sign in. Is this version fine?
Our overall bot is in Virtual assistant bot template, Is this version fine?

Thank you

You have added at least one trusted origin? This should be where your are hosting your bot.- Yes. Do you mean the bot messaging endpoint or the webchat ui endpoint??

This would be the URI the bot will be hosted at. For example, if I created a bot with a messaging endpoint of my-bot.azurewebsites.net/api/messages and am hosting that bot on a website via Web Chat at https://my-website.somewhere.com/help, I would enter https://my-website.somewhere.com as the trusted origin. Or, in my case, I run my bot and a web server locally. The bot is on port 3978 and the web server is on port 7000. So, I added http://localhost:8000 as the trusted origin.

We are not using Home controller, instead generating the access token via HTTP call using api : https://directline.botframework.com/v3/directline/tokens/generate, passing the auth header and User Json object. Like to know that it wont affect the magic code disability feature we are working on?

This shouldn't be an issue. In my test bot, which is JS-based, this is what I do. You mention you don't use the Home Controller, but your code above (which matches the code in the blog post) shows the API call being made under within it. Just want to make sure we are on the same page on this.

Do we have to change anything at AD application side, currently redirect URI is : https://token.botframework.com/.auth/web/redirect. Is it correct? Anything else we have to change at AD app side?

We are using AadV2 from Bot for OAuthCard sign in. Is this version fine?

That is the correct redirect URL and OAuth type. But, the AAD app registration is unrelated to enabling/disabling the magic code.

Our overall bot is in Virtual assistant bot template, Is this version fine?

It shouldn't matter.
Double check the trusted origin is setup correctly and let me know.

It worked, I earlier added only http://localhost, now i changed to http://localhost:3300 where my local UI is pointing and I was able to login without magic code.
This should have been mentioned in the azure doc, in the example they have given only http://localhost, no where mentioned of port.
Thank you for all your help.

Closing as resolved.


fix(frontend):column names in mv creation is ignored

I hereby agree to the terms of the Singularity Data, Inc. Contributor License Agreement.
What's changed and what's your intention?
PLEASE DO NOT LEAVE THIS EMPTY !!!
support column names assigned by the user in mv creation.
Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in ./risedev check (or alias, ./risedev c)

Refer to a related PR or issue link (optional)
#5955

Could you please also add some planner tests to show the user-specified names are used?

Already add the related plan test and e2e test.

Came up with another problem: Are column aliases still required if there are column names provided? e.g., `create materialized view mv(a) as select v1+1 from t;

Not necessarily needs to be handled in this PR. Can open another issue if this is a problem and not trivial to solve.


ONTAP: SVM Dashboard - Virus scan connections wrong scale

Describe the bug
In the Virus Scan Connections Active panel the sacle is logarithmic base 2 instead of linear. When there is no connection the timeseries still shows one connection left

Environment
Provide accurate information about the environment to help us reproduce the issue.

Harvest version: 22.11
Install method: NABox
ONTAP Version: 9.9.1 P6

To Reproduce

Verified in 23.03.


fix: fix vendor path

1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

[x] N
[ ] Y

2. What is the scope of this PR (e.g. component or file name):

3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):

[x] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Other

4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

[x] N
[ ] Y

5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

[x] Unit test
[ ] Integration test
[ ] Benchmark (add benchmark stats below)
[ ] Manual test (add detailed scripts or steps below)
[ ] Other

Pull Request Test Coverage Report for Build<PHONE_NUMBER>5
Details

42 of 88 (47.73%)  changed or added relevant lines in 2 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.06%) to 39.825%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/package/modfile.go
0
20
0.0%

pkg/client/client.go
42
68
61.76%

Files with Coverage Reduction
New Missed Lines
%

pkg/client/client.go
1
56.41%

Totals

Change from base Build<PHONE_NUMBER>4:
-0.06%

Covered Lines:
3049

Relevant Lines:
7656

💛  - Coveralls


error: cannot read property 'close' of null

getting this error during build:
Error: Cannot read property 'close' of null
    at Server.destroy (/Users/kutner/projects/bit-bin/node_modules/@prerenderer/prerenderer/es6/server.js:46:24)
    at Prerenderer.destroy (/Users/kutner/projects/bit-bin/node_modules/@prerenderer/prerenderer/es6/index.js:88:18)
    at PrerenderSPAPlugin.prerender (/Users/kutner/projects/bit-bin/node_modules/prerender-spa-plugin-next/dist/index.js:129:25)

seems like it is coming from this code:
https://github.com/JoshTheDerf/prerenderer/blob/7d33c93984118c3f5c1a6f65e9f14a34eadf2357/es6/server.js#L50
destroy () {
  this._nativeServer.close()
}

which is the express server serving the static files? any idea why it is happening?
Sometimes I get this error:
Error: Cannot read property 'close' of null
    at PuppeteerRenderer.destroy (/Users/kutner/projects/bit-bin/node_modules/@prerenderer/renderer-puppeteer/es6/renderer.js:140:21)
    at Prerenderer.destroy (/Users/kutner/projects/bit-bin/node_modules/@prerenderer/prerenderer/es6/index.js:87:20)
    at PrerenderSPAPlugin.prerender (/Users/kutner/projects/bit-bin/node_modules/prerender-spa-plugin-next/dist/index.js:129:25)

which is coming from puppeteer, which is related to https://github.com/puppeteer/puppeteer/issues/4197 and was probably fixed by https://github.com/puppeteer/puppeteer/pull/4276

Found it - I defined a server.proxy without the target option, and the initialization code at ./server did not catch the error, silently crushing the plugin.
Maybe we need a try catch on the entire .initialize() method?

I have finally released a full suite upgrade, the plugin is now available under @prerenderer/webpack-plugin which also has a fix for this issue and many more
I'm deprecating this package and archiving the repo


Remove workload per workgroup

Remove workload_per_wg in TranslationInfo.
In lowering exportOp in the tiling process, the shape of the root tensor is checked and if the shape is static, the workgroup count info is calculated and directly exposed as arith.constant, which can be used in RemoveTrivialLoops.

This is fantastic work!. Lets run benchmarks just in case. Ill review in detail in a bit, but overall this looks great!


Update version in azure-spring-boot-samples. Sample PR: azure-spring-boot-samples#62.

Please check parent issue (#25581) to get more information.

@backwind1233 we should think about when users have a Spring Boot version, how they will find the corresponding samples?

close it and work on the new issue:https://github.com/Azure-Samples/azure-spring-boot-samples/issues/42


[Feature] Deployments with limited history should not keep history during syncing

Description
When syncing a subgraph that has limited history, i.e. has history_blocks set, we should not keep any history while we are syncing more than history_blocks away from the chain head. When storing an update to an entity, simply overwrite the old version of the entity instead of keeping the old and the new version.
Are you aware of any blockers that must be resolved before implementing this feature? If so, which? Link to any relevant GitHub issues.
No response
Some information to help us out

[ ] Tick this box if you plan on implementing this feature yourself.
[X] I have searched the issue tracker to make sure this issue is not a duplicate.

The most obvious implementation goes like this: currently, changing an entity from an old version to a new version happens by clamping the block_range of the old version and inserting the new version. Instead of that, we'd just do an update of the old version to turn it into the new version.
This has a couple drawbacks:

The update needs to be issued as a separate statement for each entity (no bulk operations, unless we do funky stuff with update .. from)
Behind the scenes, clamping actually deletes the row for the old version and creates a new row for that old version (that's how MVCC works)

Another way to implement this would therefore be to do a delete of the old versions and an insert of the new versions, which should have almost the same effect on the database. There would be some differences if the update was heap-only, but because we have indexes on everything, we don't ever do HOT updates. Those two operations could happen on many entities at once.
But what happens there is very similar to pruning: pruning does the delete and overwriting when we transact does a clamp + insert.
A fairly simple way to implement this might therefore be changing the history_blocks when syncing: basically, if we are more than history_blocks from the chain head, don't prune according to history_blocks, instead, use a pretty small fixed value, say 1000 or 100; we'd want to strike a balance between keeping tables small and not running pruning too often.
The real win here will come from avoiding writing old versions in the first place, but that requires that we have batch write logic in place where we can remove old versions in memory as we assemble the batch.

thanks @lutter - to be clear, there isn't going to be that much of an uplift from this change in the immediate term? Is it worth tracking this as a follow-on to #4538, so that as well as batch writing we only write latest versions during syncing? Or is that part of #4538 already?

thanks @lutter - to be clear, there isn't going to be that much of an uplift from this change in the immediate term?

I am not sure how much of an uplift it would be - but I think drastically limiting history during syncing would be a good first step in gauging that. We should compare a subgraph that keeps, say, 300k block of history with one that limits it to 100 blocks in the way I described above to see what performance impact that has. That change should be relatively easy to implement (a few days)

Is it worth tracking this as a follow-on to #4538, so that as well as batch writing we only write latest versions during syncing? Or is that part of #4538 already?

No, #4538 does not do anything about limiting history. In my very limited playing around with it, it's not clear that batches would become big enough that pruning them in memory would have much of an effect; so far, the batches I was able to produce were fairly small, less than 100 blocks. The batch size roughly depends on how slow the database is compared to processing - the slower the database, the bigger the batch. More aggressive pruning during syncing would be orthogonal to that, and I think would also be worthwhile. Batching should become pruning-aware, but we should first see how effective it would be - the actual in-memory pruning would be pretty easy to implement.

@mangas I think you investigated this and there wouldn't be a significant benefit to this, vs. simply relying on pruning?


Add Futurama provider

Codecov Report

Merging #602 (bf0fb82) into main (87471f0) will decrease coverage by 0.19%.
The diff coverage is 78.37%.

:exclamation: Current head bf0fb82 differs from pull request most recent head 84579ff. Consider uploading reports for the commit 84579ff to get more accurate results

@@             Coverage Diff              @@
##               main     #602      +/-   ##
============================================
- Coverage     93.07%   92.88%   -0.20%
- Complexity     2442     2467      +25
============================================
  Files           252      253       +1
  Lines          5097     5155      +58
  Branches        562      580      +18
============================================
+ Hits           4744     4788      +44
- Misses          212      221       +9
- Partials        141      146       +5

Impacted Files
Coverage Δ

.../main/java/net/datafaker/service/files/EnFile.java
93.33% <ø> (ø)

.../java/net/datafaker/service/FakeValuesService.java
84.72% <71.42%> (-1.03%)
:arrow_down:

...n/java/net/datafaker/providers/base/BaseFaker.java
87.82% <75.00%> (-6.23%)
:arrow_down:

...rc/main/java/net/datafaker/service/FakeValues.java
83.19% <90.00%> (+1.05%)
:arrow_up:

...n/java/net/datafaker/providers/movie/Futurama.java
100.00% <100.00%> (ø)

.../net/datafaker/providers/movie/MovieProviders.java
100.00% <100.00%> (ø)

...c/main/java/net/datafaker/providers/base/Text.java
78.81% <0.00%> (+0.84%)
:arrow_up:

...ain/java/net/datafaker/idnumbers/KoKrIdNumber.java
87.50% <0.00%> (+6.25%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Show top domains in summary.

Matches new API results.

Don't merge yet: API needs some updating before this is good to go.

Works:
Top Domains
- bbtec.net    10 (3.6%)
- spectrum.com 9 (3.2%)
- comcast.net  8 (2.9%)
- rr.com       8 (2.9%)
- ocn.ne.jp    7 (2.5%)

Will be available in the next version update, v2.1.0 likely.


feat: Add tailwind to Hub using gridsome plugin

This enables us to use tailwind utility classes in our components.
There is a downside however to adding tailwind to a project this far along. We might struggle to use tailwindcss' default (opinionated) mode: Preflight
To see what I mean, all you need to do is browse the preview build for this branch.
Preflight itself is pretty cool, and it would be a great base layer for us to build on if we managed to wrangle the current design to fit it. It plays really well with modern design systems, smooths over the rougher parts of the browser ecosystem, and would make it a lot easier to create a consistent look and feel across meltano's web front ends.
I see 2 approaches (or maybe two phases):

Disable Preflight, keeping our current setup intact while still letting us incrementally adopt utility classes where we need them. (#788 )
Keep Prefilght and begin updating our existing styles and elements with utility classes (#787)

I've created two additional PR's that demonstrate each of the approaches so that anyone can check the Netlify previews.

Troubleshooting block has an odd off-color background:

Similar off-color background on the settings descriptions:

Can we use a normal dark font in the search box? It seems to be defaulting to white-on-grey as of now:

Looks good! Like @pandemicsyn I also kind of like the slate background for the settings descriptions though maybe with a little extra padding on the left.

The slate backgrounds were something I added to differentiate page content that comes from markdown blocks inside the yaml data. Most of the time they call out information that is really specific to the plugin you're looking at and I feel like they draw the eye and help break up the settings section a little bit visually.
I've padded them slightly so it looks a little better.

@rwfeather - Thanks so much. I felt less strongly about the setting blocks and the larger issue for me was the Troubleshooting block. But the explanation of the rendering this way because that is dynamic yaml/markdown based content makes a lot of sense.
We can continue tweaking as we go. 🚀


JValue underlying type is lost on serialization

var value = new JValue(new Guid());
Assert.AreEqual(JTokenType.Guid, value.Type); // ok
var value2 = JsonConvert.DeserializeObject<JValue>(JsonConvert.SerializeObject(value));
Assert.AreEqual(JTokenType.Guid, value2.Type); // expected: Guid, but was: String

Using JsonSerializerSettings with TypeNameHandling = TypeNameHandling.All does not help. Same happens with int - it gets converted to long after serialisation/deserialisation.
This makes objects that contain JTokens inside completely broken after the deserialisation for me.

Even simpler test:
var token1 = new JValue(Guid.NewGuid());
var token2 = JToken.FromObject(token1);
Assert.IsTrue(JToken.DeepEquals(token1, token2)); // false
Assert.AreEqual(token1.Type, token2.Type); // expected: Guid, but was: String

The main question I have is, why do we even have a JTokenType.Guid type? It is not a
"native" JSON type and it breaks JToken.DeepEquals. Is there a need for it?

Fixed https://github.com/JamesNK/Newtonsoft.Json/commit/092dc7da58dc1af088a83b6537d7b2e8527b3de3


ci: create workflows for every step in pipeline

Related: https://www.notion.so/prismaio/VSCode-Extension-Releases-9940216b98364c058823951c4905311c

creates a local release
gets the .vsix file from the release to publish it to the marketplace and open-vsx

closes #366
closes #408

TODO:

[ ] check if token GH_TOKEN is in repo's secrets

TODO before merging this:

[ ] check prisma versions and extension version numbers in scripts/version folder to be up to date

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

TODO:

[ ] tests for version calculation


Changing the JSON info

Hey man, really love your work.
I just have a small problem with updating some of the values in the JSON file.
What I've used so far, is just what you wrote in a closed issue;
pJSDom[0].pJS.particles.number.value = 1000;
pJSDom[0].pJS.particles.move.direction = "bottom";
pJSDom[0].pJS.particles.color.value= "#766637";
pJSDom[0].pJS.fn.particlesRefresh();
But there is some value I can't change such as;
particles.move.speed
particles.size.value
And I've written them in the same with as those value changes that actually work, like;
pJSDom[0].pJS.particles.move.speed = 9;
pJSDom[0].pJS.fn.particlesRefresh();
Am I doing something totally wrong here? :s
Also sorry for bothering you.

Hey @IngvarOlsen, thanks :)
To support the retina display some values like "moves.speed" and "size.value" are stored into pJSDom[0].pJS.tmp.obj
If you want to update theses values just update the tmp values, for example:
pJSDom[0].pJS.tmp.obj.move.speed = 9;
pJSDom[0].pJS.tmp.obj.size_value = 10;
pJSDom[0].pJS.fn.particlesRefresh();
Hope it helps!

Ohh alright, thanks dude!

I still can't get this to work, I want to simulate a mouse down event and nothing seems to be happening. I tried all sorts of combinations. If you could help that would be great.


Clarifications on ConversionData

Question
When looking at documentation for AppsFlyer linking, things like campaign and media_source have parameter names like c and pid.  Others are of the format when creating links af_ad for instance.
In the documentation for this SDK, we see that the example and typedef for ConversionData includes data with a key of campaign and media_source so it appears the SDK is doing some manipulation of the data included with the link.
What type of manipulation happens?  If I were to include af_adset, would it show up as ConversionData.data.adset for instance?  The documentation is a little unclear on what is happening here.

Hi @bradherman ,
Thank you for reaching out to us.
To provide optimal support, we would kindly ask you to submit a support ticket to<EMAIL_ADDRESS>When submitting the ticket, please specify your AppsFlyer sign-up (account) email, app ID, reproduction steps, code snippets, logs, the links you used, and any additional relevant information.

This isn't a bug and doesn't require any reproduction or code... If you read my question it's just stating that the documentation is unclear about the params in a ConversionData set


docs top menu

Why is the current menu hard to comprehend?
Now it is not clear what the difference is between the top-menu items Docs, Use Cases and Guides.
It is a top menu. It should be super-clear and super-intuitive.
Disclaimer: it is not only the LangChain problem. For example, I see the confusing top menu in PyTorch.
Current menu problems
Docs, Use cases, Guides

Docs - docs? Almost the whole site is docs: API, Integrations, Hubs... But this items tells us that the documentation is under this item, which is very-very confusing
Guides? to what? to the LC core modules? To the LLM app concepts? This term is too generic.
Use cases - OK, but impossible to differentiate between Guides without reading the menus underneath.

Proposed updates:
See pictures above.
Why Quickstart?

It holds information for starting with LangChain

Why Advanced?

Now this item contains information that is definitely advanced stuff.
This information has diverse semantics: concepts and use cases, generic explanations, and development techniques.
It could be a place [a junkyard] for the advanced texts not categorized in any existing category (not Quickstart, Use cases or Integrations). If you have something interesting and not simple, throw it here!
It sounds cool and more emotional. It allows me to feel special. Yeah, I'm reading advanced stuff!

Why this menu item order?
The comprehension chain is working well for the new menu:

start from Quickstart (How it works in general?)
move to Use cases (How it works in more details for my case?)
move to Advanced (Let's do something! Go practical.)
use Integrations and API for random searches when developing or researching. (Do I have this integration? What is signature for x?)

Why 🦜🔗 in place of 🦜🔗LangChain?

Now the 🦜🔗LangChain looks like the first menu item. But it is not a menu item. Confusing.
[The most controversial topic]
Let's use the  :parrot::link: icon everywhere in the documentation in place of the "LangChain" name!!!
It is the great idea from :hugs:

Visual design of new menu:
Pros:

well balanced visually. The length of the first 4 items is almost the same. It is better, compared with current menu when Docs, Use cases items look like 3 separate menu items, like Docs, Use, cases.
The meaning of all items is intuitive

Thoughts on this instead? Slightly bigger re-org. Happy to iterate on it before any implementation:
Currently

Docs
Use cases
Integrations
Guides
API
More

Templates
Community
Developer’s guide
Dependents
Integrations Hub
Tutorials
Cookbooks
YouTube videos
Gallery

🦜🔗

LangSmith
LangSmith Docs
LangServe GitHub
Templates GitHub
Templates Hub
LangChain Hub
JS/TS Docs

Chat
Github
Dark Mode
Search

Other notes

on small screen, you have to click “back to main menu” to see the top headings, which is slightly confusing

Proposal
Guides

Merge Guides and use cases, title Guides
Add a index guides page that outlines why you might use different guides (either starting from a use case, or “how to add tracing”)

Integrations

Add an index page detailing “how to pick an integration” etc.

More/🦜

Merge these two menus
Move these out

Community → new Guides/Contributing section
Developer’s Guide → Guides/Contributing section
Tutorials → Guides/External Tutorials page
YouTube videos → Guides/External Tutorials page
Gallery → add to Dependents page
LangSmith → its own top-level heading. After GA. Leave here for now.
Integrations Hub → Move to link in “Integrations” index page or sidebar link, as well as “also by langchain” (see below)
Cookbooks → Guides/Cookbooks (copy in readme for indexing)

Remove these

Templates (the readmes are basically copypasta and aren’t that valuable for search). Redirect to templates hub instead.

Add some headings/sections to this menu

Also by LangChain

JS/TS Docs (langchainjs)
LangSmith docs
Templates Hub
Integration Hub
LangChain Hub

Useful Links

Dependents

Make “Github” section a dropdown. Top icon will link python repo. Expanded includes

LangServe Github
Templates Github
JS Repo (new)

I love an idea of making "GitHub" icon a dropdown. It would have a menu of ALL 🦜🔗 repos.
Combining Use cases and Guides also makes sense.
Is that the top menu now holds only 3 items: Guides/Integrations/More ?
All big repo documentations have something like Quickstart or Get started. It is because the doc is big and complex and a first-time user should be directed in one clear direction, here, where generic stuff is explained without details, to start fast and not to get lost. 🦜🔗 also has a huge documentation. "Not to get lost" is very important. Right from the start, from the top menu. Hence, the "Quickstart" is very important. Please do not remove it.

@leo-gan I think it's clear enough with a "Docs" heading and then having the quickstart under that - it's visible if you go to python.langchain.com right away. This format actually mimicks the Docusaurus docs as well, which have a similar introduction before jumping into "getting started": https://docusaurus.io/docs/

@efriis It is different situation with Docusaurus top menu. Docs there means Documentation. Other menu items are NOT documentation. In LC top menu, Four left menu items are all for documentation. That's why Docs is confusing in the LC top menu.

Docusaurus "API" tab is also documentation.
Doing something more in line with the proposal above is in my backlog! Should be clearer after that.


Update TESTING.md instructions

Before submitting, please confirm you've

[X] read and understood our Contributing Guidelines
[X] completed Mattermost Contributor Agreement
[N/A] executed npm run lint:js for proper code formatting

Please provide the following information:
Summary

Update TESTING.md instructions

I feel it's ready to merge.
@jasonblais To make sure, would you confirm again? If it's okay, please merge.

Thanks @yuya-oc!


Fix code coverage analysis workflow

https://github.com/MicaelJarniac/timematic/runs/4422865676?check_suite_focus=true#step:5:13
Possibly related to #18.

Project has to be installed as editable, with pip install -e ., for Coverage to be able to correlate tests to source files.


Landing page detection & RDP services

So, it's not clear if using the Win7 version is ok for 2008R2 as there is no 2008R2 to manually download. Safe for Terminal Server?
 Now we have a farm we need to keep alive as is until the world goes back to work.

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

ID: 6b402dcf-d79b-71a2-a942-4b5b17cfe1b2
Version Independent ID: 861380ed-e39d-6896-5fee-09649afda5f7
Content: Microsoft Edge Supported Operating Systems
Content Source: edgeenterprise/microsoft-edge-supported-operating-systems.md
Product: microsoft-edge
GitHub Login: @srugh
Microsoft Alias: srugh

Cleaning up old issues.  Question appears to have been previously answered.
If you have further questions regarding Microsoft Edge please reach out on the Microsoft Edge Tech Community Forum or for Enterprise specific questions please visit the Enterprise section of the Tech Community. Thanks!


Password inputs values are serialized by default

Contrary to the RRWeb guide documentation, password values are serialized during full snapshots or "mutation" incremental snapshots.
This may be especially critical when snapshots are taken after the page "load" event (ex: automatic checkout, takeFullSnapshot API).
A workaround could be to avoid collecting attributes.value if the input type is "password" here.

Thanks! This is really a critical issue, we only mask password input events before and forget the snapshot part.
I had merged https://github.com/rrweb-io/rrweb-snapshot/pull/73 so we can config mask password from options.
And in the latest commit, I set the default value of masking password to true when a user does not pass in any explicit config about it.


Trouble uninstalling

Hey I installed the software without running into any error messages and after restarting my computer as requested by the installer my bluetooth dongle wasn't working.
Now I wanted to reinstall the software to see if it fixes but when I hit uninstall I get a error message saying "Bluetooth Host Radio not found. A working Bluetooth stack is required for driver installation or removal."
Is there another way to uninstall this program?

https://vigem.org/projects/BthPS3/Frequently-Asked-Questions/


added: include parameter is now used to ensure files are merged in th…

…e specified order for predictable overwriting of values
Although it looks big, this is just replacing grunt.file.recurse with grunt.file.expand. The advantage of this change is that we can use the include option to re-order files and this way have predictable translation key overwrites.
E.g. if you would like a translation key in b.json to overwrite the same key in a.json, you could use include: ['a.json', 'b.json'], or prevent overwriting with include: ['b.json', 'a.json']. Until this change the order in which grunt.file.recurse` processes files was mysterious (not affected by alphabetical order of filenames e.g.).

If somebody could review this please, I'd like to publish the 0.2 version.
(If nobody reviews this, I'd like to do the same ;))

Not sure if @sabarasaba still watches / maitains this?!?
so you might go for the no review option i think ;)


graftorio assumes 60 UPS

My base is big enough that it runs only at 30 to 40 UPS. While in game production stats factor this in, graftorio (or prometheus and grafana) does not. Dumping stats every 600 ticks and have prometheus pick them up every 10s means that with UPS less than 60 oversampling happens. Graphs in grafana will show lower production stats with reduced UPS. This differs from the in game production graphs and you'll end up wondering what made your base output less items than usually even though it was perfectly fine!
I think the correct way to deal with this is to include the in-game time as timestamp in the exposition .prom file: https://prometheus.io/docs/instrumenting/exposition_formats/

The timestamp is an int64 (milliseconds since epoch, i.e. 1970-01-01 00:00:00 UTC, excluding leap seconds), represented as required by Go's ParseInt() function.

If this is not possible one could also just dump the current tick value to the .prom file as its own metric. However this would require more complex queries in grafana and in my understanding the timestamp attribute is exactly what should be used here.
When using the timestamp value you can retrieve the in-game time using the prometheus timestamp() function.
In addition to that I think dumping the current tick value or the current UPS would be an interesting metric for a dashboard, too!
This would also compensate for pauses and delays introduced by saving (and autosaves).
Another option might be to add metrics for "items per minute" instead of just the total amount and then having to calculate the rate yourself just as it is already done for YARM.

thanks for the report!
if you make a save file available for me to download which exhibits this behavior (0.17 if you have one), then i could look into this.

There you go!  On one of my machines it pulls it down to 43 UPS.
https://www.dropbox.com/s/5rztdmh0mm6yd97/MP_0_16.zip?dl=1
Due to the mismatch in UPS of 43 vs 60 you get really odd looking curves in grafana and they are neither pretty nor do they provide any meaningful values really.

Oh btw in the screenshot in https://github.com/afex/graftorio/issues/5 you can see the effect of the mismatch in UPS. I very much suspect these spikes to result from that.


Merge how-to Optimize Microflow Aggregates with the refguide Aggregat…

…e List

Hi @Yiyun333 , The move looks good, I only added a couple of comments.

Hi @MariaShaposhnikova, thanks for reviewing this PR for me. I have dealt with your comments below in this commit: ec61baf56c9fef8fc1476ef577b144706d1e7a05
Please see my detailed reply to your comments below.


Issue rendering code blocks where words would break unexpetedly

Html.fromHtml() formats code blocks by inserting non-breaking spaces, \u00A0. This made words break unexpectedly since the entire line is considered a single word.
The old behavior was to fit as much as possible on one line, then jump to the next, disregarding word boundaries, which is much harder to read.
This reverts non-breaking spaces to regular spaces.

This looks very reasonable - I think I recall being annoyed at this at some point. I'll build this and try it out over the weekend and merge as long as things look good, thanks for you work!

At first your workflow wouldn't build because of a linter warning. For now it is suppressed and it builds fine. Feel free to push further commits as I believe I enabled that option.

Managed to verify this on a real comment and was an actual improvement, thanks again! 👍

It was a real nuisance for a while. Pleasure to help! Thanks for sharing the app as well.


Optimisation on select box 'In product groups'

A little suggestion according the look and feel of the select box 'In product groups'.
set up a placeholder in case there are no groups/categories added or not choosen from a given list.
Proposal :
Change line in /packages/vivid_store/single_pages/dashboard/store/products.php
                   <select multiple="multiple" name="pProductGroups[]" class="existing-select2 select2-select" style="width: 100%" <?php  echo (empty($productgroups) ? 'placeholder="no categorie available"' : 'placeholder="select categorie"'); ?>>

We already have a "no results" once you click it. I feel like that's currently strong enough.


Add tooltip for how to setup MFA

Description
Several users have reached out due to their not understanding how to set-up MFA. Several users thought that the provided code/QR to setup the authenticator app was the actual OTP (see image below). So they are inputting that code and getting an error.
The quick start guide shows the sign up process, but does not detail setting up MFA. Even if it did, I highly doubt many users are referring to the quick start guide (I do send a link to each user when I approve there account).
The solution here is likely a tooltip that details the instructions on how to set it up and/or a quick video.

Acceptance Criteria:

[ ] Determine the best approach to providing instructions of setting up MFA (e.g., tooltip with instructions and/or video). Not sure which will be the easiest option.
[ ] Implement the chosen solution - ensure that the tooltip is accessible on production.

cc @wrynearson

@kamicut, could you add the following text as a tooltip, next to "Set-up OTP"?

A one-time password (OTP) increases the security of your APT account. To use OTP with APT, you'll need to download an application (sometimes referred to as MFA) that generates a time-sensitive code (OTP) that is entered upon login. APT doesn't endorse any particular application, but some include Google Authenticator (Android, iOS), Microsoft Authenticator (Android, iOS), and 1Password (Android, iOS, Mac, PC, Linux, web browser).

@bwbaker1 this is ready for your review on staging

@wrynearson This is good. I think this is much more clear for users. Ready for production.


Instructions to add Kubernetes Metrics server to Kind

For many tools to work with Kind cluster the K8s metrics server should be enabled with mTLS disable. Effectively these steps  https://maggnus.com/install-metrics-server-on-the-kind-kubernetes-cluster-12b0a5faf94a should be added to the  https://docs.dapr.io/operations/hosting/kubernetes/cluster/setup-kind/ article

I would like to work on this, Is this issue still up for grabs?


Refactor ExprExceptionContext to expose itself to be a resusable module

Fuzzer will need the persistency functionality ExprExceptionContext can provide.
Refactor the code so that it is public and could be used by other component.

Thanks @mbasmanova , addressed comments

@tanjialiang Looks good to me. I'm curious how do you plan to use this in the fuzzer.

First step, persistency: Persist is straightforward. When a fuzzer test fails just create this ExprExceptionContext to persist.
Second step, repro: Repro needs some additional components implemented

how to read and rebuild, I think these are already somewhere in some tests and just need to be abstracted and reused.
how to hookup with cli for an easy repro.

@tanjialiang Thank you for clarifying.

Persist is straightforward. When a fuzzer test fails just create this ExprExceptionContext to persist.

I wonder if we could also make it so that we persist the inputs on crashes, not only failures. Maybe we could add a flag to Fuzzer for persist inputs before running an expression. Then, we could use that flag together with --seed to repro and capture inputs.

@tanjialiang Thank you for clarifying.

Persist is straightforward. When a fuzzer test fails just create this ExprExceptionContext to persist.

I wonder if we could also make it so that we persist the inputs on crashes, not only failures. Maybe we could add a flag to Fuzzer for persist inputs before running an expression. Then, we could use that flag together with --seed to repro and capture inputs.

That makes sense! Thanks Masha


2FA: Show 6 character fields for token

We have this input at the moment:

It would improve user experience if we could show an input with the exact number of expected characters:

Source: https://dribbble.com/shots/10960055-Two-factor-authentication-2FA

Ciopy&Paste must be possible

Seems really complicate says @tillprochaska. Don't mess this one up


The 'Identity Provider: Browser Azure AD OAUTH2' authentication method does not work if the client secret is mandatory for the application registered in Azure AD.

Driver version
<IP_ADDRESS>
Redshift version
'PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.63269
Client Operating System
Windows 10
Table schema
Not relevant.
Problem description

Expected behaviour: ODBC driver should be able to connect using Auth Type: Identity Provider: Browser Azure AD OAUTH2 when the client secret is required by the application registered in Azure AD
Actual behaviour: ODBC driver is not able to connect using Auth Type: Identity Provider: Browser Azure AD OAUTH2.
Error message/stack trace: The driver returns the following message:
Authentication failed in the Browser server. Please check the IdP Tenant and Client ID
Any other details that can be helpful:
The clientSecret is not provided in the request to obtain the access token after the browser returns the authorization code.
The problem is located in the RequestAccessToken function from the IAMBrowserAzureOAuth2CredentialsProvider. The following code fragment should include the client secret that should be an optional field in the configuration of this authentication type:

const std::map<rs_string, rs_string> paramMap =
{
{ "grant_type", "authorization_code" },
//		{ "requested_token_type", "urn:ietf:params:oauth:token-type:jwt" },
{ "response_type", "token" },
{ "scope", scope },
{ "client_id", m_argsMap[IAM_KEY_CLIENT_ID] },
{ "code", authCode },
{ "redirect_uri", "http://localhost:" + m_argsMap[IAM_KEY_LISTEN_PORT] + "/redshift/" }
//		{ "resource", m_argsMap[IAM_KEY_CLIENT_ID] }
};

Also, it is important to notice that the following article (Which describes the required configuration to enable OAuth authentication for Redshift) includes a step to define a client secret in the application created in Azure AD. So if anyone follows that article will not be able to use this authentication type in the ODBC driver:

Configure single sign-on authentication for Amazon Athena with Azure AD integrated to on-premises AD

ODBC trace logs
The following log fragment could explain the issue:

[DEBUG] 2024-03-05 12:48:45.191 [IAMCRD:IAMBrowserAzureOAuth2CredentialsProvider.cpp:250] [45908] IAMBrowserAzureOAuth2CredentialsProvider::RequestAccessToken
[DEBUG] 2024-03-05 12:48:45.191 [IAMCRD:IAMBrowserAzureOAuth2CredentialsProvider.cpp:283] [45908] IAMBrowserAzureOAuth2CredentialsProvider::RequestAccessToken
[DEBUG] 2024-03-05 12:48:45.191 [IAM:IAMPluginCredentialsProvider.cpp:226] [45908] IAMPluginCredentialsProvider::GetHttpClient
[DEBUG] 2024-03-05 12:48:45.191 [IAM_HTTP_CLNT:IAMHttpClient.cpp:43] [45908] IAMHttpClient::GetClientConfiguration
[DEBUG] 2024-03-05 12:48:45.200 [ODBCDLL:dllmain.c:50] [15156] DLL_THREAD_ATTACH
[DEBUG] 2024-03-05 12:48:45.406 [ODBCDLL:dllmain.c:50] [25936] DLL_THREAD_ATTACH
[DEBUG] 2024-03-05 12:48:45.747 [IAMCRD:IAMBrowserAzureOAuth2CredentialsProvider.cpp:311] [45908] IAMBrowserAzureOAuth2CredentialsProvider::RequestAccessToken: response {"error":"invalid_client","error_description":"AADSTS7000218: The request body must contain the following parameter: 'client_assertion' or 'client_secret'. Trace ID: 7ac524f7-b73c-417f-bd4d-089cca48a300 Correlation ID: f4072a68-4ea2-4d26-899a-7b3d86a3bb09 Timestamp: 2024-03-05 12:48:45Z","error_codes":[7000218],"timestamp":"2024-03-05 12:48:45Z","trace_id":"7ac524f7-b73c-417f-bd4d-089cca48a300","correlation_id":"f4072a68-4ea2-4d26-899a-7b3d86a3bb09","error_uri":"https://login.microsoftonline.com/error?code=7000218"}
[DEBUG] 2024-03-05 12:48:45.747 [IAMCRD:IAMJwtPluginCredentialsProvider.cpp:259] [45908] IAMJwtPluginCredentialsProvider::~IAMJwtPluginCredentialsProvider
[DEBUG] 2024-03-05 12:48:45.747 [Redshift::IamSupport::%s::%s():IAMCredentialsProvider.cpp:105] [45908] IAMCredentialsProvider

Reproduction code
I was able to reproduce the issue clicking on Test button of a DSN with the following parameters defined:

Data Source Name
Server
Port
Database
Auth type --> Set to Identity Provider: Browser Azure AD OAUTH2
Azure Client ID
Idp Tenant

Hi @omeuid, thank you for taking the time to open this issue, my apologies for the delay in response. We really appreciate you providing a reproduction of the issue as it's a big help to our team. I've notified the team of this issue and will update here as more information is available.


Conditionals

Dimensions, Biomes, Hot, Dry, Wet, Cold.
Is Raining, Is night, is Moonphase?

https://github.com/The-Acronym-Coders/ContentTweaker/blob/develop/src/main/java/com/teamacronymcoders/contenttweaker/api/wrappers/biome/CTBiome.java and https://github.com/The-Acronym-Coders/ContentTweaker/blob/develop/src/main/java/com/teamacronymcoders/contenttweaker/api/wrappers/world/MCWorld.java should suit your fancy!


unify the pdf style used in specs

Currently there are 2 different themes being used:

https://github.com/riscv/riscv-isa-manual/blob/main/src/resources/themes/riscv-spec.yml
https://github.com/riscv/docs-resources/blob/main/themes/riscv-pdf.yml

I recently copied the riscv-isa-manual one into docs-resources to help one extension maintainer generate their pdf to look more like the isa-manual.
My proposal is that we should unify the pdf style theme as it is confusing to see specs in one theme and then when they are ratified and put in isa-manual to look differently.
IMO it makes sense to unify based on the isa-manual style. So here's my plan:

sorted diff of the two different styles added to this issue so we can appreciate any changes
copy the isa-manual riscv-spec.yml theme into the docs-resources riscv-pdf.yml theme so there is only one
PR in isa-manual to use docs-resources submodule so it is sharing the same resources as extension repos.

Once this is done we can consider a review of the theme (fonts specifically) and or transition to asciidoctor-web-pdf which has been discussed.
@wmat @kersten1 thoughts?

YES! Something I've been wanting to do.

diff:
❯ diff riscv-spec.yml riscv-pdf.yml
14d13
<   column_rule_color: $base_border_color
21c20
<       name: fas-info-circle
---
>       name: info
27c26
<       name: far-comments
---
>       name: comments-o
41d39
<   border_color: EEEEEE
61,65c59,63
<   background_color: ffffff
<   caption:
<     end: bottom
<   font-color: 0
   background_color: f4f4fb
>   border_color: cccccc
>   border_radius: $base_border_radius
>   border_width: 0.2
>   font-size: 9
71a70
>   font-size: 11.5
85d83
<   border_color: $base_border_color
94,97d91
< figure:
<   caption:
<     align: center
<     end: bottom
140c134
<   border_width: 0.35
---
>   border_width: 0.25
142c136
<   height: $base_line_height_length * 2.6
---
>   height: $base_line_height_length * 2.5
145c139
<     - $base_line_height_length / 1
---
>     - $base_line_height_length / 2
147c141
<     - 0.5
---
>     - 0
163c157
<     - $base_line_height_length / 1
---
>     - $base_line_height_length / 1.3
165c159
<     - 0.5
---
>     - 0
176c170
<   font_color: 0
---
>   font_color: 3e058e
178c172
<   font_style: bold
---
>   font_style: light
180,183c174,177
<   h2-font-size: 11.5
<   h3-font-size: 11.5
   h3_font_size: round($base_font_size * 1.7)
>   h4_font_size: $base_font_size_large
>   h5_font_size: $base_font_size
185,187d178
<   margin_bottom: $block_margin_bottom
<   margin_top: $block_margin_bottom
<   min_height_after: auto
191,192d181
<   caption:
<     align: center
201c190
< menu_caret_content: ' <color rgb="000000">›</color> '
---
> menu_caret_content: ' <color rgb="b12146">›</color> '
239c228
   font-size: 11.5
243d231
<   border_color: $base_border_color
263d250
<     margin-top: 25
271,273c258
<   dot-leader:
<     content: ' '
   dot_leader:
275d259
<   h2-font-style: bold

Zip has above and sdiff:
diffs.zip