Importing JosiahSiegel GHA<EMAIL_ADDRESS>

Profile: JosiahSiegel
Status: Importing (In-Progress)
Objective: Determine if test string checksum valid or invalid.

Generate a checksum from either a string or shell command (use command substitution: $()).
Validate if checksum is identical to input (even across multiple jobs), using a key to link the validation attempt with the correct generated checksum.
a. Validation is possible across jobs since the checksum is uploaded as a workflow artifact

Target<EMAIL_ADDRESS>: ebdf8c1
Latest: checksum-validate-action (806ce2fa215d520071c6d4faf8d2588a65e23749 )
Note: Further development was made and not referenced/used in the project.
The checksum-validate-action is a GitHub Action designed to generate and validate checksums from strings or command outputs within your workflows. This functionality is particularly useful for ensuring data integrity and consistency across different stages of your pipeline.
Key Features:

Checksum Generation: Creates a SHA-256 checksum from a provided string or the output of a shell command.
Checksum Validation: Compares the generated checksum against a previously stored value to verify data integrity.
Cross-Job Validation: Supports validation across multiple jobs by uploading the checksum as a workflow artifact, facilitating consistency checks throughout the pipeline.

Inputs:

key (required): A unique identifier to associate the checksum with a specific validation context.
input (required): The string or command output to generate the checksum from.
validate (optional, default: false): Indicates whether to perform a validation check against a previously generated checksum.
fail-invalid (optional, default: false): Determines if the action should fail the step when the checksum validation is unsuccessful.

Outputs:

valid: A boolean indicating whether the checksum validation was successful.

Technical Evaluation:
The action is implemented as a composite action, executing a series of shell commands to perform checksum operations. The workflow includes the following steps:

Checksum Generation: Utilizes the sha256sum command to generate a SHA-256 checksum from the provided input.
Artifact Management:

Upload: If not in validation mode, the generated checksum is saved to a file and uploaded as a workflow artifact.
Download: In validation mode, the action downloads the previously uploaded checksum artifact for comparison.

Validation: Compares the newly generated checksum with the downloaded artifact to determine consistency.
Output and Failure Handling: Sets the valid output based on the comparison result and optionally fails the step if validation fails and fail-invalid is set to true.

Usage Example:
jobs:
  generate-checksums:
    name: Generate checksum
    runs-on: ubuntu-latest
    steps:
      - uses<EMAIL_ADDRESS>      - name: Generate checksum of string
        uses: JosiahSiegel/checksum-validate-action@v1
        with:
          key: test string
          input: hello world
      - name: Generate checksum of command output
        uses: JosiahSiegel/checksum-validate-action@v1
        with:
          key: test command
          input: $(cat action.yml)

  validate-checksums:
    name: Validate checksum
    needs: generate-checksums
    runs-on: ubuntu-latest
    steps:
      - uses<EMAIL_ADDRESS>      - name: Validate checksum of valid string
        id: valid-string
        uses: JosiahSiegel/checksum-validate-action@v1
        with:
          key: test string
          validate: true
          fail-invalid: true
          input: hello world
      - name: Validate checksum of valid command output
        id: valid-command
        uses: JosiahSiegel/checksum-validate-action@v1
        with:
          key: test command
          validate: true
          fail-invalid: true
          input: $(cat action.yml)
      - name: Get outputs
        run: |
          echo ${{ steps.valid-string.outputs.valid }}
          echo ${{ steps.valid-command.outputs.valid }}

Relevance to Your Pipeline:
If your pipeline involves scenarios where data integrity verification is crucial—such as ensuring that files or outputs remain unchanged across different stages or jobs—this action provides a straightforward method to implement such checks. It can help detect unintended modifications, ensuring consistency and reliability in your workflows. However, if your pipeline does not require such integrity checks or if similar validations are already implemented through other means, this action may be considered non-essential.
Conclusion:
The checksum-validate-action offers a practical solution for generating and validating checksums within GitHub workflows, enhancing data integrity and consistency. Its utility depends on your pipeline's specific requirements for data verification. Assessing your current processes for ensuring data integrity will help determine the action's relevance to your workflows.

This external repo is now inserted in the file structure at: .github/actions/checksum-validate-action in the importing-gha branch.

env.sha

github.sha

inputs.input
inputs.key

matrix.os

steps.input_sha.outputs.sha
steps.valid-command.outputs.valid
steps.valid-string.outputs.valid
steps.validate_checksum.outputs.valid

This GitHub Action (targeted to be imported as a remote/external) is no longer in consideration until we can further evaluate if they are worth the effort to be imported at a later stage.
Warning: I have placed it into the "IceBox" stage as it is out of scope for now.

Always checkout the MAIN branch:

$ git checkout main ;

Switched to branch 'main'
Your branch is up to date with 'origin/main'.

Update the MAIN branch:

$ git pull ;

remote: Enumerating objects: ?, done.
remote: Counting objects: 100% (?/?), done.
remote: Compressing objects: 100% (?/?), done.
remote: Total ? (delta ?), reused ? (delta ?), pack-reused 0 (from 0)
Unpacking objects: 100% (?/?), ?.? KiB | ?.? MiB/s, done.
From https://github.com/CDCgov/prime-reportstream
   abc..xyz  main                                                                        -> origin/main
. . .
Updating abc..xyz
Fast-forward
. . .

Always update the MAIN branch:

$ git pull ;

remote: Enumerating objects: ?, done.
remote: Counting objects: 100% (?/?), done.
remote: Compressing objects: 100% (?/?), done.
remote: Total ? (delta ?), reused ? (delta ?), pack-reused 0 (from 0)
Unpacking objects: 100% (?/?), ?.? KiB | ?.? MiB/s, done.
From https://github.com/CDCgov/prime-reportstream
   abc..xyz  main    -> origin/main
. . .
Updating abc..xyz
Fast-forward
. . .

Create local branch using pattern-naming convention:

$ git checkout -b devsecops/<user-id>/checksum-validate ;
Switched to a new branch 'devsecops/<user-id>/checksum-validate'

Push existing branch state to remote:

$ git push --set-upstream origin devsecops/<user-id>/checksum-validate ;

Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
remote:
remote: Create a pull request for 'devsecops/<user-id>/checksum-validate' on GitHub by visiting:
remote:      https://github.com/CDCgov/prime-reportstream/pull/new/devsecops/<user-id>/checksum-validate
remote:
remote: GitHub found ? vulnerabilities on CDCgov/prime-reportstream's default branch (? high, ? low). To find out more, visit:
remote:      https://github.com/CDCgov/prime-reportstream/security/dependabot
remote:
To https://github.com/CDCgov/prime-reportstream.git
 * [new branch]          devsecops/<user-id>/checksum-validate -> devsecops/<user-id>/checksum-validate
branch 'devsecops/<user-id>/checksum-validate' set up to track 'origin/devsecops/<user-id>/checksum-validate'.

Create target container (filesystem folder) for the external/remote GitHub Action:

$ cd .github/actions/ ; $ mkdir checksum-validate  && cd $_ ;
$ ls -al ;
total 0
drwxr-xr-x   2 emvaldes  staff   64 Dec  5 14:51 .
drwxr-xr-x  26 emvaldes  staff  832 Dec  5 14:51 ..
$ pwd ;
/repos/hhs/cdc/prime-reportstream/.github/actions/checksum-validate

Clone the external/remote repository GitHub Action:

$ git clone https://github.com/JosiahSiegel/checksum-validate-action.git . ;
Cloning into '.'...
remote: Enumerating objects: 143, done.
remote: Counting objects: 100% (80/80), done.
remote: Compressing objects: 100% (52/52), done.
remote: Total 143 (delta 38), reused 46 (delta 24), pack-reused 63 (from 1)
Receiving objects: 100% (143/143), 52.98 KiB | 645.00 KiB/s, done.
Resolving deltas: 100% (47/47), done.

Listing local repository file structure

$ tree -a ;
.
├── .git
│   ├── HEAD
│   ├── config
│   ├── description
│   ├── hooks
│   │   ├── applypatch-msg.sample
│   │   ├── commit-msg.sample
│   │   ├── fsmonitor-watchman.sample
│   │   ├── post-update.sample
│   │   ├── pre-applypatch.sample
│   │   ├── pre-commit.sample
│   │   ├── pre-merge-commit.sample
│   │   ├── pre-push.sample
│   │   ├── pre-rebase.sample
│   │   ├── pre-receive.sample
│   │   ├── prepare-commit-msg.sample
│   │   ├── push-to-checkout.sample
│   │   ├── sendemail-validate.sample
│   │   └── update.sample
│   ├── index
│   ├── info
│   │   └── exclude
│   ├── logs
│   │   ├── HEAD
│   │   └── refs
│   │       ├── heads
│   │       │   └── main
│   │       └── remotes
│   │           └── origin
│   │               └── HEAD
│   ├── objects
│   │   ├── info
│   │   └── pack
│   │       ├── pack-bdd41e1457066f51a3b19555030f0d9b6ea94598.idx
│   │       ├── pack-bdd41e1457066f51a3b19555030f0d9b6ea94598.pack
│   │       └── pack-bdd41e1457066f51a3b19555030f0d9b6ea94598.rev
│   ├── packed-refs
│   └── refs
│       ├── heads
│       │   └── main
│       ├── remotes
│       │   └── origin
│       │       └── HEAD
│       └── tags
├── .github
│   ├── dependabot.yml
│   └── workflows
│       └── test_action.yml
├── README.md
└── action.yml

19 directories, 32 files

Listing local repository log:

$ git log ;
commit 806ce2fa215d520071c6d4faf8d2588a65e23749 (HEAD -> main, origin/main, origin/HEAD)
Merge: abcb2c6 59444f8
Author: Josiah Siegel<EMAIL_ADDRESS>Date:   Fri Aug 2 08:36:54 2024 -0400

    Merge pull request #31 from JosiahSiegel/dependabot/github_actions/actions/download-artifact-4.1.8

    Bump actions/download-artifact from 4.1.7 to 4.1.8

. . .

Checkout target hash-commit (referenced in the PRIME-ReportStream application):

$ git checkout ebdf8c12c00912d18de93c483b935d51582f9236 ;
Note: switching to 'ebdf8c12c00912d18de93c483b935d51582f9236'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at ebdf8c1 Merge pull request #16 from JosiahSiegel/dependabot/github_actions/actions/download-artifact-4.1.2

Listing GitHub Action (e.g.: action.yaml) change log:

((v1.5)) $ git log -p ./action.yml ;
commit 20fe3f0b1e20bf44f7c1c0dde8b7e6798ac123e7
Author: dependabot[bot]<EMAIL_ADDRESS>Date:   Fri Feb 16 14:57:08 2024 +0000

    Bump actions/download-artifact from 4.1.0 to 4.1.2

    Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.0 to 4.1.2.
    - [Release notes](https://github.com/actions/download-artifact/releases)
    - [Commits](https://github.com/actions/download-artifact/compare/f44cd7b40bfd40b6aa1cc1b9b5b7bf03d3c67110...eaceaf801fd36c7dee90939fad912460b18a1ffe)

    ---
    updated-dependencies:
    - dependency-name: actions/download-artifact
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot]<EMAIL_ADDRESS>
diff --git a/action.yml b/action.yml
index 149b759..1ad3023 100644
--- a/action.yml
+++ b/action.yml
@@ -77,7 +77,7 @@ runs:
     # VALIDATE FILE START
     - name: Download checksum file
       if: inputs.validate == 'true'
-      uses: actions/download-artifact@f44cd7b40bfd40b6aa1cc1b9b5b7bf03d3c67110
+      uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe
       with:
         name: "${{ github.sha }}-${{ inputs.key }}.txt"
 . . .

Purge non-usable components (e.g.: .git and .github folders)

$ rm -rf .git .github ;
$ ls -al ;
total 16
drwxr-xr-x   4 <user-id>  staff   128 Dec  5 15:00 .
drwxr-xr-x  26 <user-id>  staff   832 Dec  5 14:51 ..
-rw-r--r--   1 <user-id>  staff  2475 Dec  5 14:52 README.md
-rw-r--r--   1 <user-id>  staff  3358 Dec  5 14:54 action.yml

Modify all the configuration files that are needed/required to be updated:

$ git status ;
On branch devsecops/emvaldes/checksum-validate
Your branch is up to date with 'origin/devsecops/emvaldes/checksum-validate'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   dependabot.yml

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	actions/checksum-validate/

no changes added to commit (use "git add" and/or "git commit -a")

13 . Modify the dependabot.yaml file and review its changes:
$ git log -p ./dependabot.yml ;
commit fba4665dd899767e4ea4da2c6cc5418bef835037
Author: Eduardo Valdes<EMAIL_ADDRESS>Date:   Thu Dec 5 15:06:13 2024 -0700

    Integrating the checksum-validate-action GitHub Action into project

diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 498f787b1..6365ac269 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -125,6 +125,11 @@ updates:
     schedule:
       interval: "daily"

+  - package-ecosystem: "github-actions"
+    directory: "/.github/actions/checksum-validate"
+    schedule:
+      interval: "daily"
+
   # Frontend
   - package-ecosystem: "npm"
     directory: "/frontend-react"
. . .

Modify if need/required the .github/actions/checksum-validate/action.yaml file and review its changes:

$ git log ./action.yml ;
commit fba4665dd899767e4ea4da2c6cc5418bef835037
Author: Eduardo Valdes<EMAIL_ADDRESS>Date:   Thu Dec 5 15:06:13 2024 -0700

    Integrating the checksum-validate-action GitHub Action into project
. . .

Adding and listing all performed changes:

$ git add . ;
$ git status ;
On branch devsecops/emvaldes/checksum-validate
Your branch is up to date with 'origin/devsecops/emvaldes/checksum-validate'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   actions/checksum-validate/README.md
	new file:   actions/checksum-validate/action.yml
	modified:   dependabot.yml

Provide a meaningful comment:

$ git commit -m "Integrating the checksum-validate-action GitHub Action into project" ;
[devsecops/<user-id>/checksum-validate fba4665dd] Integrating the checksum-validate-action GitHub Action into project
 3 files changed, 210 insertions(+)
 create mode 100644 .github/actions/checksum-validate/README.md
 create mode 100644 .github/actions/checksum-validate/action.yml

Listing current local repository status:

$ git status ;
On branch devsecops/<user-id>/checksum-validate
Your branch is ahead of 'origin/devsecops/<user-id>/checksum-validate' by 1 commit.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean

Push upstream the performed changes:

$ git push ;
Enumerating objects: 12, done.
Counting objects: 100% (12/12), done.
Delta compression using up to 12 threads
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 2.44 KiB | 2.44 MiB/s, done.
Total 8 (delta 4), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (4/4), completed with 4 local objects.
remote:
remote: GitHub found 3 vulnerabilities on CDCgov/prime-reportstream's default branch (2 high, 1 low). To find out more, visit:
remote:      https://github.com/CDCgov/prime-reportstream/security/dependabot
remote:
To https://github.com/CDCgov/prime-reportstream.git
   e564319f2..fba4665dd  devsecops/<user-id>/checksum-validate -> devsecops/<user-id>/checksum-validate

Search for all references to this package across the GitHub Workflows and Actions:

$ find . -type f | xargs -I {} egrep -Hni "JosiahSiegel/checksum-validate-action" {} ;
./actions/checksum-validate/README.md:3:[![Test Action](https://github.com/JosiahSiegel/checksum-validate-action/actions/workflows/test_action.yml/badge.svg)](https://github.com/JosiahSiegel/checksum-validate-action/actions/workflows/test_action.yml)
./actions/checksum-validate/README.md:22:        uses: JosiahSiegel/checksum-validate-action@v1
./actions/checksum-validate/README.md:28:        uses: JosiahSiegel/checksum-validate-action@v1
./actions/checksum-validate/README.md:43:        uses: JosiahSiegel/checksum-validate-action@v1
./actions/checksum-validate/README.md:52:        uses: JosiahSiegel/checksum-validate-action@v1

Make sure these external references in the documentation point to the local repository:
Note: Since we are currently using the strategy to target hash-commits, we need to make sure we reflect these specific hashes to reinforce awareness on this issue.

$ git log -p ./README.md ;
commit 58cdc60ac91f7a688a79bb1c8ceb278e73af0e4f (HEAD -> devsecops/emvaldes/checksum-validate, origin/devsecops/emvaldes/checksum-validate)
Author: Eduardo Valdes<EMAIL_ADDRESS>Date:   Thu Dec 5 15:15:57 2024 -0700

    Correcting all external references to the checksum-validate-action GitHub Action

diff --git a/.github/actions/checksum-validate/README.md b/.github/actions/checksum-validate/README.md
index e6e62a4ca..b228bfcab 100644
--- a/.github/actions/checksum-validate/README.md
+++ b/.github/actions/checksum-validate/README.md
@@ -19,13 +19,13 @@ jobs:
       - uses<EMAIL_ADDRESS>
       - name: Generate checksum of string
-        uses: JosiahSiegel/checksum-validate-action@v1
+        uses: ./.github/actions/checksum-validate@ebdf8c12c00912d18de93c483b935d51582f9236
         with:
           key: test string
           input: hello world

       - name: Generate checksum of command output
-        uses: JosiahSiegel/checksum-validate-action@v1
+        uses: ./.github/actions/checksum-validate@ebdf8c12c00912d18de93c483b935d51582f9236
         with:
           key: test command
           input: $(cat action.yml)
@@ -40,7 +40,7 @@ jobs:

       - name: Validate checksum of valid string
         id: valid-string
-        uses: JosiahSiegel/checksum-validate-action@v1
+        uses: ./.github/actions/checksum-validate@ebdf8c12c00912d18de93c483b935d51582f9236
         with:
           key: test string
           validate: true
@@ -49,7 +49,7 @@ jobs:

       - name: Validate checksum of valid command output
         id: valid-command
-        uses: JosiahSiegel/checksum-validate-action@v1
+        uses: ./.github/actions/checksum-validate@ebdf8c12c00912d18de93c483b935d51582f9236
         with:
           key: test command
           validate: true
@@ -91,4 +91,4 @@ inputs:
 outputs:
   valid:
     description: True if checksums match
-```
\ No newline at end of file
+```
. . .

Update these references with calls to the local repositoy (e.g.: .github/actions/checksum-validate):

$ git status ;
On branch devsecops/<user-id>/checksum-validate
Your branch is up to date with 'origin/devsecops/<user-id>/checksum-validate'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   actions/checksum-validate/README.md
	modified:   actions/deploy-backend/action.yml
	modified:   workflows/release_to_azure.yml

no changes added to commit (use "git add" and/or "git commit -a")

Push these latest changes to the upstream repository (project):

$ git add . && git commit -m "Correcting all external references to the checksum-validate-action GitHub Action" ;
[devsecops/<user-id>/checksum-validate 58cdc60ac] Correcting all external references to the checksum-validate-action GitHub Action
 3 files changed, 7 insertions(+), 13 deletions(-)
devops: .github (devsecops/<user-id>/checksum-validate>) $ git push ;
Enumerating objects: 19, done.
Counting objects: 100% (19/19), done.
Delta compression using up to 12 threads
Compressing objects: 100% (9/9), done.
Writing objects: 100% (10/10), 939 bytes | 939.00 KiB/s, done.
Total 10 (delta 7), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (7/7), completed with 7 local objects.
remote:
remote: GitHub found 3 vulnerabilities on CDCgov/prime-reportstream's default branch (2 high, 1 low). To find out more, visit:
remote:      https://github.com/CDCgov/prime-reportstream/security/dependabot
remote:
To https://github.com/CDCgov/prime-reportstream.git
   fba4665dd..58cdc60ac  devsecops/<user-id>/checksum-validate -> devsecops/<user-id>/checksum-validate

The following Pull Request will merge into the MAIN branch after completing all unit-testings and a Peer Review. https://github.com/CDCgov/prime-reportstream/pull/16728

29. Once your Pull Request is peer reviewed, you will have green light to proceed. At times, you might need to update the current branch with the MAIN branch.

30. You must make sure that the Squash and Merge are performed and that you retain only relevant information to be part of the build and merge.

31. The conclusion of this process is now illustrated here and it has only pending to get the GitHub Issue closed but it will be automatically resolved via this process.


Breakpoints & sourcemaps do not work with a react native setup in Webstorm

Issue

When running a react native configuration, it is impossible for me to get any breakpoints to register in Webstorm.
Debugger statements work but do not break at the correct line.
I have a suspicion that the sourcemaps are to blame. This is an example of it breaking before the debugger statement:

However when I remove the typescript interface it breaks like this:

My thoughts are, that it is using an es6 sourcemap, and not the typescript sourcemaps.
My tsconfig is set to enable inline sourcemaps, and looks like this:
{
    "compilerOptions": {
        "jsx": "react",
        "allowSyntheticDefaultImports": true,
        "target": "es2015",
        "moduleResolution": "node",
        "inlineSourceMap": true
    },
    "exclude": [
        "node_modules"
    ]
}

and jest config looks like this:
	"jest": {
		"preset": "react-native",
		"transform": {
			"^.+\\.js$": "<rootDir>/node_modules/babel-jest",
			".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js"
		},
		"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
		"moduleFileExtensions": [
			"ts",
			"tsx",
			"js",
			"json"
		],
		"globals": {
			"__DEV__": true
		}
	}

I do not know if this is a webstorm or jest regression, or whether the react native build setup has anything to do with it.

Expected behavior

I expect to be able to set breakpoints, and that the debugger statements stop at the correct place.

Link to a minimal repo that reproduces this issue

This is a minimal repo that reproduces the issue. Simply go to the some-test.test.tsx, and in webstorm left click on the test and click debug.
https://github.com/GeeWee/rn-typescript-example/tree/ts-loader-bug
I'm not sure how to set up any test cases for this particular bug.

I was able to get the debugger to stop at the breakpoint with the following changes:

comment out allowSyntheticDefaultImports from tsconfig.json
use jest 20.0.0
add the following in jest config:

"testPathIgnorePatterns": ["/node_modules/", "<rootDir>/src/some-test.test.js"],
"mapCoverage": true,

Great stuff, I was as well! Thanks a lot for the quick reply @kulshekhar .
The only thing that was actually needed was commenting out the allowSyntheticDefaultImports
However, my codebase makes quite a bit of use of default imports, e.g. import React from 'react'
My tests work with these, if allowSyntheticDefaultImports is on.
I figured I could simply run the test suite with allowSyntheticDefaultImports - as tsc explicitly states it only has to do with typechecking, not code emission, as that would let the breakpoints work.
However - it's not quite that simple. My tests actually start breaking when it is turned off, even when doing a lot of the workarounds described in #92.
I've updated the repo at https://github.com/GeeWee/rn-typescript-example/tree/ts-loader-bug to display this new issue. If you run it out of the box, with allowSyntheticDefaultImports: true the tests will pass, and the breakpoints will not work, but if you run it with allowSyntheticDefaultImports: false the breakpoints will work, but the test imports will fail.
Note that you'll need to run the webstorm configuration with --no-cache to provoke it reliably.

I don't really use babel or synthetic imports so I'm not sure what needs to be done here.
When allowSyntheticDefaultImports is set, ts-jest uses babel-jest internally to process typescript compiler's output. I suspect this is probably where the fix would go. I'm not sure though.
Maybe @ds300 can chime in?

Yes that makes perfect sense! Because babel-jest ( at least with the react native preset ) creates synthetic default exports that typescript can grab.
It seems like the problem here would be that if the ts files are passed to babel-jest, the sourcemaps are not included.
I have set sourceMaps: "inline" in my .babelrc and it seems to allow me to set breakpoints and not fail my tests.
I've updated my repo - can you see if it works for you?
I would be willing to do a PR explaining a more detailed react-native setup guide. (e.g. someone should really mention it pipes it through babel-jest if you use allowSyntheticDefaultImports - I spent quite a bit of time on a preprocessor that would do essentially the same thing)

@GeeWee that worked! A PR with the explanation would be very welcome :)

Wonderful! I'll definitely get a PR up and rolling, though I'll want to make sure the same setup works in VSCode as well :)

@kulshekhar  - this setup also works in VSCode. At least almost.
I have debugger statements working, and it shows the correct source code, so the sourcemaps work.
However, I'm unable to set breakpoints - vscode seems to ignore those handily.
I'd love to get a PR in explaining both editors, but I'm a little hindered right now - I'm not very good with VSCode.
Do you have any ideas? Would you like me to open a new issue?

@GeeWee It might be best to add instructions for Webstorm/IDEA (since we have that working) and open a new issue for VS Code.

@kulshekhar This workaround does work, however it is an issue since now the test code after compilation does not match the actual code after compilation.
For example:
import * as pathToRegexp from 'path-to-regexp';

The library above requires "allowSyntheticDefaultImports": true.
When so, the value of pathToRegexp is a function.
When running in test I get an error since the imported module pathToRegexp is not a function, it is an object with a default property that is the function.
This creates an inconsistent behaviour

@shlomiassaf are you referring to this workaround?

Actually I used the other one but it's the same.

@shlomiassaf those two aren't the same. If there seems to be a problem, can you create & share a minimal repo specific to your case?

I have created #212 for the VSCode issue.

@kulshekhar
https://github.com/shlomiassaf/ts-jest-issue-209
npm run start will execute a ts file
import * as pathToRegexp from 'path-to-regexp';

console.log(`Type of module alias import of "path-to-regexp" is ${typeof pathToRegexp}`);

This should show that pathToRegexp is a function
Then npm run test will execute unit testing with jest and ts-jest
import * as pathToRegexp from 'path-to-regexp';

describe('TEST', () => {
  it('module alias import of "path-to-regexp" should be a function', () => {
    // if this fails it means that pathToRegexp is an object with a "default" property that is the expected function
    expect(typeof pathToRegexp).toEqual('function');
  });
});

It will fail since pathToRegexp is now an object with a default property referencing the function.
This is an expected behaviour when allowSyntheticDefaultImports": false, which is not the case.
Note that both tsconfig files are identical
You can remove the .babelrc file, it will still fail the test.

@shlomiassaf I'm slightly confused here. How is this relevant to the proposed solution (which sets allowSyntheticDefaultImports to true)?

@kulshekhar If you look at the code you will see that for the same code compiled with TS, ts-jest emits a different output.

Both tsconfig file are identical
allowSyntheticDefaultImports` set to true.

When using this statement:
import * as pathToRegexp from 'path-to-regexp';

In TS compilation without ts-jest pathToRegexp is a function
In TS compilation with ts-jest pathToRegexp is an object.
It's not deterministic, different outcome for the same TS compilation process

@shlomiassaf that's because when allowSyntheticDefaultImports is set to true, ts-jest processes the output of the typescript compiler with babel. This is required because Jest can only process ES5 code. There's no way around this.
This is also unrelated to this issue. If you think there needs to be a discussion on this here, it might be better to open a new issue so that we can focus better.

@kulshekhar I'll open an issue, just to understand, why would you need babel for that? you can use TS compiler to emit ES5 code.

@shlomiassaf let's continue the discussion in the new issue :)

Closing with #216

FWIW my solution was found in this thread: https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000705364-Debugging-typescript-node-project-doesn-t-reach-set-breakpoints
It wasn't obvious to me that code coverage reporting needs to be turned off in order to get proper source mappping (although it makes sense when you stop and think about it).


Add /find-accounts link on new server page

More discussion at - https://chat.zulip.org/#narrow/stream/16-desktop/topic/Find.20accounts

@akashnimare how would you suggest going about this - a <webview> that loads in another window or a core Electron solution that just calls the relevant APIs and displays results accordingly? The second is a little more work (I'm not very familiar with the web side of things on Zulip yet), but I'd personally prefer using that.

Still working on this issue (it requires me to work with both the Electron and the web-facing versions of the app).


Don't throw an exception when pygments fails to highlight.

We have code that when pygments fails to highlight, we raise an
exception.  This exception is caught in
src/infrastructure/markup/syntax/engine/PhutilSyntaxHighlighterEngine.php,
at which point the engine moves to using the default syntax
highlighter instead.
But there's a bug whwere sometimes (when the http call returns right
away) the exception is thrown somewhere unexpected, where
PhutilSyntaxHighlighterEngine doesn't catch it properly.  epriestley
hsa promised a fix in https://admin.phacility.com/PHI1764, but without
a timeline.
This change works around the problem in the meantime, by just
short-circuiting the exception step.  We just go straight to
constructing the default highlighter ourselves if pygments gives an
error.
I don't know php at all, so I can't say for sure that this will work
-- perhaps it causes an import cycle (does php have such things?) or
the symbol isn't visible, or something like that. I don't know how to
tell.  I tried running the phabricator test suite but I couldn't get
the instructions at
/home/csilvers/khan/devtools/arcanist/src/init/init-library.php:12 to
work:
phabricator% arc unit
Exception
Unable to establish a connection to any database host (while trying "phabricator_config"). All masters and replicas are completely unreachable.

Exception: About to call mysql_connect(), but the PHP MySQL extension is not available!
(Run with `--trace` for a full exception trace.)

% arc --config-path=../arcanist/.arcconfig unit
Usage Exception: Unknown command '--config-path=../arcanist/.arcconfig'. Try 'arc help'.

Issue: https://admin.phacility.com/PHI1764
Test plan:
Fingers crossed

I couldn't figure out how to send a code review via phabricator (same errors as when I tried to run tests), so github it is!  That will make it easier to test anyway.


Optimize memory consumption on using levels > 1

https://github.com/trickest/mksub/issues/2

it would be good if there is some tweak to optimize memory consumption on -l 3 with a single domain and a list of approx 5k
Hogging memory on -l 2 with a single domain and list of 10k

We can try to write output directly to stdout to avoid allocating memory for the whole wordlist.

Resolved! Enjoy it and feel free to send any feedback 🚀  @jaikishantulswani

@PolovinaD Thank you but there is still an issue as I am not getting any output.

@jaikishantulswani By default there is no printing to stdout because it slows everything down. It's saved into a folder named mksub-out instead (if you haven't used -o parameter to change it), and then into one or multiple files inside that folder. If you want to watch it on stdout just add -silent=false.
Also, if you're using the compiled binary, that's the old version. We're still testing mksub on trickest.io, so I'll publish a new release as soon as we make sure it works well with other tools and the platform itself.
I hope this helps 😄


feat(curriculum): Add progress indicators to maps

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #50412

Just a few quick observations for now:

Since these are ordered lists, I think we should use ol instead of ul for them.
You can't have h2 elements as direct children of list elements. Each of these stages will probably need to be it's own list with its corresponding h2 right above it.

Also, all of the numbers have the black ribbon background. Are we still going to distinguish completed vs. uncompleted by giving the uncompleted numbers a different look?

@bbsmooth regarding your second bullet point, do you think the elements should be ordered like this ?
<>
     <Spacer size='small' />

            Stage {indx + 1}: {stage}

           {blockElement}

</>

About the ribbon thing, since the certified user have all the certifications there is, it's expected that all numbers are included with the ribbon.
I tried using MongoDB Compass to change the user certifications list, but I couldn't open it for who-knows reason. I could use shell to update, but I thought I will hear you guys out about this first.

@huyenltnguyen sure. The lint requires me to state the type of the two variables above, so I decided to declare the type of the variables in one line instead.
(certSlugTypeMap as { [key: string]: string })[cert.certSlug] === (superBlockCertTypeMap as { [key: string]: string })[superBlock]
                        ```

When I investigated the failed Cypress tests, my thoughts about them as follows:
In ["Should render a curriculum map"]
(https://github.com/freeCodeCamp/freeCodeCamp/actions/runs/5807008783/job/15741440717?pr=51127#step:13:380) test case, the query selector needs to be updated.
I have no idea how to fix the Lint error inside the link

running pnpm format:prettier should format that file.
if it doesn't, visit the file in your editor and format it there with prettier.

Thanks. Should I do anything about the test case aside from running the lint ?

The conflicts will need to be resolved. Let us know if you need assistance with that.

Kindly check again since the conflict is resolved.

It does look like the cypress tests will need to be updated.

Sorry, need to temporarily block this for the next week while we work on add another superblock and make some slight changes to the map. Feel free to keep working on it, though.

In Should render a curriculum map test case, the query selector needs to be updated.

Sure. I'll work on changing the query selector as mentioned before.

Unblocked. We made the C# live, this will need a rebase and possibly some adjustments on the design.

Tom's suggestion sounds good to me. @CallmeHongmaybe, please let us know if you need help with completing this pr.

@ahmaxed I'm on it. Sorry for the long wait.

Closing this in favour of #52686 , feel free to go ahead and work on this or leave it to the other contributor.


TODO: Convert ROS Encryption to a web app

Resolved in https://github.com/Richienb/ROS-Encryption/commit/47e02142d6a0feb734f12c248421a65070760c57, https://github.com/Richienb/ROS-Encryption/commit/fb9d3b1810f156a1e369a0aafa8c123cc6841039, https://github.com/Richienb/richienb.github.io/commit/e21da72477012bb8e74ae3ef9fc52e2a1754de7a and https://github.com/Richienb/richienb.github.io/commit/bf6fd428d17ee62efedfc2a55521623f6e9dcd82


Globstar not working when there is a directory after it

Hopefully I've narrowed down this issue enough to make sense.
Here is a test app (test.js):
require('chokidar').watch('/tmp/a/**/d/*.txt', {
  persistent: true,
}).on('all', function(event, path) {
  console.log(event, path);
}).on('ready', function() {
  console.log('ready');
})

Setting up environment:
$ mkdir -p /tmp/a/b/c/d
$ touch /tmp/a/b/c/d/e.txt
$ node test.js

Expected output:
add /tmp/a/b/c/d/e.txt
ready

Actual output:
ready

It is not picking up the file because the globstar is only matching one level of directories, not one or more as I expected. I've tested this in minimatch and anymatch and these work as expected.
In file test2.js:
var anymatch = require('anymatch');
console.log(anymatch('/tmp/a/**/d/*.txt', '/tmp/a/b/c/d/e.txt'));

$ node test2.js
true

Is this a bug? Thanks!

Yes, it's a bug. However it only applies to the initial readdirp scan. If you touch /tmp/a/b/c/d/e.txt again while the watcher is running, events do get emitted.
This is likely related to #239, in that I suspect they have the same underlying cause.

Actually, when I touch the file with touch /tmp/a/b/c/d/e.txt it does not emit an event. However, if I do:
mkdir a/d
touch a/d/e.txt

I do get an add /tmp/a/d/e.txt.
Sorry, I forgot to add environment info to my issue:
OS: Ubuntu 14.04.2
Node: v0.10.25
npm versions:
/tmp
└─┬<EMAIL_ADDRESS>  ├─┬<EMAIL_ADDRESS>  │ └─┬<EMAIL_ADDRESS>  │   ├──<EMAIL_ADDRESS>  │   └──<EMAIL_ADDRESS>  ├──<EMAIL_ADDRESS>  ├─┬<EMAIL_ADDRESS>  │ └──<EMAIL_ADDRESS>  ├─┬<EMAIL_ADDRESS>  │ └──<EMAIL_ADDRESS>  └─┬<EMAIL_ADDRESS>    ├──<EMAIL_ADDRESS>    ├─┬<EMAIL_ADDRESS>    │ ├──<EMAIL_ADDRESS>    │ └──<EMAIL_ADDRESS>    └─┬<EMAIL_ADDRESS>      ├──<EMAIL_ADDRESS>      ├──<EMAIL_ADDRESS>      ├──<EMAIL_ADDRESS>      └──<EMAIL_ADDRESS>

Thanks @es128, this has solved my issue! :smiley:


add dark mode / light mode drawer link style

Add drawer link styles inherited from the theme; ref: #36

@gbowne1 submitting a PR for #36 since I consider it my aggregate oopsie.


VMS build: colon after target must be separated with a space

... otherwise, it's taken to be part of a device name.

Wow, that was quick!
Merged.
master:
e9994901f835420764d020968d4588fc09ec74c3 VMS build: colon after target must be separated with a space
1.1.1:
37044f45579368faa5c6fb2f2f71de8fd7f21ab2 VMS build: colon after target must be separated with a space
1.1.0:
401e1c9d9d2202fff557f6286f47214803bf7e15 VMS build: colon after target must be separated with a space


Add fullscreen out of Google VRView iframe [ON WORK]

@lincolnfrog and @tommytee this is the code of what I was talking about on #178. When I click play it doesn't go fullscreen using WorldRenderer's code. If you can advise me on how to achieve this I'd appreciate it. Thanks

I fixed the bug where it doesn't go to fullscreen (including these changes) here: https://github.com/googlevr/vrview/pull/219. Please review.

I see: I missed setting the message's SET_FULLSCREEN in the receiver. You stated that there's an issue in this PR still right? The one related to using ESC to get out of the fullscreen. That happens because the control bar is not visible, and since we removed the button from the iframe is expected unless we change CSS styles for the control bar when using fullscreen. I can create the styles for that but it was intended that way.

It still creates a bug where the icon is wrong when you hit escape. Do you still want to try to merge this into master? I am of the opinion that this change is fairly custom and most users of vrview will be happy with the default fullscreen behavior. Thoughts?

Could be. I just picture the scenario when you need to use GoogleVRView with any other existing major player and you need to adapt now code to make it work. If we had this PR it could facilitate integration with them. Just my 2 cents

I am not opposed to merging this PR if we can iron out the details better. In my view, here are the things I would like to see:

add my fix for the SET_FULLSCREEN case statement in the message handler
Fix the bug where when you hit escape the icon doesn't change back to "expand" state
Figure out a way to make the original default fullscreen behavior be the default and allow people to opt-in to this custom handling control paradigm.

If you can meet those three items, I would be interested in merging this.

Sounds good. I'll work on these fixes and I'll give you an update soon. The point 3 is gonna take me some time but I see the value on that. Right now if you just use hideButton as false it will make the fullscreen and VR buttons appear, and that's the original behavior. You need something else on that?

I think the best thing would be to have your new button not appear by default and the original embedded fullscreen button be the only thing. You can add a section to the README.md about how to enable the custom fullscreen UI and disable the embedded UI. Does that make sense?

Sounds good to me. As long as I can state that is possible to hide the fullscreen button and have a custom one I'm OK with this. So I'll take care of 1 and 2, and add a note on README for 3. Is that ok?

Note on README + default functionality is the way it is now unless you
follow the toggle instructions in README, right?
On Mon, Jul 10, 2017 at 1:35 PM, Rafael Miranda<EMAIL_ADDRESS>wrote:

Sounds good to me. As long as I can state that is possible to hide the
fullscreen button and have a custom one I'm OK with this. So I'll take care
of 1 and 2, and add a note on README for 3. Is that ok?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/googlevr/vrview/pull/212#issuecomment-314228607, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AHml0R2UbFdTFu5KmyDBWTzGlZHI-HfSks5sMosPgaJpZM4OPi7Q
.

In the example I deactivated the fullscreen so I just need to remove that piece of code to be the default functionality. Is that what you meant?

Yes, I believe so.
On Mon, Jul 10, 2017 at 2:20 PM, Rafael Miranda<EMAIL_ADDRESS>wrote:

In the example I deactivated the fullscreen so I just need to remove that
piece of code to be the default functionality. Is that what you meant?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/googlevr/vrview/pull/212#issuecomment-314249398, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AHml0XNc4FbOJpNEiAEAb-ikg9hykIZ6ks5sMpWRgaJpZM4OPi7Q
.

OK I'll work on this and I'll let you know when it's ready to review once more. Thanks for your help

OK @lincolnfrog the changes we discussed yesterday are now in place; let me know if you need anything else. Thanks

Ok I'll change the name of the configuration and I'll try to come up with a better language for it in the table. I'll get this done in a little

OK changes in place. Let me know your thoughts. Thanks for the feedback

Thanks


Added auto-completion support for enum type.

Thank you, this looks great! I will test your PR this week!

Thank you, this looks great! I will test your PR this week!

Thanks. I'm kind of new to both Teal and LSP, so I basically followed your code and tried to mimic something similar. It works in my own test, but it indeed needs review and thorough tests.


OSFUSE-515: Pass along JAVA_OPTIONS to karaf in EXTRA_JAVA_OPTS

@dhirajsb I started a off new branch v<IP_ADDRESS>-redhat (reasoning behind this in this ticket
Maybe we should cherry pick the change there, too ?


Nix: read rust-toolchain

Use Nix to parse ./cargo/rust-toolchain instead of repeating the information in flake.nix.

Thanks a lot for this! :)


w/ and w/o do not work

When I type w/ or w/o followed by a space, those abbreviations are not converted into the full word.

Thank you, both now work.
FYI, I am on Linux Mint Debian Edition (LMDE).


upgrading Microsoft.Azure.Functions.Worker.Sdk from 1.15.1 to 1.17.0 causes build to fail

Description

MSB4018: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\obj\Release\net48\WorkerExtensions\buildout\bin\extensions.json'.

this problem is similar to https://github.com/Azure/azure-functions-dotnet-worker/issues/2125.
i use teamcity to build my solution with the following command:
"C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.sln -t:Rebuild -p:Configuration=Release -p:TargetProfile=Production

my azure function is a v4 dotnet-isolated project targeting net48.
i am running the latest tools (as of this post):
PS C:\> func
Azure Functions Core Tools
Core Tools Version:       4.0.5530 Commit hash: N/A +c8883e7f3c06e2b424fbac033806c19d8d91418c (64-bit)
Function Runtime Version: <IP_ADDRESS>62

when my azure function project includes:
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.15.1" />
the build succeeds.
after upgrading to:
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.17.0" />
the build fails.
here are the relevant lines from the build log of the successful build:
all references to extensions.json:
[19:21:27] :	[Project "WorkerExtensions.csproj": Build]   Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.Console.dll "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin" "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\extensions.json"
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\extensions.json" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\extensions.json".
[19:22:40] :	[Project "HoursTracker.Jobs.Host.csproj": Rebuild]  [34;1m  Deleting file "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\extensions.json".
[19:22:45] :	[Project "WorkerExtensions.csproj": Build]   Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.Console.dll "C:\TeamCity\buildAgent\temp\buildTmp\cane5v32.jmv\buildout\bin" "C:\TeamCity\buildAgent\temp\buildTmp\cane5v32.jmv\buildout\bin\extensions.json"
[19:22:46] :	[Project "HoursTracker.Jobs.Host.csproj": Rebuild]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\cane5v32.jmv\buildout\bin\extensions.json" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\extensions.json".

and the entirety of WorkerExtensionsBuildCopy task:
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [36;1m_WorkerExtensionsBuildCopy:
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Creating directory "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Creating directory "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Creating directory "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Creating directory "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Azure.Identity.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Azure.Identity.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Azure.Core.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Azure.Core.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Azure.Storage.Queues.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Azure.Storage.Queues.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Azure.Storage.Common.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Azure.Storage.Common.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\extensions.json" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\extensions.json".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\function.deps.json" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\function.deps.json".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Microsoft.Azure.Functions.Worker.Extensions.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Microsoft.Azure.Functions.Worker.Extensions.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Microsoft.Azure.Functions.Worker.Extensions.pdb" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Microsoft.Azure.Functions.Worker.Extensions.pdb".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Microsoft.Azure.WebJobs.Extensions.FunctionMetadataLoader.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Microsoft.Azure.WebJobs.Extensions.FunctionMetadataLoader.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Microsoft.Azure.WebJobs.Host.Storage.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Microsoft.Azure.WebJobs.Host.Storage.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Microsoft.Bcl.AsyncInterfaces.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Microsoft.Bcl.AsyncInterfaces.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Microsoft.Azure.WebJobs.Extensions.Storage.Queues.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Microsoft.Azure.WebJobs.Extensions.Storage.Queues.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Microsoft.Extensions.Azure.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Microsoft.Extensions.Azure.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Microsoft.Identity.Client.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Microsoft.Identity.Client.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Microsoft.IdentityModel.Abstractions.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Microsoft.IdentityModel.Abstractions.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Microsoft.Identity.Client.Extensions.Msal.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Microsoft.Identity.Client.Extensions.Msal.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\System.IO.Hashing.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\System.IO.Hashing.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\bin\Microsoft.WindowsAzure.Storage.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\Microsoft.WindowsAzure.Storage.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Creating directory "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\runtimes\win\lib\netstandard2.0".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\temp\buildTmp\fnfxvons.qa2\buildout\runtimes\win\lib\netstandard2.0\System.Security.Cryptography.ProtectedData.dll" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\.azurefunctions\runtimes\win\lib\netstandard2.0\System.Security.Cryptography.ProtectedData.dll".
[19:21:28] :	[Project "HoursTracker.Jobs.Host.csproj"]  [36;1mDone Building Project "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\HoursTracker.Jobs.Host.csproj" (default targets).

here are the relevant lines from the build log of the failed build:
all references to extensions.json:
[19:10:49] :	[Project "WorkerExtensions.csproj": Build]   Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.Console.dll "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\obj\Release\net48\WorkerExtensions\buildout\bin" "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\obj\Release\net48\WorkerExtensions\buildout\bin\extensions.json"
[19:10:50] :	[Project "HoursTracker.Jobs.Host.csproj"]  [34;1m  Copying file from "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\obj\Release\net48\extensions.json" to "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\extensions.json".
[19:11:58] :	[Project "HoursTracker.Jobs.Host.csproj": Rebuild]  [34;1m  Deleting file "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\bin\Release\net48\extensions.json".
[19:11:58] :	[Project "HoursTracker.Jobs.Host.csproj": Rebuild]  [34;1m  Deleting file "C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\obj\Release\net48\WorkerExtensions\buildout\bin\extensions.json".
[19:11:58] :	[Project "HoursTracker.Jobs.Host.csproj": Rebuild]  [34;1m  Deleting file "obj\Release\net48\extensions.json".

and the build error:
[19:12:06]E:	[MSBuild] C:\TeamCity\buildAgent\temp\buildTmp\.nuget\packages\microsoft.azure.functions.worker.sdk\1.17.0\build\Microsoft.Azure.Functions.Worker.Sdk.targets(166,5): error MSB4018: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\obj\Release\net48\WorkerExtensions\buildout\bin\extensions.json'.

Steps to reproduce
upgrade Microsoft.Azure.Functions.Worker.Sdk from 1.15.1 to 1.17.0 and compile the project using msbuild.

This has also been raised as https://github.com/Azure/azure-functions-dotnet-worker/issues/2294 which has a PR against it.

Hi @davidpeden3 can you upgrade to SDK version 1.17.2 and see if that resolves this issue for you?

it did not. however, the error is different. i re-tried updating from 1.15.0 to 1.17.0, 1.17.1, and 1.17.2. note the new error. as mentioned in the op, i am targeting net48 so this is a show-stopper for me.
here are the outputs from teamcity:
1.17.0

The "EnhanceExtensionsMetadata" task failed unexpectedly.
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\obj\Release\net48\WorkerExtensions\buildout\bin\extensions.json'.

1.17.1

The "EnhanceExtensionsMetadata" task failed unexpectedly.
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\TeamCity\buildAgent\work\d3709b43d4e86d98\Source\HoursTracker.Jobs.Host\obj\Release\net48\WorkerExtensions\buildout\bin\extensions.json'.

1.17.2

C:\TeamCity\buildAgent\temp\buildTmp\v4yevere.fx2\WorkerExtensions.csproj(18,9): error : The target framework 'net48' must be 'net6.0'. Verify if target framework has been overridden by a global property.

@davidpeden3 Do you have .NET6 installed in your build/CI environment? It is required since the function app auto generates a n internal project which targets .NET6.

@kshyju why would .NET 6 be required? i've upgraded to 1.17.2 as well and am seeing the same error. this is just a dotnet build on Github actions. so you have a dependency on a version of .NET that isn't even installed on GH actions?

@davidpeden3 The 1.17.0 & 1.17.1 versions had a regression. 1.17.2 fixed that (rolled back the changes that caused the regression).
When you build a dotnet-isolated function, it creates an inner project called WorkerExtensions.csproj in a temp folder (You can see the full path of it in the build output). The TargetFramework of this project must be net6.0. Based on the error you are seeing , looks like this value was overridden by some other settings.
Do you have a global.json in your repo? Can you think of any other thing in your CI which is forcing the TargetFramework value to be different than net6.0?
Do you see same error when trying to publish it locally by running dotnet publish -c release ?
If you want to try with a minimal .NET framework app, you can download this app and try that. I was able to create a GH action to publish this minimal project without any issues. You can see the GH action script here.

@kshyju .NET 6 should not (and can not be required) for some automatic generated interal project if we are building an Azure functions project that is based on .NET 8

@kshyju i appreciate your follow up. i have subscribed to and read through all of the threads reporting similar issues and seen your copy/pasted response in all of them. i've reviewed the "regression" and i've looked at the reversion of the commit. i understand the differences in the different versions.
as for my project, i do have a TargetFramework variable set. it's always been there. always worked. in 1.17.2 it doesn't. frankly, i'm not sure that i can remove that variable. time permitting, i will explore why i have it there. i've had this build set up for years.
in the meantime, i'm sitting on an older version until you guys get this sorted out. the internet has clearly spoken and is not happy with the hardcoded net60 dependency on the internal project.

@kshyju .NET 6 should not (and can not be required) for some automatic generated interal project if we are building an Azure functions project that is based on .NET 8

.NET 6 is required because the functions host runs on .NET6 - note that the host is a distinct process from your worker (what your csproj builds) which can be .NET8. Our SDK has an inner build which is responsible for discovering and collecting the host extensions, which must be all done with the .NET6 TFM. If any other TFM is used for this inner build you risk encountering runtime assembly load failures.

.NET 6 is required because the functions host runs on .NET6 - note that the host is a distinct process from your worker (what your csproj builds) which can be .NET8. Our SDK has an inner build which is responsible for discovering and collecting the host extensions, which must be all done with the .NET6 TFM. If any other TFM is used for this inner build you risk encountering runtime assembly load failures. While this is not ideal, there is no way around it. The host is a prebuilt application and the TFM used by it is intentionally decoupled from what TFM you use in your worker project. This is so you do not need to wait for the host to support a TFM before you yourself upgrade to it. The result of this is that we still need the TFM for the host available at both compile and runtime.

@jviau that all makes sense. what's unclear to me is how those of us affected (that are doing non-net60 builds) have any influence over the internal build at all. if you require net60, why don't you enforce that as a part of the command that initiates the internal build rather than telling us net48/net80 projects that we cannot target anything other than net60? i.e., why are the builds coupled at all?

An interesting side effect of this affects us in our samples at Particular Software at https://docs.particular.net.
We multi-target our samples for ease of development, and when we build our docs site a process munges the csproj files to create individual zip file downloads for each target framework.
Now, I suppose that when the outer (multi-targeted) build triggers the inner (single-target) build it does so with $(TargetFramework) value that bleeds through to the additional project (what @kshyju refers to as the "inner" build that shows up in the build directory as the .azurefunctions directory - I prefer to call it the "host" project) and prevents our build from succeeding.
So while we know it's not a "normal" use case for a Functions app to be multi-targeted (it's an app, you have to pick something to run it on!) up until this point it helped us to be able to do it. But I do wonder if there isn't a way to change what's going on in MSBuild that would allow the "host" project to dictate it must build as net6.0 without putting any extra requirements on the environment, which would make others in this thread happy and allow our multi-targeted builds to succeed as well.

I am facing the same issue when building function app project targeting .NET 8 in isolated model in Azure DevOps pipeline. The project build fine in local environment but gives this error in Azure DevOps pipeline

I am facing the same issue when building function app project targeting .NET 8 in isolated model in Azure DevOps pipeline. The project build fine in local environment but gives this error in Azure DevOps pipeline. I have added steps for installing both .NET 6 and .NET 8 in the ADO pipeline but still facing the same issue. What is the solution to this problem?
Here is the error message : ##[error]C:\Users\VssAdministrator.nuget\packages\microsoft.azure.functions.worker.sdk\1.17.2\build\Microsoft.Azure.Functions.Worker.Sdk.targets(190,9): Error MSB4018: The "EnhanceExtensionsMetadata" task failed unexpectedly. System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:\a\1\b\publish_output.azurefunctions\extensions.json'.

Have the same exact scenario and and issue.  Tried downgrading to 1.15.1 and still same issue. Please fix!!!

@jviau that all makes sense. what's unclear to me is how those of us affected (that are doing non-net60 builds) have any influence over the internal build at all. if you require net60, why don't you enforce that as a part of the command that initiates the internal build rather than telling us net48/net80 projects that we cannot target anything other than net60? i.e., why are the builds coupled at all?

Our recent SDK update does aim to prevent unintentional overriding of the inner-builds TFM. We also have an error message included just in-case your build does somehow override the TFM from net6 to something else. This is to ensure the failure happens at compile time rather than runtime.

@pkpaul5, @jaywar, @DavidBoike, @davidpeden3 can you all share the commands you are using to build the projects?

@jviau here is my pipeline yml with sensitive data removed and a screenshot of the error:

# .NET Core Function App to Windows on Azure
# Build a .NET Core function app and deploy it to Azure as a Windows function App.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/en-us/azure/devops/pipelines/languages/dotnet-core

trigger:
- none

variables:
  # Azure Resource Manager connection created during pipeline creation
  azureSubscription: 'azure-subscription-here'

  # Function app name
  functionAppName: 'function-name-here'

  # Agent VM image name
  vmImageName: 'windows-latest'

  # Working Directory
  workingDirectory: '$(System.DefaultWorkingDirectory)'

  # Location of Solution and Project Files
  solution: $(workingDirectory)/solution-here/project_here.sln

  buildConfiguration: 'Release'

  # VSBuild output directory
  outputDirectory: $(workingDirectory)/publish_output/

stages:
- stage: Build
  displayName: Build stage

  jobs:
  - job: Build
    displayName: Build
    pool:
      vmImage: $(vmImageName)

    steps:
    - checkout: self
    - checkout: git://solution-here/project-here@master

    - task: NuGetCommand@2
      displayName: "NuGet Restore"
      inputs:
        restoreSolution: '$(solution)'

    - task: VSBuild@1
      displayName: "Build Solution"
      inputs:
        solution: '$(solution)'
        msbuildArgs: '/p:OutDir="$(outputDirectory)"'
        configuration: '$(buildConfiguration)'

    - task: ArchiveFiles@2
      displayName: 'Archive files'
      inputs:
        rootFolderOrFile: $(outputDirectory)
        includeRootFolder: false
        archiveType: zip
        archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
        replaceExistingArchive: true

    - publish: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
      artifact: drop

- stage: Deploy
  displayName: Deploy stage
  dependsOn: Build
  condition: succeeded()

  jobs:
  - deployment: Deploy
    displayName: Deploy
    environment: 'development'
    pool:
      vmImage: $(vmImageName)

    strategy:
      runOnce:
        deploy:

          steps:
          - task: AzureFunctionApp@1
            displayName: 'Azure functions app deploy'
            inputs:
              azureSubscription: '$(azureSubscription)'
              appType: functionApp
              appName: $(functionAppName)
              package: '$(Pipeline.Workspace)/drop/$(Build.BuildId).zip'

@jaywar can you try with the latest preview SDK? https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk/1.17.3-preview1

@jviau I was able to build the Azure Pipeline successfully on 1.17.2 (also tried 1.17.3-preview1 which was successful also). I was using the Nuget Restore (NuGetCommand@2) and Build (VSBuild@1). Now I am using Restore (UseDotNet@2 / DotNetCoreCLI@2) and Build (DotNetCoreCLI@2).
# Restore project
    - task: UseDotNet@2
      displayName: 'Use .NET Core sdk 8.x'
      inputs:
        version: 8.x
    - task: DotNetCoreCLI@2
      displayName: Restore
      inputs:
        command: 'custom'
        custom: 'restore'
        projects: $(solution)

    # Build project
    - task: DotNetCoreCLI@2
      displayName: Build
      inputs:
        command: 'custom'
        custom: 'build'
        arguments: '--no-restore --output $(Build.ArtifactStagingDirectory)'
        projects: $(solution)
        zipAfterPublish: true

@jaywar:  1.17.2 had many of the SDK changes rolled back due to a regression (which is addressed, and the SDK changes added back in 1.17.3-preview1).
I think this must have something to do with a minute difference between Dotnet and VSBuild tasks. One thing I can tell is the output property does differ between them: --output will set OutputPath in the build, and VSBuild you are setting OutDir. I need to look into if OutDir is a property we should be expecting/supporting.

@fijsh do you get the same error in 1.17.3-preview1? If so, can you share your build steps? Are you setting OutDir as well?

@fijsh do you get the same error in 1.17.3-preview1? If so, can you share your build steps? Are you setting OutDir as well?

I was able to fix this by deleting all Nuget caches on my machine. I use Rider so there you go to Nuget->Folders tab and clear all caches there. 1.17.2 as well as 1.17.3-preview don't give an issue anymore. I was having this on a local build.
Build steps in the pipeline are:
          - task: DotNetCoreCLI@2
            displayName: dotnet restore
            inputs:
              command: restore
              projects: '**/*.csproj'
              feedsToUse: 'select'
              vstsFeed: 'FeedName'
              includeNuGetOrg: true
          - task: DotNetCoreCLI@2
            displayName: "Build Projects"
            inputs:
              command: 'publish'
              projects: '**/*.csproj'
              arguments: '--configuration Release --output publish_output'
              publishWebProjects: false
              modifyOutputPath: false
              zipAfterPublish: false

@davidpeden3 are you still encountering the original issue you posted?

/bot not-stale

@patest-dev I see you marked this as not stale but have not contributed any extra information. I have already answered your previous comment.

@jviau,

can you all share the commands you are using to build the projects?

my details are in the op.

@davidpeden3 are you still encountering the original issue you posted?

i haven't had a chance to try 1.17.3-preview1. i will give that a shot and follow up. thanks

@davidpeden3 I have a feeling this is related to the msbuild command being used. Perhaps this creates an import graph / property set our targets are not expecting. Can you capture a binlog? https://msbuildlog.com/

Hey, I am seeing this issue since this morning.

Hey, I am seeing this issue since this morning.

me 2

Looks like the tooling is putting a TargetFramework tag in the pubxml file. This is set to net8.0 which is causing msbuild to die on the net6.0 check on the internal build. Deleting that line from the pubxml fixes it until it regenerates the file again.
On Fri, Jul 12, 2024, 01:43 AM Matthias Huygelen @.***> wrote:
Hey, I am seeing this issue since this morning.
me 2
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.>
[
{
@.": "http://schema.org",
@.": "EmailMessage",
"potentialAction": {
@.": "ViewAction",
"target": "https://github.com/Azure/azure-functions-dotnet-worker/issues/2291#issuecomment-2225107669",
"url": "https://github.com/Azure/azure-functions-dotnet-worker/issues/2291#issuecomment-2225107669",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
@.***": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]

@wforney yes that is the exact scenario that hard failure was added to catch. Overriding TFM like that can lead to runtime failures, so we opted to have it fail at build instead. SDK 1.17.3 suppresses TFM from flowing to the inner build, so it is okay to have the TFM tag in the pubxml with that SDK version.

@MatthiasHuygelen can you share the error you are encountering?

@MatthiasHuygelen can you share the error you are encountering?

Command :
dotnet publish  --configuration Release --runtime linux-x64
Error :
C:\Program Files\dotnet\sdk\8.0.302\Microsoft.Common.CurrentVersion.targets(5270,5): error MSB3030: Could not copy the file "C:\PROJECT_NAME\src\PROJECT_NAME\obj\Release\net8.0\linux-x64\extensions.json" because it was not found

I've encountered that error also and didn't find any hint, so in the CI
pipeline I simply run the publish command twice (in a single script).
Matthias Huygelen @.***> schrieb am Mo., 15. Juli 2024,
12:52:

@MatthiasHuygelen https://github.com/MatthiasHuygelen can you share the
error you are encountering?
Command :
dotnet publish --configuration Release --runtime linux-x64
Error :
C:\Program
Files\dotnet\sdk\8.0.302\Microsoft.Common.CurrentVersion.targets(5270,5):
error MSB3030: Could not copy the file
"C:\PROJECT_NAME\src\PROJECT_NAME\obj\Release\net8.0\linux-x64\extensions.json"
because it was not found
—
Reply to this email directly, view it on GitHub
https://github.com/Azure/azure-functions-dotnet-worker/issues/2291#issuecomment-2228217660,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA6T6RGCJWHV6IBT56AQP4TZMOSW7AVCNFSM6AAAAABDOOOIO2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRYGIYTONRWGA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***
com>


Updated README

Codecov Report

Merging #5 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master       #5   +/-   ##
=======================================
  Coverage   67.52%   67.52%
=======================================
  Files           4        4
  Lines         117      117
  Branches        6        6
=======================================
  Hits           79       79
  Misses         36       36
  Partials        2        2

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update db143df...98e1258. Read the comment docs.


Auto spiderify at zoom

On our map we have points on the same place, we would like to spiderify them at a certain zoom level so we can see all the points in the map without clicking each group.
The option spiderfyOnMaxZoom: true does not solve it because it requires clicking. The option disableClusteringAtZoom will hide one icon (as they overlap).
Can an option be added like spiderifyAtZoom to disable clustering and spiderify overlapping points.
One example point where it happens is: https://map.komun.org/?lat=-31.6380999&lon=-60.71654610000002&zoom=18
Regards.

I would love to see this, too!


⚠ Bofrost.at has degraded performance

In 68c5ce5, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1740 ms

Resolved: Bofrost.at performance has improved in 8ab0d21.


Add run on repl.it badge to README

This pull request configures this repository to be run on Repl.it.It adds a .replit configuration file and a Repl.it badge to the README. This will allow viewers of the repository to click the run on Repl.it button and be able to use ddgr inside the Repl.it environment.
You can read more about running repos on Repl.it here, or view the Repl here.

Why not, but it doesn't seem to be working out of the box. I got it working by doing pip install td-watson, but I'm not sure that's the intent of repl.it.

You need to click the run button and it should be installed automatically 😁.

Not sure to see the point of using repl.it with Watson. Can you explain what are you trying to solve using such service?

The point of using Repl.it with Watson is for new users to be able to quickly experiment with Watson using the command line on a new and quickly set up environment instead of having to


chore: split test script into test/test:coverage

Which problem is this PR solving?
Tests in windows are running out of heap space while running the @opentelemetry/instrumentation-http tests. On Linux slightly less memory is used, thus preventing the crash. As it seems like nyc is the culprit, and coverage is not reported in Windows tests in CI, this PR splits the node test script into two:

test which now does not run nyc
test:coverage which does run nyc

Workflows have been adjusted to run test:coverage when needed. We may have to increase --max-old-space-size for the tests collecting coverage in the future if this also becomes a problem on Linux. This change also has the added benefit of reducing overall memory usage while running tests and speeding up the test script in cases where collecting coverage is not needed.
Fixes #3628
Short description of the changes

split test script into test/test:coverage
adjust workflows to use the test:coverage script only when needed

Type of change

[x] Internal

How Has This Been Tested?

[x] Running tests locally, inspecting memory usage

Checklist:

[ ] Followed the style guidelines of this project
[ ] Unit tests have been added
[ ] Documentation has been updated

I investigated a bit further, and have come up with an alternative that (I think) tackles the cause of the excessive memory use instead and enables us to keep the scripts as-is. :slightly_smiling_face:
See #3642


GibbsAsk.ask() ignores evidence

There might be an error in the GibbsAsk implementation. Evidence for child nodes is ignored. RejectionSampling and Likelyhoodweighting work as expected. Test follows:
    // create two nodes: parent and child with an arc from parent to child
    RandomVariable rvParent = new RandVar("Parent", new BooleanDomain());
    RandomVariable rvChild = new RandVar("Child", new BooleanDomain());
    FullCPTNode nodeParent = new FullCPTNode(rvParent, new double[] { 0.7, 0.3 });
    new FullCPTNode(rvChild, new double[] { 0.8, 0.2, 0.2, 0.8 }, nodeParent);

    // create net
    BayesNet net = new BayesNet(nodeParent);

    // query parent probability
    RandomVariable[] rvX = new RandomVariable[] { rvParent };

    // ...given child evidence (true)
    AssignmentProposition[] propE = new AssignmentProposition[] { new AssignmentProposition(rvChild, Boolean.TRUE) };

    // sample with LikelihoodWeighting: result should be correct
    CategoricalDistribution samplesLW = new LikelihoodWeighting().ask(rvX, propE, net, 1000);
    assertEquals(0.9, samplesLW.getValue(Boolean.TRUE), 0.1);

    // sample with RejectionSampling: result should be correct
    CategoricalDistribution samplesRS = new RejectionSampling().ask(rvX, propE, net, 1000);
    assertEquals(0.9, samplesRS.getValue(Boolean.TRUE), 0.1);

    // sample with GibbsAsk: result is weird
    CategoricalDistribution samplesGibbs = new GibbsAsk().ask(rvX, propE, net, 1000);
    assertEquals(0.9, samplesGibbs.getValue(Boolean.TRUE), 0.1);

After studying the gibbs sampling code and doing an extensive debugging run of the above submitted code I noted that the probability over markov blanket being calculated is over the same event regardless of the new values being assigned to Xi over the loop. I believe that is the cause of the problem although I may be wrong.
The normalized probability values being returned are [0.56, 0.24] in the case of {parent = true, child = true} for the above test case. I believe it should be [0.56, 0.06].
`public static double[] mbDistribution(Node Xi,
Map<RandomVariable, Object> event) {
FiniteDomain fd = (FiniteDomain) Xi.getRandomVariable().getDomain();
double[] X = new double[fd.size()];
	for (int i = 0; i < fd.size(); i++) {
		// P(x'i|mb(Xi)) =
		// αP(x'i|parents(Xi)) *
		// ∏Yj ∈ Children(Xi)
		// P(yj|parents(Yj))
		double cprob = 1.0;
		for (Node Yj : Xi.getChildren()) {
			cprob *= Yj.getCPD().getValue(
					getEventValuesForXiGivenParents(Yj, **event**));
		}
		X[i] = Xi.getCPD()
				.getValue(
						getEventValuesForXiGivenParents(Xi,
								fd.getValueAt(i), **event**))
				* cprob;
	}

	return Util.normalize(X);
}`

I have this on my TODO list to investigate more closely. Thanks.
On Wed, Mar 22, 2017 at 6:49 AM, Nagaraj Poti<EMAIL_ADDRESS>wrote:

After studying the gibbs sampling code and doing an extensive debugging
run of the above submitted code I noted that the probability over markov
blanket being calculated is over the same event regardless of the new
values being assigned to Xi over the loop. I believe that is the cause of
the problem although I may be wrong.
The normalized probability values being returned are [0.56, 0.24] in the
case of {parent = true, child = true} for the above test case. I believe it
should be [0.56, 0.06].
`public static double[] mbDistribution(Node Xi,
Map<RandomVariable, Object> event) {
FiniteDomain fd = (FiniteDomain) Xi.getRandomVariable().getDomain();
double[] X = new double[fd.size()];
for (int i = 0; i < fd.size(); i++) {
// P(x'i|mb(Xi)) =
// αP(x'i|parents(Xi)) *
// ∏Yj ∈ Children(Xi)
// P(yj|parents(Yj))
double cprob = 1.0;
for (Node Yj : Xi.getChildren()) {
cprob *= Yj.getCPD().getValue(
getEventValuesForXiGivenParents(Yj, event));
}
X[i] = Xi.getCPD()
.getValue(
getEventValuesForXiGivenParents(Xi,
fd.getValueAt(i), event))
* cprob;
}
return Util.normalize(X);
}`
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/aimacode/aima-java/issues/245#issuecomment-288403502,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA0DuzQnEDp0z_mBSRLxsORAGrgJtWfzks5roSbjgaJpZM4Lhf1X
.

Fix in #305.


fix：Support for Input Arguments with Nest Map, Like JSON scalar

Pull request checklist

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

Pull Request type

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

Changes in this PR
Describe the new behavior from this PR, and why it's needed
Issue #
Alternatives considered
Describe alternative implementation you have considered

Thanks for the PR, could you please run ./gradlew formatKotlin ?

Thanks for the PR @xuchuanqiu !


PipFunTest: Update the expected test results

Signed-off-by: Sebastian Schuberth<EMAIL_ADDRESS>

Merging despite the unrelated test failures on Windows.


HDDS-10783. Close SstFileReaderIterator in RocksDBCheckpointDiffer

What changes were proposed in this pull request?
SstFileReaderIterator is not getting closed in RocksDBCheckpointDiffer that could potentially leave the file descriptor open even after RocksDB compaction deletes the file. This change is to close the SstFileReaderIterator after the use.
What is the link to the Apache JIRA
HDDS-10783
How was this patch tested?
Existing tests.

Thanks @swamirishi for the quick review.

Is SstFileReader and the other RocksDB classes listed in this block supposed to be allowed imports for the checkpoint differ? It looks like direct use of this class instead of the managed version is what led to this bug.

Is SstFileReader and the other RocksDB classes listed in this block supposed to be allowed imports for the checkpoint differ? It looks like direct use of this class instead of the managed version is what led to this bug.

@errose28 you are right, direct use of the RocksDB classes led to this bug. We can remove most of the RocksDB's direct usage except RocksDB objects used in [here|https://github.com/apache/ozone/blob/10a1dbfecefc87821bb497dd7f6595b7556253e7/hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdiff/RocksDBCheckpointDiffer.java#L470-L556].
Created follow up task: https://issues.apache.org/jira/browse/HDDS-10787

supposed to be allowed imports for the checkpoint differ?

Filed HDDS-10008 some time ago to clean up the allowed imports (triggered by another leak, of Options, fixed in HDDS-10001).


Can't build on Linux

Simply cannot build the system on Linux.

I would appreciate a new machine with more RAM from you @AlexDenisov 👍

Linux support: Ubuntu and CentOS was implemented in #176 and #179.


Backend: Set up logic for signing in users

Signing in should be fine, the response contains an access token and a refresh token.
There is however, no functionality to use that refresh token yet.
I have created an issue #47 where the goal is to implement this functionality.


Refactor the case-checker module

Currently the case checker module acts as a "troll" or "joke" module. This change will give it a functional aspect to it.
Pull request checklist:

[ ] CHANGELOG.md was updated, if applicable
[x] Documentation in docs/ or install-docs/ was updated, if applicable

Fixes https://github.com/pajbot/pajbot/issues/930

the timeout_uppercase and max_amount = 0 do the same thing.
Please consider instead making the percentage and absolute-based settings available for both uppercase and lowercase, and then removing the old settings
Basically, replace timeout_uppercase and timeout_lowercase with respective max. percentage and absolute amounts.
Also, the current settings names you chose are too vague, as well as the description. It should be more clear that those settings are for uppercase letters. What kind of setting description is "Maximum amount allowed in a message"?

Your comment about the essentially duplicated code made me want to make the entire thing a lot more custom. So I've separated upper/lowercase and added a few more options to each. I'm looking to add vip support once https://github.com/pajbot/pajbot/pull/886 is done

circleci broken again. Will have to wait for @pajlada to fix it or temporarily bypass the CI restriction


plc evaluate fails on example program

Area
[X] Plutus Foundation Related to the GHC plugin, Haskell-to-Plutus compiler, on-chain code
[] Plutus Application Framework Related to the Plutus application backend (PAB), emulator, Plutus libraries
[] Marlowe Related to Marlowe
[] Other Any other topic (Playgrounds, etc.)
Summary
Execute the following program taking from the plutus-core readme.md file.
echo "(program 0.1.0 [ (lam x0 (con bool) [ [ (builtin dropByteString) [ [ (builtin multiplyInteger) [ [ (builtin addInteger) (con integer 3) ] (con integer 3) ] ] [ [ (builtin multiplyInteger) (con integer 2) ] (con integer 1) ] ] ] [ (builtin sha3_256) [ [ (builtin takeByteString) (con integer 2) ] (con bytestring #7661) ] ] ] ) [ [ (builtin greaterThanInteger) [ [ (builtin multiplyInteger) [ [ (builtin multiplyInteger) (con integer 2) ] (con integer 0) ] ] [ [ (builtin subtractInteger) (con integer 3) ] (con integer 3) ] ] ] [ [ (builtin addInteger) [ [ (builtin multiplyInteger) (con integer 1) ] (con integer 1) ] ] [ [ (builtin addInteger) (con integer 1) ] (con integer 1) ] ] ] ] )" | ./result/bin/plc evaluate --stdin
Expected Ouptut:
A correct evaluation of the program
Actual Output:
plc: Unexpected ')' at line 1, column 35
A clear and specific description of what the bug is.
Steps to reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
System info (please complete the following information):

OS: [e.g. Ubuntu]
Version [e.g. 20.04]
Plutus version or commit hash

Screenshots and attachments

If applicable, add screenshots, config files and/or logs to help explain the problem.
If the issue is related to the Plutus Playground, please include a link to a gist that reproduces the issue

Additional context
Add any other context about the problem here.

@thealmarty I've assigned it to you, but I'm not actually sure if it's a problem with the parser or just an outdated example.

It can't be the new parser yet because it's technically not deployed (it currently co-exists with the current one).
I noticed that it's a typed program, so you'd need to add --typed to specify that. But there is no CEK machine for Typed Plutus Core for plc, so we need to specify the mode to be CK. If you save that program in eg.plc, you should get this:
cabal run plc evaluate -- -m CK --typed -i eg.plc
Up to date
(con bytestring #4b6e4ba90e78b6601bc63c806d34f914b983acc3)


Improve "No meshes to bake" LightmapGI error dialog in the editor

The error dialog now gives advice on the steps to follow to enable lightmapping support on imported scenes, primitive meshes and CSG meshes.
The old message referred to a property that was removed in Godot 4.0 (in fact, it may never have existed under the precise name stated in the dialog).
Preview

I'm now realizing how unfamiliar I really am with TTR & its expectations. Will translations for these adjusted options be added over time at a later point?

TTR strings are extracted manually via a Python script in https://github.com/godotengine/godot-editor-l10n.
I run these updates roughly once per month (though I'm a month behind now due to being on leave), which basically implies:

Grabbing new translated strings from Weblate
Updating source strings from Godot master
Merging both together
Committing the updated strings to Godot
Pushing the new state to Weblate with new strings to translate

This makes me think we should really have dedicated articles inside the editor for these kind of things. Like, this pop up is awfully verbose, but in a built-in documentation article, it would be awesome.

Thanks!

This makes me think we should really have dedicated articles inside the editor for these kind of things. Like, this pop up is awfully verbose, but in a built-in documentation article, it would be awesome.

We can have the docs link to various manual pages, but I'm not sure if we should duplicate the whole page inside the editor. While this would allow for offline access, it would also increase the workload for translators a lot while also needing to keep both copies in sync.


something broke

Hi,
I have a website in Go with fcgi. It has been working a couple of years now, now I wanted to change something, uploaded a new binary, and it didn't work any more. I debugged, and found out, that the reason may be sqlite3. I took a "hello world" like fcgi example, that worked by itself on the server. Then I added
_ "github.com/mattn/go-sqlite3"

to the imports, and then it says:
Server error!
The server encountered an internal error and was unable to complete your request.
Error message:
End of script output before headers: index.fcgi
If you think this is a server error, please contact the webmaster.
Error 500

Which is weird, because sqlite3 was already part of the site, I just changed some strings right at the moment. I tried to checkout older revisions of go-sqlite3, I downgraded my sqlite3 package to from 3.24.0-1 to 3.23.1-1, neither seemed to work. Details about the server:
vendelin@ssh4:~$ uname -a
Linux ssh4 4.14.47-alwaysdata #1 SMP Thu May 31 08:29:11 UTC 2018 x86_64 GNU/Linux
vendelin@ssh4:~$ dpkg -l | grep apache
ii  apache-2.2.32                          2.2.32-1                             amd64        Apache HTTP
2.2.32
ii  apache2-utils                          2.4.10-10+deb8u12                    amd64        Apache HTTP Server (utility programs for web servers)

Details about my laptop where I compiled it:
[panda@jungle:src]$ uname -a
Linux jungle 4.18.5-arch1-1-ARCH #1 SMP PREEMPT Fri Aug 24 12:48:58 UTC 2018 x86_64 GNU/Linux
[panda@jungle:src]$ go version
go version go1.10.3 linux/amd64

The weird thing is that on my laptop it still works as plain. But I used to pack the binary with  github.com/pwaller/goupx, after packing, it doesn't work on my local machine either. I don't really care about it, if I won't be able to goupx the binary. But not being able to run it on the server any more is very unpleasant. Please help!

I simplified the method, and now using this:
package main

import (
	"fmt"

	_ "github.com/mattn/go-sqlite3"
)

func main() {
	fmt.Println("hello Go world")
}

I compiled this on my machine, and when I run it on the mentioned server, I get
./helloWorld: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by ./helloWorld)

On my local system, where I compile, I have glibc 2.28, on the server there is glibc 2.19
I downgraded glibc and lib32-glibc from 2.28-4 to 2.27-3, and go from 2:1.10.3-1 to 2:1.10.2-1 . Now it works again without goupx. I'm hoping for a better fix for this in the future.


Use prebuilt auth container

For some reason, the existing auth container was taking forever locally this morning. (still nothing after 15mins).
Even after restarting my machine, it never came up. This change uses a community pre built auth container. We can also revert this in the future.

This may have been an intermittent issue. It is no longer hanging. I will close this for now.


Attempt to decode JSON with unexpected mimetype

Describe the bug
cover.set_cover_position throws an error. Calling said function through lovelace, the entity or developer tools throws and toasts below attached exception. It had worked until this morning, no other changes happened on the system.
To Reproduce
Call cover.set_cover_position
Environment (please complete the following information):

ha-tahoma version: 2.0.1
Home Assistant version: 0.113.3
Platform: cover

2020-08-14 18:35:16 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection.1775640952] 0, message='Attempt to decode JSON with unexpected mimetype: ', url='https://tahomalink.com/enduser-mobile-web/enduserAPI/exec/apply
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 125, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1281, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1316, in _execute_service
await handler.func(service_call)
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 208, in handle_service
await self.hass.helpers.service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 454, in entity_service_call
future.result()  # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 595, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 485, in _handle_entity_call
await result
File "/config/custom_components/tahoma/cover.py", line 219, in async_stop_cover
await self.async_execute_command(
File "/config/custom_components/tahoma/tahoma_device.py", line 155, in async_execute_command
await self.coordinator.client.execute_command(
File "/usr/local/lib/python3.8/site-packages/pyhoma/client.py", line 157, in execute_command
return await self.execute_commands(device_url, [command], label)
File "/usr/local/lib/python3.8/site-packages/pyhoma/client.py", line 170, in execute_commands
response = await self.__post("exec/apply", payload)
File "/usr/local/lib/python3.8/site-packages/pyhoma/client.py", line 196, in __post
await self.check_response(response)
File "/usr/local/lib/python3.8/site-packages/pyhoma/client.py", line 209, in check_response
result = await response.json()
File "/usr/local/lib/python3.8/site-packages/aiohttp/client_reqrep.py", line 1026, in json
raise ContentTypeError(
aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: ', url='https://tahomalink.com/enduser-mobile-web/enduserAPI/exec/apply

Thanks for reporting, @halest. This is possibly related to https://github.com/iMicknl/python-tahoma-api/issues/35.
For now, restarting Home Assistant should work, but we will have a look for a better solution. :-)

Hello iMicknl, sorry, I somehow didn't see that scanning the issues. I wanted to document the error before restarting (I was just about to update to 0.114).
Feel free to mark this as duplicate and thanks for the answer! Also, have a nice weekend

@halest the other issue is in the client repository, so good to keep this one open here as well for tracking purposes. 👍🏻


TextFormField crashes (Channel beta)

[✓] Flutter (Channel beta, 1.19.0-4.1.pre, on Mac OS X 10.15.5 19F101, locale en-MX)
• Flutter version 1.19.0-4.1.pre at /Users/patrickbertsch/dev/flutter
• Framework revision f994b76974 (11 days ago), 2020-06-09 15:53:13 -0700
• Engine revision 9a28c3bcf4
• Dart version 2.9.0 (build 2.9.0-14.1.beta)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
• Android SDK at /Users/patrickbertsch/Library/Android/sdk
• Platform android-30, build-tools 30.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.5, Build version 11E608c
• CocoaPods version 1.9.0
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 4.0)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 46.0.2
• Dart plugin version 193.7361
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
[✓] VS Code (version 1.46.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.11.0
Using a TextFormField with maxLines = null and TextInputAction.newline crashes. If I change it to TextInputAction.unspecified I get the result I want (creating a newline). It does not make a lot of sense.
What I expect:
Setting maxLines = null and TextInputAction.newline to work together
Test Code:
class TestForm extends StatefulWidget {
  @override
  _TestFormState createState() => _TestFormState();
}

class _TestFormState extends State<TestForm> {
  @override
  Widget build(BuildContext context) {
    return Material(
      child: Container(
        color: Colors.black38,
        padding: EdgeInsets.all(40),
        width: 400,
        height: 600,
        child: TextFormField(
          textInputAction: TextInputAction.newline,
          maxLines: null,
          maxLength: 150,
          style: TextStyle(color: Colors.white, fontSize: 20.0),
          keyboardType: TextInputType.text,
        ),
      ),
    );
  }
}`

have you tried to follow the error message suggestion? it says: "Use keyboardType TextInputType.multiline when using TextInputAction.newline on a multiline".
I tested it and it fix the problem you're facing.

omg, I totally missed that.