Issue: Errors Occuring During Pipeline Run

Is there an existing issue for this?

[x] I have searched the existing issues
[ ] I have checked #657 to validate if my issue is covered by community support

Describe the issue
Ok, so basically I'm following this set-up guide:
Get Started (microsoft.github.io)
Everything was going fine until I ran the pipeline with this command:
python -m graphrag.index --root ./ragtest
This is the error:

I am using Open AI and I have the proper API key put in .env file. However, I did change the settings.yaml file to have the model be
gpt-4o-mini because my API key supports that.
I have tried looking at the log files and no real help there either. I am just wondering what the issue could possibly be caused by.
Steps to reproduce
You can replicate the issue basically by following the exact same steps here and use OpenAI NOT AzureOpenAI:
https://microsoft.github.io/graphrag/posts/get_started/
GraphRAG Config Used
# Paste your config here

encoding_model: cl100k_base
skip_workflows: []
llm:
  api_key: ${GRAPHRAG_API_KEY}
  type: openai_chat # or azure_openai_chat
  model: gpt-4o-mini
  model_supports_json: true # recommended if this is available for your model.
  # max_tokens: 4000
  # request_timeout: 180.0
  # api_base: https://<instance>.openai.azure.com
  # api_version: 2024-02-15-preview
  # organization: <organization_id>
  # deployment_name: <azure_model_deployment_name>
  # tokens_per_minute: 150_000 # set a leaky bucket throttle
  # requests_per_minute: 10_000 # set a leaky bucket throttle
  # max_retries: 10
  # max_retry_wait: 10.0
  # sleep_on_rate_limit_recommendation: true # whether to sleep when azure suggests wait-times
  # concurrent_requests: 25 # the number of parallel inflight requests that may be made
  # temperature: 0 # temperature for sampling
  # top_p: 1 # top-p sampling
  # n: 1 # Number of completions to generate

parallelization:
  stagger: 0.3
  # num_threads: 50 # the number of threads to use for parallel processing

async_mode: threaded # or asyncio

embeddings:
  ## parallelization: override the global parallelization settings for embeddings
  async_mode: threaded # or asyncio
  llm:
    api_key: ${GRAPHRAG_API_KEY}
    type: openai_embedding # or azure_openai_embedding
    model: text-embedding-3-small
    # api_base: https://<instance>.openai.azure.com
    # api_version: 2024-02-15-preview
    # organization: <organization_id>
    # deployment_name: <azure_model_deployment_name>
    # tokens_per_minute: 150_000 # set a leaky bucket throttle
    # requests_per_minute: 10_000 # set a leaky bucket throttle
    # max_retries: 10
    # max_retry_wait: 10.0
    # sleep_on_rate_limit_recommendation: true # whether to sleep when azure suggests wait-times
    # concurrent_requests: 25 # the number of parallel inflight requests that may be made
    # batch_size: 16 # the number of documents to send in a single request
    # batch_max_tokens: 8191 # the maximum number of tokens to send in a single request
    # target: required # or optional

chunks:
  size: 1200
  overlap: 100
  group_by_columns: [id] # by default, we don't allow chunks to cross documents

input:
  type: file # or blob
  file_type: text # or csv
  base_dir: "input"
  file_encoding: utf-8
  file_pattern: ".*\\.txt$"

cache:
  type: file # or blob
  base_dir: "cache"
  # connection_string: <azure_blob_storage_connection_string>
  # container_name: <azure_blob_storage_container_name>

storage:
  type: file # or blob
  base_dir: "output/${timestamp}/artifacts"
  # connection_string: <azure_blob_storage_connection_string>
  # container_name: <azure_blob_storage_container_name>

reporting:
  type: file # or console, blob
  base_dir: "output/${timestamp}/reports"
  # connection_string: <azure_blob_storage_connection_string>
  # container_name: <azure_blob_storage_container_name>

entity_extraction:
  ## llm: override the global llm settings for this task
  ## parallelization: override the global parallelization settings for this task
  ## async_mode: override the global async_mode settings for this task
  prompt: "prompts/entity_extraction.txt"
  entity_types: [organization,person,geo,event]
  max_gleanings: 1

summarize_descriptions:
  ## llm: override the global llm settings for this task
  ## parallelization: override the global parallelization settings for this task
  ## async_mode: override the global async_mode settings for this task
  prompt: "prompts/summarize_descriptions.txt"
  max_length: 500

claim_extraction:
  ## llm: override the global llm settings for this task
  ## parallelization: override the global parallelization settings for this task
  ## async_mode: override the global async_mode settings for this task
  # enabled: true
  prompt: "prompts/claim_extraction.txt"
  description: "Any claims or facts that could be relevant to information discovery."
  max_gleanings: 1

community_reports:
  ## llm: override the global llm settings for this task
  ## parallelization: override the global parallelization settings for this task
  ## async_mode: override the global async_mode settings for this task
  prompt: "prompts/community_report.txt"
  max_length: 2000
  max_input_length: 8000

cluster_graph:
  max_cluster_size: 10

embed_graph:
  enabled: false # if true, will generate node2vec embeddings for nodes
  # num_walks: 10
  # walk_length: 40
  # window_size: 2
  # iterations: 3
  # random_seed: 597832

umap:
  enabled: false # if true, will generate UMAP embeddings for nodes

snapshots:
  graphml: false
  raw_entities: false
  top_level_nodes: false

local_search:
  # text_unit_prop: 0.5
  # community_prop: 0.1
  # conversation_history_max_turns: 5
  # top_k_mapped_entities: 10
  # top_k_relationships: 10
  # llm_temperature: 0 # temperature for sampling
  # llm_top_p: 1 # top-p sampling
  # llm_n: 1 # Number of completions to generate
  # max_tokens: 12000

global_search:
  # llm_temperature: 0 # temperature for sampling
  # llm_top_p: 1 # top-p sampling
  # llm_n: 1 # Number of completions to generate
  # max_tokens: 12000
  # data_max_tokens: 12000
  # map_max_tokens: 1000
  # reduce_max_tokens: 2000
  # concurrency: 32

Logs and screenshots
Log Folder:

Main.log:

Network.log in window2:

Additional Information

GraphRAG Version: 0.2.0
Operating System: Windows
Python Version: 3.12.4
Related Issues:

贴一些日志吧，在文件夹 ragtest/output/202407xxxx/ 里面
Attach some logs, which can be found in ragtest/output/202407xxxx/ folder.

logs.json
indexing-engine.log
stats.json

Not sure how helpful this is, but thank you regardless!

15:33:28,850 graphrag.index.input.text INFO found text files from input, found [('book.txt', {})]
15:33:28,855 graphrag.index.input.text WARNING Warning! Error loading file book.txt. Skipping...
15:33:28,855 graphrag.index.input.text INFO Found 1 files, loading 0
15:33:28,855 graphrag.index.workflows.load INFO Workflow Run Order: ['create_base_text_units', 'create_base_extracted_entities', 'create_summarized_entities', 'create_base_entity_graph', 'create_final_entities', 'create_final_nodes', 'create_final_communities', 'join_text_units_to_entity_ids', 'create_final_relationships', 'join_text_units_to_relationship_ids', 'create_final_community_reports', 'create_final_text_units', 'create_base_documents', 'create_final_documents']
create_base_text_units workflow got error, caused by 'id'. First, Check the boot.txt content. and then check your prompt.

book.txt
This is the book.txt content, not sure why there would be an issue because I followed this command from the guide online:
curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt > ./ragtest/input/book.txt
Maybe, I just put an excerpt from the book in book.txt and move on from there?

Now, I am getting this error in the log:
logs.json

@davidgross631  can you try setting encoding_model: o200k_base in your settings.yaml? With gpt4o OAI changed their encoding model (see tiktoken mapping). We can update the docs to help clarify this.

Hm, still having issues unfortunately. Very similar to the Error #779
I do not have/see a indexing-engine.log but I commented out the api_base line in settings.yaml to put in https://api.openai.com/v1/
Still did not work sadly. Still getting this same message. I also tried to mess with the max-tokens as reffered to in a different issue but still no luck.

Ok, thanks for trying that. So your issue may be happening before the encoding_model setting is even a potential problem then. Are you directly on Windows, or using WSL? I am hearing there can be utf-8 encoding issues with default Windows, and folks are having luck running in WSL if that's an option to try.

book.txt This is the book.txt content, not sure why there would be an issue because I followed this command from the guide online: curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt > ./ragtest/input/book.txt Maybe, I just put an excerpt from the book in book.txt and move on from there?

Certainly worth a try in case curl didn't download it correctly

Windows, I've already set the text to UTF-8 encoding using Notepad++

I have also used WSL/Ubuntu and Windows with no luck for either

I have also used WSL/Ubuntu and Windows with no luck for either

After deleting cache folder and output folder, I got same error every tries.

Hm, still having issues unfortunately. Very similar to the Error #779
I do not have/see a indexing-engine.log but I commented out the api_base line in settings.yaml to put in https://api.openai.com/v1/
Still did not work sadly. Still getting this same message. I also tried to mess with the max-tokens as reffered to in a different issue but still no luck.

I have the same problem. Have you solved it？

I'm still facing this exact same issue. I am using Azure Open AI instead of Open AI. Anyone who was using Azure OpenAI that has solved this? Performed all the recommended steps but no luck.


Fine Tuning

We need to reintroduce fine tuning, either in parsing or the chatbot.  Example code for that exists here: https://github.com/neo4j-partners/neo4j-generative-ai-google-cloud

People seem to care less about fine tuning now.  Dropping this.


Azure Resource Management Springappdiscovery Readme Issue

Section link1,link2

Reason:
Repeating parameters
@joheredi, @qiaozha for notification.

@v-weiyding ,Do you use the latest main? this issue should be fixed in https://github.com/Azure/azure-sdk-for-js/pull/28771


Disk space not showing and host stats not working

CoreOS 766.5.0
Docker v1.7.1
rancher 	v0.44.0
Disk space not showing and host stats not working.

Duplicate of https://github.com/rancher/rancher/issues/2380 and https://github.com/rancher/rancher/issues/2205
These issues have been fixed in master and will be available in our next release of Rancher.


Where do I get started?

In this page I read "From the Overview page, click Create a new app."  So where is the "Overview page"?  I have no idea where to find it.  Why don't you make "the Overview page" a link, taking me directly there?
Len Yates

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

ID: 6e0a6489-50c7-af46-241a-272719fc2404
Version Independent ID: 889d635c-2cb5-ce4c-2917-8e2a342106c2
Content: Create your app by reserving a name - UWP applications
Content Source: windows-apps-src/publish/create-your-app-by-reserving-a-name.md
Product: uwp
Technology: publish
GitHub Login: @hickeys
Microsoft Alias: hickeys

We are changing the way we track issues filed from our documentation pages: please see this blog post for more details. The Microsoft Store documentation has been updated several times since your issue was reported, and there's a good chance your problem has been addressed. Right now, this issue is being closed but if you feel it is still valid and has not been addressed, please re-open it with any more available information. Please note that if you question is more general and not related to documentation, Microsoft Q&A is a great way to get questions answered.


Fix #71

Fix #71 by adding one line on settings.py

@CHIAHSINHOU please test this

OK, go to merge.


chore: renovate bot config validation

Changes in this PR introduce renovate bot config validation for this repository and 14 downstream repositories.

Commit (https://github.com/googleapis/sdk-platform-java/pull/2404/commits/948d3934fbd7249fd122795fd9b56a596e08efd0) resulted in check error, as expected. Hence confirmed it is workin on this repository.

Confirming behaviour for one of downstream repos:
check run on java-logging-logback outputs this config, which matches with the actual config. So it should be working for others as well (hopefully). If needed, I can confirm the behaviour in the failure case as well (modify google-cloud-java renovate incorrectly, run the check again, verify, revert the changes).


MOVED response with Cluster mode

Hello,
I am running version 1.1.1 of Predis
I have a redis cluster with version: 5.0.4 running on AWS ElastiCache
When I try connecting to it using Predis, I keep getting MOVED responses
See my code below
$client = new \Predis\Client(
    'tls://clustercfg.mycluster.myaccount.euc1.cache.amazonaws.com',
    ['cluster' => 'redis']
);
$client->set('foo', 'bar');

The exception I keep getting is: MOVED 12182 mycluster-0001-001.mycluster.myaccount.euc1.cache.amazonaws.com:6379
Is there any way around this so Predis automatically handles this?
I was under the assumption that ['cluster' => 'redis'] would fix it, but it doesn't.

Hi @stemis,
The problem in your snippet is that you are passing a string value to the constructor of the client instance which configures it to connect to a single Redis instance even when client options may suggest otherwise. In order to properly configure the client to use aggregate connection backends such as the ones for redis-cluster or redis-sentinel you must always pass a list of strings or named arrays, even when you are specifying the parameters for just one node.


Improve description format and options

Enhancement summary
As of AVD v3.7.0 we have inconsistent and non-configurable description formats. For example:
[root@localhost configs]# cat p1-l1.cfg | grep description
   description MLAG_PEER_p1-l2_Po4
   description P2P_LINK_TO_P1-S1_Ethernet5
   description P2P_LINK_TO_P1-S2_Ethernet5
   description MLAG_PEER_p1-l2_Ethernet4
   description EVPN_Overlay_Peering
   description VTEP_VXLAN_Tunnel_Source
   description VRF10_VTEP_DIAGNOSTICS
   description VRF11_VTEP_DIAGNOSTICS
   description oob_management
   description VRF10_VLAN11
   description VRF10_VLAN12
   description VRF11_VLAN21
   description VRF11_VLAN22
   description MLAG_PEER_L3_iBGP: vrf VRF10
   description MLAG_PEER_L3_iBGP: vrf VRF11
   description MLAG_PEER_L3_PEERING
   description MLAG_PEER
   description p1-l1_VTEP
   neighbor MLAG-IPv4-UNDERLAY-PEER description p1-l2
   neighbor <IP_ADDRESS> description p1-l2
   neighbor <IP_ADDRESS> description p1-s1
   neighbor <IP_ADDRESS> description p1-s2
   neighbor <IP_ADDRESS> description p1-s1_Ethernet5
   neighbor <IP_ADDRESS> description p1-s2_Ethernet5

This feature enhancement is to allow users to set their own description formats.
The AVD defaults should also be consistent (e.g. all upper case with underscores), for example:
point_to_point_interface_description:		P2P_LINK_TO_{{ link.peer | upper }}_{{ link.peer_interface }}
evpn_loopback_interface_description:		EVPN_PEERING_SOURCE
vtep_loopback_interface_description:		VXLAN_SOURCE
oob_management_interface_description:		OOB_MANAGEMENT
bgp_neighbor_description:			{{ neighbor | upper }}

Which component of AVD is impacted
eos_designs
Use case example
Applies to all eos_designs templates.
Describe the solution you would like
User-configurable description formats with consistent defaults (e.g. all upper case with underscores).
Describe alternatives you have considered
No response
Additional context
No response
Contributing Guide

[X] I agree to follow this project's Code of Conduct

@paullavelle thank you for submitting this issue.
There are two parts to this:

Make all names/descriptions configurable (not breaking)
Align defaults (breaking)

We can takle 1 in AVD 4.1+ and 2 in AVD 5.0


Setting Font / Size for merged cells

Hello,
Please help me understand the correct syntax for defining font style and size.
$file = "C:\intel\dashboard.xlsx"
Remove-Item $file -ErrorAction Ignore
Export-Excel $file -AutoSize -WorkSheetname "Invoice"
$excel = Open-ExcelPackage $file
$invoice = $excel.Workbook.Worksheets["Invoice"]
$invoice.View.ShowGridLines = $true
$invoice.View.ShowHeaders = $true
$fontArial = "Arial"
Set-Format -Address $invoice.Cells["A5"] -Value "Invoice" -FontSize 18 -Bold -FontName $fontArial
$invoice.Cells["A5:C5"].Merge = $true
Close-ExcelPackage $excel -Show
I am only able to reflect font style, but changing fonts or sizes does not seem to work.
Unsure where to look for the issue.

Set-Format seems to be broken for this...
Solved by using following syntax.
$invoice.Cells[2,1].Style.Font.Size = 18
$invoice.Cells[2,1].Style.Font.Bold = $true
$invoice.Cells[2,1].Style.Font.Name = "Arial"


Map transect length en duration survey as mof

This PR solves #1 and #19 by mapping in mof extension:

LengthOfTime_Min as measurementType: "sampling effort"
LengthOfLocation_Meter as measurementType: "survey transect length"

@peterdesmet: are they good names?

If these terms are closely related (i.e. properties of the visit), I would call them sampling duration/sampling distance. You could rephrase sampling with survey or transect if those are better fits


Makes access to Worldguard protected entites possible

Especially makes it possible to modify the armor of armorstands and to modify the content of itemframes.

Should be fixed with CodeMC/WorldGuardWrapper@eadc82f (included in latest snapshot)


runtime: Remove block hash from set, remove, bind it transparently

This is straightforward since we never call two handlers in parallel for the same mapping.
Resolves #225
Companion PR graphprotocol/graph-cli#85

@Jannis afaict we never got to actually using them.

Great, ok, now that the issue exists to track the only remark I had, this should be good to go in.


how can i get all markers with line number ?

I send the text to Python IDE by Pipes, now I want to change the MarkerSymbol one by one just like vs IDE, how can I do?

Closing as answered.


require !== null    results in Cannot find module "."

[x] bug report

Webpack version:
2.1.0-beta.13
Please tell us about your environment:
Windows 8.1
Current behavior:
import 'moment-jdateformatparser';
In the resulting bundle all occurrences of require are replaced. But the null check in the following if statement is replaced in a faulty way.
original
  if (typeof this.moment === 'undefined' && typeof require !== 'undefined' && require !== null) {
    if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { //Check if the environment is Node.js
      hookMoment(require('moment')); //if it is, we have to require it different (without the surrounding Array)
    } else {
      require(['moment'], function (moment) {
        hookMoment(moment);
      });
    }
  } else {
    hookMoment(this.moment);
  }

It seems that the mechanism evaluates the require statement without any module and generates the module not found error clause.
bundle output
      if (typeof this.moment === 'undefined' && "function" !== 'undefined' && !(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()) !== null) {
        if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { //Check if the environment is Node.js
          hookMoment(__webpack_require__(27)); //if it is, we have to require it different (without the surrounding Array)
        } else {
          Promise.resolve().catch(function(err) { __webpack_require__.oe(err); }).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(27)]; (function (moment) {
            hookMoment(moment);
          }.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));});
        }
      } else {
        hookMoment(this.moment);
      }

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem along with a gist/jsbin of your webpack configuration.

var webpackConfig = {
  devtool: 'cheap-source-map',

  resolve: {
    extensions: ['', '.js']
  },
  module: {
    loaders: [
      {test: /\.scss$/, loader: 'raw'},
      {test: /\.css$/, loader: 'raw'},
      {test: /\.json$/, loader: 'json'},
      {test: /\.(mp4|svg|png|jpg|gif|otf|eot|ttf|woff|woff2)$/, loader: 'url'},
      {
        test: /\.js$/,
        loader: 'babel',
        query: {
          presets: ['react', 'es2015', 'stage-2'],
          plugins: ['babel-plugin-espower']
        },
        include: [path.join(__dirname, 'src'), path.join(__dirname, 'spec')]
      }
    ]
  },
  plugins: [
    new webpack.ProvidePlugin({
      React: 'react',
      TestUtils: 'react/lib/ReactTestUtils',
      Promise: 'bluebird'
    }),
    new webpack.IgnorePlugin(/^\.\/locale$/, [/moment$/]),
    new webpack.NoErrorsPlugin(),
  ],
  externals: {
    'cheerio': 'window',
    'react/addons': true,
    'react/lib/ExecutionEnvironment': true,
    'react/lib/ReactContext': true
  },
  stats: {
    colors: true
  }
};

What is the expected behavior?
That only the require reference is replaced by the mechanism like so

require !== null   ->    __webpack_require__ != null

or something related to that.

Browser: [all ]
Language: [ES6/7 | ES5 ]

Now I am confused. I added following plugin and it seems to work now
new webpack.ContextReplacementPlugin(/moment-jdateformatparser/, /moment-jdateformatparser\.js/),
but i don't understand why.
the resulting bundle now containes
	  if (typeof this.moment === 'undefined' && "function" !== 'undefined' && __webpack_require__(885) !== null) {
	    if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { //Check if the environment is Node.js
	      hookMoment(__webpack_require__(27)); //if it is, we have to require it different (without the surrounding Array)
	    } else {
	      Promise.resolve().catch(function(err) { __webpack_require__.oe(err); }).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(27)]; (function (moment) {
	        hookMoment(moment);
	      }.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));});
	    }
	  } else {
	    hookMoment(this.moment);
	  }

which replaces the require reference with __webpack_require__(885) which seems to be a reference on its own module.
Is that the way to fix that issue?

Ah, good someone else has this problem too.
The Cesium lib is using an if (require.toUrl) check to define loading behaviour, but Webpack replaces it with the aforementioned error message. The expected behaviour is to replace it with __webpack_require__ or so.

I am also having this issue, if you can point me where to start looking I would gladly look into this issue, Thanks

Hey @bryall I tried adding your RegExp but webpack says it's invalid (Unexpected token) at the second dot. I tried escaping the middle slash (unknownContextRegExp: /^.\/.*$/) which does remove the previous error but generates an out of memory error instead. How'd you get this working?

Same problem here

@manuelnas I tried escaping too and it worked for me. I'm using webpack 2.3.3

I am working on this problem for over 2days, and I just made it through by hardcoding the URL string in 'require' instead of passing on a variable:
change:
const data = require(URL);
to:
const data = require('./file.json');
I know the hard-code is bad, but I cannot find any other solution to it.
It would be very grateful if someone could fix it.

webpack@2 is officially deprecated. Closing due to inactivity. Please test with latest version and feel free to recreate issue if problem still exists. Thanks!


🐛 [Bug] No decay is incorrect - its just less then 0.00

🐛 Bugreport

No decay is incorrect - its just less then 0.00 and we should communicate this to the user.

“Keine Vergänglichkeit” ist falsch (die Vergänglichkeit ist lediglich kleiner als 1 Cent).
Muss heißen: - 0,00

we decided that together once. how can it be wrong if it was decided that way? i didn't think it up myself!
it has now been decided differently and should now be called 0.00.
What about the icon then? Shouldn't I rather write "Vergänglichkeit / Decay" there?


Windows cannot access the folder where the download happens during 'upgrade'

Brief description of your issue
when i try a winget upgrade 'package' for a package that installs in program files, i get the attached error. I am running in standard user mode. I am sure that admin has access to the folder.

Steps to reproduce
type winget upgrade 'package name'
wait for the download
type in the admin password
get the error message
Expected behavior
I expected the program to install properly
Actual behavior
The application errors out and does not install if it requires admin
Environment
Windows Package Manager v1.4.10173
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.22621.1265
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.19.10173.0

Logs: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir

User Settings: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

This happens for most applications that require admin. something about not being able to access the network or directory. but the directory has full privileges.

Brief description of your issue
when i try a winget upgrade 'package' for a package that installs in program files, i get the attached error. I am running in standard user mode. I am sure that admin has access to the folder.
Steps to reproduce
type winget upgrade 'package name' wait for the download type in the admin password get the error message
Expected behavior
I expected the program to install properly
Actual behavior
The application errors out and does not install if it requires admin
Environment
Windows Package Manager v1.4.10173
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.22621.1265
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.19.10173.0

Logs: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir

User Settings: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

Facing the exact same issue.

The problem is with the temp directory winget uses for install.
This is located at %LOCALAPPDATA%\temp\WinGet and simply has insufficient permissions for an elevated permission install.
So effectively the given admin account is unable to read files from this directory.
Unfortunately, it doesn't help to adjust the permissions for this directory manually, because winget resets it during upgrade.
This problem already persists for months now and I've no clue why this hasn't been fixed yet. Actually it should affect many users, if not all uses.

This has been a consistent problem for me and a main reason why I must still rely on other package managers.

I face the exact same issue.

I also face this issue for anything requiring admin. I was trying to install Oracle.Virtualbox but I also tried to upgrade existing packages, and it failed with the same network error.

The problem is with the temp directory winget uses for install. This is located at %LOCALAPPDATA%\temp\WinGet and simply has insufficient permissions for an elevated permission install. So effectively the given admin account is unable to read files from this directory. Unfortunately, it doesn't help to adjust the permissions for this directory manually, because winget resets it during upgrade.
This problem already persists for months now and I've no clue why this hasn't been fixed yet. Actually it should affect many users, if not all uses.

What I can't understand is why it doesn't affect every package. Some of the programs I have installed can still be updated via winget, others can't.

I just found some workaround, the issue isn't that much widespread because it seem to happen only when you use a simple user as account instead of the default account administrator type, so as workaround you can launch the console as your other admin  user with runas  and run winget from there

@io43
I tried to do what you said, But from the admin command, I get this:
Winget uninstall 7zip.7zip
No installed package found matching input criteria.

It only works from my normal user. I tried with the "Runas" command with different switches: "/profile", "/noprofile", "/env", and no switch at all and I always get that error. I even tried running "cmd" from the start menu as administrator, but still the same result

I moved away from winget to scoop because of this specific bug. My work laptop is configured to use a non-admin account for everyday work and occasionally use a different admin account to run stuff as admin.

This bug is already fixed in the 1.5 version.
You may download the preview version in the Releases tab and I can confirm that this issue is no longer present.

I can confirm it's working with the preview version (v1.5.1081-preview) 👍

Yes, wonking wll on lastest preview

Yes, working well on current preview

cc @denelon Resolved in #2945


Enhance hierarchical search filters (for controlled vocabs) to support item counts, etc.

Is your feature request related to a problem? Please describe.
The initial implementation of hierarchical filters/facets for controlled vocabularies doesn't display matching item counts (like normal facet).  See screenshots in https://github.com/DSpace/dspace-angular/issues/815#issuecomment-1293270195
Currently, this means it acts more like a search filter instead of a facet.  It can be used to help you filter a search to a given controlled vocabulary value.  However, the user has no indication of whether the filtered controlled vocabulary value will contain any results... they have to select the value to see what comes back.
Additionally, the hierarchical list does not take into account the current search term(s).  For example, if you search on "Computer Science" and then open up the hierarchical vocabulary, you will still see the full vocabulary instead of a filtered list of terms which can be matched with "Computer Science".
Describe the solution you'd like
If possible, we'd prefer a user experience which is more similar to other facets.  If you open up the hierarchical list of vocabulary terms, ideally you'd see an indication of how many results will be returned for each term (similar to label displaying the matches count which appears next to every other facet).  Additionally, if a specific term will not return results, it should not be listed (similar to how facet values are not listed if they return zero results.
The exact design will require more analysis, including wireframes.  Initial (rough) estimates were provided by 4Science as likely being about 64-80 hours for the UI, and about 48 hours for the backend.  However, these estimates are highly dependent on agreement on the feature design.
Describe alternatives or workarounds you've considered
Currently, our workaround was to simplify the implementation as shown in the screenshots at https://github.com/DSpace/dspace-angular/issues/815#issuecomment-1293270195 This provides a very simple way to filter using a controlled vocabulary, but it's not as user friendly as the approach described here.
Additional context
This ticket was created based on discussions in https://github.com/DSpace/dspace-angular/issues/815.

Some additional notes regarding the current implementation as at 8.0:

As @tdonohue notes, the filter autosuggest shows the raw values rather than the friendly 'child node' label - this should not be difficult to match the sidebar facet value display, right?
The browse tree works nicely when selecting an exact node that is stored in item metadata, but users should reasonably expect to be able to choose a parent node in the tree, and see all the child subject facets for the selected node. I believe simply changing the operator from equals to contains would be sufficient for this (better yet would be 'startswith' but it isn't an operator we have available) in most cases
(I think the same argument could be made for the other ::-split facet values shown in the sidebar, but since we've lost context by this time we don't know what is a parent and what isn't... not sure if contains is quite as safe as an operator there)
When I have subjects from the child nodes applied (e.g. Numerical analysis, Mathematical statistics) the only facet values I see in the sidebar are from the middle node "Applied mathematics", just as if I had added "Applied mathematics" itself (selecting it doesn't show its own parent, it seems to just always be biasing for the 2nd or middle node?) Is this intentional? In other words, I never see MATHEMATICS or Numerical analysis in the sidebar facets as I'd expect.


Engine -> Framework roll blocked on customer_testing failure

Starting with https://github.com/flutter/flutter/pull/100901, which contains only the Dart roll https://github.com/flutter/engine/pull/32291. customer_tests is failing with
Error: Setter not found: 'AsciiChar'.
|   set AsciiChar(int value) => Char.AsciiChar = value;
|                                    ^^^^^^^^^

From the rainbowmonkey app: https://cirrus-ci.com/task/6028198742851584.
It looks like https://dart.googlesource.com/sdk.git/+/90f118484f78fe2588c796969b2f35aef88d987e is the culprit.
cc @dcharkes @mkustermann @a-siva

This appears to be a duplicate of https://github.com/timsneath/win32/issues/349
Do we need to use the latest version of win32 package to resolve this ?

I believe RainbowMonkey ends up having issues with this because it both uses any constraints and checks in its pubspec.lock, which means it kind of gets the worst of all possible worlds (tight version constraints based on whenever the last time pub get was run and checked in)....

Should be easy to fix, just run dart pub upgrade --major-vesions to get the new dependencies.

Should be easy to fix, just run dart pub upgrade --major-vesions to get the new dependencies.

https://github.com/jocosocial/rainbowmonkey/pull/344

We deleted rainbowmonkey from customer_testing: https://github.com/flutter/tests/commit/69c3406c7f26b5238bff7b0777d2521cf0c74de0. I will restart the roller.

Rolls are going again.

run flutter pub upgrade --major-versions can solve it


[DRAFT] Add cycle count column in assembly operation table

This PR addresses the second part of #351.

@bobbinth -  @grjte and I have come up with the following way to show assembly operation cycle count in the mdbook. Please let us know you thoughts on it.

One other way would be to introduce a separate column for VM cycles in the table. It though makes the table a bit crowded and messes up the formula.

I like this approach! And I agree that separate column makes it look worse.

Yes! The cycle counts have been updated.


Patch process.nextTick()

node's process.nextTick() is used by a lot of libraries (q, for instance) but isn't patched by zone.js:
require('zone.js');
Zone.current.fork({}).run(() => {
  Zone.current.foo = 'bar';
  process.nextTick(() => {
    console.log(Zone.current.foo); // undefined
  });
})

process.nextTick was basically setImmediate before setImmediate existed.  Now it's like setImmediate except it gets scheduled in a higher priority queue.

Yeah, I agree with you, zone.js should patch process.nextTick, process.nextTick is a microtask , if we patch it like
var nativeNextTick = process.nextTick;   process.nextTick = function() {     var args = arguments;     args[0] = Zone.current.wrap(args[0], 'process.nextTick');     nativeNextTick.apply(this, args);  }
the callback will be inzone.
and the nextTick will run before setImmediate/setTimeout but after promise.resolve, because ZoneAwarePromise will not use v8 native microtask queue, should zone.js also push process.nextTick into microtask queue of zone?

I don't think wrapping will effect the order at all?  Zone.wrap doesn't make a function asynchronous, and the callback is being scheduled by process.nextTick in either case.  But I think your patch is fine regardless.

yes, the zone.wrap will not change the order, what I want to say is patch it just like the code I posted  can only resolve the issue that process.nextTick callback not inzone, but it will still be executed after promise.resolve().  such behaviors are different with the native implementations.

After reading more about micro tasks, I agree.

I think we need another task queue, sadly

I believe in nodejs native implementation process.nextTick and promise.resolve use the same microtask queue, so maybe we can patch process.nextTick using the ZoneAwarenessPromise microTaskQueue...

Nope:
var p = (s) => { Promise.resolve().then(() => { console.log(s); }); }
var n = (s) => { process.nextTick(() => { console.log(s); }); }

n(1);
p(3);
n(2);
p(4);

Outputs:
1
2
3
4

On node v6.9.1

So I guess the wrapped version is fine?

I test in mac, node 7.0, the result is
3   4   1   2

I switched to v7.1.0 but still got the same order (I'm on Ubuntu and I left my mac at home).
Regardless, it's more complicated: https://github.com/nodejs/node-v0.x-archive/pull/8325
Basically, it empties one queue, then switches to the other.  It keeps switching back and forth until both queues are empty.  For instance, on my machine the following:
var p = (c) => { return Promise.resolve().then(c); }
var n = (c) => { process.nextTick(c); }
var q = (s) => {return p(() => {console.log(s + ' (promise)');});}
var m = (s) => {return n(() => {console.log(s + ' (next tick)');});}

m(1);
q(3);
n(() => {
  m(2);
  q(4);
});
p(() => {
  m(6);
  q(5);
});

Outputs:
1 (next tick)
2 (next tick)
3 (promise)
4 (promise)
5 (promise)
6 (next tick)

For some reason on my machine it starts with the nextTick queue and on yours it starts with the MicroTask queue.  It sounds from the PR like the way my machine works is normal, though everything else I've read would indicate that your machine is the normal one.  On your machine I suspect you'll get:
3 (promise)
5 (promise)
1 (next tick)
6 (next tick)
2 (next tick)
4 (promise)

Regardless, we definitely need a second queue

yeah, I saw this issue too, nodejs/node-v0.x-archive#8325, from this PR, in my understanding they use node v8 microtask to proceed the process.nextTick.
I will test your code, and see what is the order.

Yes, I my machine with zone.js the result is
3 (promise)
5 (promise)
1 (next tick)
6 (next tick)
2 (next tick)
4 (promise)

Oh sorry, I was reading quickly and didn't see that you only got the weird order with zone.js

I actually loaded up zone.js (at 3b94918b64d3fbbe1851b2be6faf7997f8252537) on my ubuntu machine and I still get the 1 2 3 4 5 6 order.  Maybe it's just your PR that changes the order then?

yes, it seems the patch change the order... I'll check it to find why..

I write code like following , the order is still correct.
So I think maybe the Zone.js patch jasmine cause the incorrect order.
`require('./zone-node.js');
var nativeNextTick = process.nextTick;
process.nextTick = function() {
var args = arguments;
args[0] = Zone.current.wrap(args[0], 'process.nextTick');
nativeNextTick.apply(this, args);
}
var p = (c) => { return Promise.resolve().then(c); }
var n = (c) => { process.nextTick(c); }
var q = (s) => {return p(() => {
console.log(s + Zone.current.name + ' (promise)');
});}
var m = (s) => {return n(() => {console.log(s + Zone.current.name + ' (next tick)');});}
Zone.current.fork({name: 'A'}).run(function() {
m(1);
q(3);
n(() => {
m(2);
q(4);
});`

Oh yeah, I wasn't running inside jasmine. That could be it.

I did some experimentation:

I also get the wrong order when I put my tests within zone.js's jasmine tests
The order is fixed when I comment out https://github.com/angular/zone.js/blob/master/test/test-env-setup-jasmine.ts#L10
The order is broken again if I require('../../lib/jasmine/jasmine') in the spec file, directly before the it() block which uses process.nextTick
However, if I move the require inside the it() block it doesn't cause any problems

Found the problem: https://github.com/angular/zone.js/blob/master/lib/jasmine/jasmine.ts#L132
As you can see, the jasmine patch runs the tests within a microtask, which therefore makes the microtask queue the active queue, which is why microtasks are being run before nextTick callbacks.  I don't actually think this is a problem.

Yeah! That is the problem, so the order should be correct in real code.

Yeah, I say we go with your original suggestion for how to patch

Yeah, I have make a PR #516, and add several cases.

I change the PR to use zone.scheduleMicroTask to patch the process.nextTick, so we can use zoneSpec.onScheduleTask/onInvokeTask to trace the Task lifecycle.
https://github.com/angular/zone.js/pull/516/files#diff-5451e0d148fd2cc1adaf94b9ac70c0a8R37


Payment: Non-Elevate Refund

W-10999736
Critical Changes
Changes
Issues Closed
Community Ideas Delivered
Features Intended for Future Release
Refund Type - Partial Refund
Features for Elevate Customers
New Metadata
npe01__OppPayment__c.OriginalPayment__c
npe01__OppPayment__c.RefundType__c
Deleted Metadata

@lparrott @voduyemi The feedbacks are in and is ready for another review

The changes are in @force2b @melissabarber @ErinWiedemer @lparrott @voduyemi


Raspberry PI with Alexa does not recognise custom skills

IMPORTANT: Before you create an issue, please take a look at our Issue Reporting Guide.
Briefly summarize your issue:
So I have installed the Alexa app following these instructions, I have also created a few skills which work when tested using the online simulator. However, when I try to test them directly from my raspberry PI, it does not recognise them. I've had a look online and it says this may be a problem with the language of the device. However, both my device and the app are set in en-US and the lambda function is set in the US (North Virginia) region. I am currently in the UK, could that be the problem? Also, when I connect to alexa.amazon.com it can see if my raspberry pi is connected in real time.
Have been trying to solve this issue for weeks, please help!
EDIT: Ijust noticed that every time that I create a new function in lamda the ARN always starts with arn:aws:lambda-us-east, even if I run it from N. Virginia (North US), could this be the problem? If so, how can I fix it?
What is the expected behavior?

What behavior are you observing?

Provide the steps to reproduce the issue, if applicable:

Tell us about your environment:

What version of the AVS Device SDK are you using?
  <x.y.z>

Tell us what hardware you're using:

[ ] Desktop / Laptop
[x] Raspberry Pi
[ ] Other - tell us more:

Tell us about your OS (Type & version):

[ ] Linux
[ ] MacOS
[x] Raspbian Stretch
[ ] Raspbian Jessy
[ ] Other - tell us more:

Hi pisi96,
Can you please provide us with the DEBUG9 logs and confirm which version of the SDK you are using?

I am closing this issue due to inactivity. Please feel free to re-open it if it has been closed in error.


Differentiate HystrixCommandKey passed into some unit tests in HystrixCommandTest

NetflixOSS » Hystrix » Hystrix-pull-requests #326 FAILURE
Looks like there's a problem with this pull request

NetflixOSS » Hystrix » Hystrix-pull-requests #327 SUCCESS
This pull request looks good


Input string was not in a correct format

GameActivity_2022-03-12.zip
Playnite error message right after game session. Attaching logs.

This seems to be caused by my temporary workaround. I assume you have installed PlayState, right?
Could you share also the PlayState.txt file placed inside "C:\Users\User\AppData\Roaming\Playnite\ExtensionsData"? If it wasn't reused after the error.

This seems to be caused by my temporary workaround. I assume you have installed PlayState, right?
Could you share also the PlayState.txt file placed inside "C:\Users\User\AppData\Roaming\Playnite\ExtensionsData"? If it wasn't reused after the error.
EDIT: Nevermind, it seems that this error is caused when the PlayState.txt file is cleaned. I will open a PR for fixing this.
EDIT2: Well, could you confirm that your bug is that your PlayState.txt is empty? I don't see any reason to having your PlayState.txt empty since you didn't execute another game after.

Thanks for your reply. Yes, I had PlayState installed and the .txt file is indeed empty. I have uninstalled PlayState and the same "Input string was not in a correct format" message pops.

Hi @HairyHook , I'm sorry to read that you still had issues. I already opened a PR that will fix the error issue, but about the root cause not so sure about it. I added an increased delay before reading the PlayState.txt to see if that fixes the issue.
In any case, when #127 is merged and a new version released, you should be able to reinstall PlayState without having this issue any longer.


Progress + Bar not respecting the Max value set on Progress

I've got a max value set on 'progress' element (with many 'bar' elements beneath it) and the value is never making it's way into the actual controller for the entire progress bar.
I believe this is due to a recent change where the ProgressController is setting $scope.max from the $scope.max where as previous it would look for it on the $atttrs.max. This no longer works because the directive 'progress' does not have 'max' set on it's scope definition and thus never makes it into the 'progress' directives $scope, but would work previously becuase you COULD set it as an attribute on the element.
This is an example:
http://plnkr.co/edit/K2Y3G39IvP8VJbgwl06D?p=preview
If you inspect the progress bar, you can see that it's taking up 100% width even though it's value is set to 186 out of 211 (211 being the maximum set). There is also another bar beneath it that is invisible with the value of 25.
I believe that you fix this with the current implementation, all you need to add is 'max: "="' to the 'progress' directive. Although I don't know the full ramifications of this.

:+1: I am seeing the same thing

Ditto.
+1 to fix that.

7ccff02 broke this feature. Now the max attribute needs to be defined on the progress directive.


Is EFSA in the mix?

@wwhsiao @mateolan @Public-Health-Bioinformatics @griffiemma
Just wondering if one of the classification schemes we will import include the European Food Safety Authority (EFSA) codes...

I was thinking we could do this in a targeted way.  Both Langual and FoodEx2 were occasionally cross referencing their terms so insofar as we import a Langual Facet we may have DBXref's to FoodEx2 codes.  FoodEx2 doesn't have a "Food Source" facet like Langual does; and other facets like food preservation aren't identical.  I could try (for example) to provide a food preservation facet that takes into account both Langual, FoodEx2, and with CHEBI terms (https://www.ebi.ac.uk/ols/ontologies/chebi/terms?iri=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FCHEBI_78295) forming the foundation where suitable.
One way Langual has tried to approach the fact that there are many classification systems out there, is to offer different sub-hierarchies in its Facet A Product Type – European / International / USA / Other.  E.g. http://www.langual.org/langual_thesaurus.asp?termid=A0690&haschildren=True&owner=A0356&openstr=00000_A0361_A0356    A first approach could be to DBXRef food terms in our "pure" ontology over to these other system's equivalents.
D.
From: Pier Luigi Buttigieg <notifications<EMAIL_ADDRESS>Reply-To: FoodOntology/foodon <reply<EMAIL_ADDRESS>Date: Sunday, June 12, 2016 at 6:40 AM
To: FoodOntology/foodon <foodon<EMAIL_ADDRESS>Cc: Damion Dooley <damion.dooley<EMAIL_ADDRESS>Mention <mention<EMAIL_ADDRESS>Subject: [FoodOntology/foodon] Is EFSA in the mix? (#13)
@wwhsiaohttps://github.com/wwhsiao @mateolanhttps://github.com/mateolan @Public-Health-Bioinformaticshttps://github.com/Public-Health-Bioinformatics @griffiemmahttps://github.com/griffiemma
Just wondering if one of the classification schemes we will import include the European Food Safety Authority (EFSA) codes...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/FoodOntology/foodon/issues/13, or mute the threadhttps://github.com/notifications/unsubscribe/AKR9BnufmaTE6EPVdSlcrOxInCoWMb8rks5qLAxjgaJpZM4Izy6Q.

Latest news is that LanguaL is improving their EFSA FoodEx2 coverage.  I'll report on that when I hear more from the LanguaL curators.  We should be able to pass these LanguaL changes into FoodOn when they are released.

So I just had an update from LanguaL / Danish Food Informatics and they say FoodEx2 mapping will be introduced to LanguaL, probable launch in april.  As well the GS1 tree will be updated, which is great news.  We'll be able to import the resulting Facet A changes into FoodOn without much trouble thereafter.

A number of facets from EFSA FoodEx2 have now been incorporated by the LanguaL team into LanguaL: http://www.langual.org/langual_thesaurus.asp?termid=A1895&haschildren=True&owner=A0356&openstr=00000_A0361_A0352_A0356
We look forward to importing this hierarchy into FoodOn in the next month.

EFSA FoodEx2 Exposure hierarchy is now in FoodOn, as well as an updated GS1 hierarchy.  In the next year we will be studying solutions for how to cross-reference these categories with the other existing product type categories inherited from LanguaL, as well as FoodOn's ontology-oriented "foodon product type".


socket fd leaks if dial timeout occur

req, err := http.NewRequest("POST", s.url, buffer)
if err != nil {
	return err
}
if s.auth != nil {
	req.SetBasicAuth(s.auth.Login, s.auth.Password)
}

req.Header.Add("Content-Type", "text/xml; charset=\"utf-8\"")
req.Header.Add("SOAPAction", soapAction)
req.Header.Set("User-Agent", "gowsdl/0.1")
req.Close = true

tr := &http.Transport{
	TLSClientConfig: &tls.Config{
		InsecureSkipVerify: s.tls,
	},
	Dial: (&net.Dialer{
		Timeout:   60 * time.Second,
		KeepAlive: 10 * time.Second,
	}).Dial,
	TLSHandshakeTimeout:   5 * time.Second,
	ResponseHeaderTimeout: 300 * time.Second,
	ExpectContinueTimeout: 1 * time.Second,
}

client := &http.Client{Transport: tr}
reliableClient := pester.NewExtendedClient(client)
res, err := reliableClient.Do(req)
if nil != res && nil != res.Body {
	defer res.Body.Close()
}
if err != nil {
	return err
}

If dial timeout occur,  opened socket fd will leak.
sudo lsof -n -a -p $(pidof processname)  |grep "can't identify protocol"  |wc -l
You will see many 'can't identify protocol' socket.

Thanks for submitting this! I wont have time to dig in this week (PRs welcome!). I can try to dig in this weekend or the next, luck willing.

Can this still be reproduced? I experimented with dial timeouts on ubuntu today and couldn't reproduce leaked sockets.

To my knowledge, all leaks were patched a while back.
On Mon, Aug 10, 2020 at 8:50 AM Aleksandar Č<EMAIL_ADDRESS>wrote:

Can this still be reproduced? I experimented with dial timeouts on ubuntu
today and couldn't reproduce leaked sockets.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://urldefense.com/v3/__https://github.com/sethgrid/pester/issues/37*issuecomment-671402203__;Iw!!NCc8flgU!LtYYAX1YaPlf0Ajm5QM6GAG0CoUtSitnhQDwSnO0XVy1gH-MZioVHAJ4Cs2MZBpsKA$,
or unsubscribe
https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AAHRU7FH5VT42X6RHDJUWMTSAACLFANCNFSM4FSD32OQ__;!!NCc8flgU!LtYYAX1YaPlf0Ajm5QM6GAG0CoUtSitnhQDwSnO0XVy1gH-MZioVHAJ4Cs2q1bXKJA$
.


Update serialization decorator documentation

Updates documentation for @field_serializer, @model_serializer, @computed_field
Change Summary
Related issue number
Closes PYD-86
Checklist

[ ] Unit tests for the changes exist
[ ] Tests pass on CI and coverage remains at 100%
[x] Documentation reflects the changes where applicable
[ ] changes/<pull request or issue id>-<github username>.md file added describing change
(see changes/README.md for details)
[x] My PR is ready to review, please add a comment including the phrase "please review" to assign reviewers

please review


Fix self xss in contact us form

Using firstName variable as HTML code can lead to XSS.
it's a self XSS and isn't very dangerous.

Can you help me understand this by explaining the change?

if user submit something like <script>alert('xss')</script> as first name and form fails somehow, the script tag will be added to .alert-danger and browser will execute it, with using jQuery. text we make sure browser treat it as text.


[SL-2088] Let the body be empty if no schema exists to mock

https://stoplightio.atlassian.net/browse/SL-2088
Change summary
When testing out basic prism functionality, it seems confusing that
when I request a 404 it doesnt show the 404. Even if the 404 does not have
a schema defined, that should not matter, as not all errors need to have bodies.
If the code is requested, lets give it to the user. If a body is important, they
will add one, but returning a 200 instead is going to confuse a lot of folks.

@philsturgeon

Missing snapshot update
Apparently the tests fail when run in bulk, but they pass when run singularly, like if there's some internal state that's preventing to serve successive requests
There's a react example that's bothering Jest — either we fix it or remove it (or at least remove It from the tests)

The problem exists when running this in the CLI myself, so its a case of the tests not asserting the bug well enough. :)

@chris-miaskowski This is not ready for review, please hold on.

@chris-miaskowski This is not ready for review, please hold on.

@XVincentX
Oh sorry my bad :( It wasn't marked as 'draft' nor WIP so thought it's ready.

Yeah that was my fault; I misinterpreted what Phil was referring. This is going to require some other work though.

I can't write in the PR title since I'm not the original author although I wrote the code — so putting the stuff here.
The following PR enables the required scenario by removing some limitations and let ultimately the body be empty in case there's no suitable example or schema to generate an example.
It also fixes a nasty bug where basically the defaultConfig — which was supposed to be fixed/stable over the time — was being modified keeping in memory specific calls parameters; making all the subsequent calls fail. Fixing this bug has required a lot of efforts because of the really complicated logic/chain of the resolveConfig function. I HAD to remove the async of that function (which was not being used anyway) to understand what was going on. It's going to be on my todo list to refactor that part as right now feels a little bit unmanageable.
I've also fixed a second bug where In case there's no body, the http server would never respond. I added at least a generic handler at the end of the chain that will at least return an error response and not get the server stuck
//cc @philsturgeon

+1 from me but GitHub doesnt care seeing as I opened this initially.

Can you point the line that did the job?

@chris-miaskowski This is the commit fixing the issue:
https://github.com/stoplightio/prism/pull/196/commits/e481eeb419c3e4a3c54560301a616d0ce4ae5b7a

@chris-miaskowski Please have another round of review.


User Tenant service has in models some extra properties for tenant table.

Describe the bug
User Tenant service uses the AuthDB, but there are some extra properties defined for tenants table in user service.
Expected behaviour
Model in user tenant service must be consistent with the Auth service Model.
Screenshot

The issue will be resolved via #1696


Polish release notes 2.x

#8352

@Jay-o-Way can you resolve the merge conflicts here?

@Jay-o-Way can you resolve the merge conflicts here?

Hm, that seems to be a slight problem :(

I'll try to fix that for you. But let's limit each PR to 50 files, ok? Thanks 🙏🏻

PTAL

I reviewed the entire PR now. The only thing left is that I can't see the diff for 2.2.0 commits. So I'd recommend we roll back and do one change at a time for that file.

Interesting. What happens if you try to check it out locally?
I'll have a look tomorrow, is bedtime here 🙂

I can try that and use a local tool to do the diff. But I won't be able to comment if there are any suggestions. Let's see.

Thank you very much 😊

Thank you!


UDP protocol support. Same client listener and abstract client implementations can be used with UDP.

Implementation creates a virual channel layer on top of a datagram channel at the server such that a virtual connection is maintained for each client peer involved in the connection and all the peers are symmetric clients.

Discussed alternate design and API with Pramod. The current implementation is incompatible with it.


Fix windows related error

This pr was created to solve:

The problem that esbuild can't recognize windows back-slash \ during the build and cause error

Solved by normalize the back-slash to forward-slash with normalizePath()
The place that use normalizePath():

L469-L474
L484
L493
L498-L503
L504-L509

The problem that windows cant use spawn() with npx as it will cause the error
spawn npm ENOENT

Solved by detecting the platform, spawn with npx.cmd if win32 was detected, otherwise spawn with npx
The place that was changed:

L54-L55
Fixes #52

If you don't mind me asking, I'm curious as to what error esbuild gives you for the entryPoints, inject, and functionsFile file paths that mean they need to be normalized. I wasn't getting any errors with them when I was testing locally - the only error I could manage to produce was for file paths located inside the files.
The normalizePath(filepath) on the hydrated entries (L484, L493) shouldn't be needed anymore as they are normalized earlier in the code when added to the functions map.

If you don't mind me asking, I'm curious as to what error esbuild gives you for the entryPoints, inject, and functionsFile file paths that mean they need to be normalized. I wasn't getting any errors with them when I was testing locally - the only error I could manage to produce was for file paths located inside the files.
The normalizePath(filepath) on the hydrated entries (L484, L493) shouldn't be needed anymore as they are normalized earlier in the code when added to the functions map.

The error esbuild gives me is here
X [ERROR] Could not resolve "C:UsersXXXAppDataLocalTempy5e3zjw1i9sindex.func.js"

    ../../../../../AppData/Local/Temp/functions-wgc9o6l1c2.js:2:116:
      2 │     export const __FUNCTIONS__ = {"index": { matchers: [{"regexp":"^/$","originalSource":"/"}], entrypoint: require('C:\Users\XXX\AppData\Local\Temp\y5e3zjw1i9s\index.func.js')}};
        ╵                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  You can mark the path "C:UsersXXXAppDataLocalTempy5e3zjw1i9sindex.func.js" as external to
  exclude it from the bundle, which will remove this error. You can also surround this "require"
  call with a try/catch block to handle this failure at run-time instead of bundle-time.

C:\Users\XXX\OneDrive\Documents\VSCode\LOLBRUHNICE\next-on-pages\node_modules\esbuild\lib\main.js:1566
  let error = new Error(`${text}${summary}`);
              ^

Error: Build failed with 1 error:
../../../../../AppData/Local/Temp/functions-wgc9o6l1c2.js:2:116: ERROR: Could not resolve "C:UsersXXXAppDataLocalTempy5e3zjw1i9sindex.func.js"
    at failureErrorWithLog (C:\Users\XXX\OneDrive\Documents\VSCode\LOLBRUHNICE\next-on-pages\node_modules\esbuild\lib\main.js:1566:15)
    at C:\Users\XXX\OneDrive\Documents\VSCode\LOLBRUHNICE\next-on-pages\node_modules\esbuild\lib\main.js:1024:28
    at C:\Users\XXX\OneDrive\Documents\VSCode\LOLBRUHNICE\next-on-pages\node_modules\esbuild\lib\main.js:969:67
    at buildResponseToResult (C:\Users\XXX\OneDrive\Documents\VSCode\LOLBRUHNICE\next-on-pages\node_modules\esbuild\lib\main.js:1022:7)
    at C:\Users\XXX\OneDrive\Documents\VSCode\LOLBRUHNICE\next-on-pages\node_modules\esbuild\lib\main.js:1134:14
    at responseCallbacks.<computed> (C:\Users\XXX\OneDrive\Documents\VSCode\LOLBRUHNICE\next-on-pages\node_modules\esbuild\lib\main.js:671:9)
    at handleIncomingPacket (C:\Users\XXX\OneDrive\Documents\VSCode\LOLBRUHNICE\next-on-pages\node_modules\esbuild\lib\main.js:726:9)
    at Socket.readFromStdout (C:\Users\XXX\OneDrive\Documents\VSCode\LOLBRUHNICE\next-on-pages\node_modules\esbuild\lib\main.js:647:7)
    at Socket.emit (node:events:513:28)
    at addChunk (node:internal/streams/readable:324:12) {
  errors: [
    {
      detail: undefined,
      id: '',
      location: {
        column: 116,
        file: '../../../../../AppData/Local/Temp/functions-wgc9o6l1c2.js',
        length: 61,
        line: 2,
        lineText: `    export const __FUNCTIONS__ = {"index": { matchers: [{"regexp":"^/$","originalSource":"/"}], entrypoint: require('C:\\Users\\XXX\\AppData\\Local\\Temp\\y5e3zjw1i9s\\index.func.js')}};`,
        namespace: '',
        suggestion: ''
      },
      notes: [
        {
          location: null,
          text: 'You can mark the path "C:UsersXXXAppDataLocalTempy5e3zjw1i9sindex.func.js" as external to exclude it from the bundle, which will remove this error. You can also surround this "require" call with a try/catch block to handle this failure at run-time instead of bundle-time.'
        }
      ],
      pluginName: '',
      text: 'Could not resolve "C:UsersXXXAppDataLocalTempy5e3zjw1i9sindex.func.js"'
    }
  ],
  warnings: []
}

though I found that your changes also solved this problem as you make it normalize the path before it was put into the functionsMap after I test it

though I found that your changes also solved this problem as you make it normalize the path before it was put into the functionsMap after I test it

I thought that would be the case. Seems like the other normalizePaths you did might not be needed then.

though I found that your changes also solved this problem as you make it normalize the path before it was put into the functionsMap after I test it

I thought that would be the case. Seems like the other normalizePaths you did might not be needed then.

yeah, I just removed the changes I made with the path

Thanks a lot @james-elicx for the assistance in reviewing the PR! (it's ultra appreciated especially since we're currently not really well equipped to test the package on windows)
And thanks a lot @LOLBRUHNICE of course! 🙂


feat: New secure Connect API proposal

Signed-off-by: Katherine Stanley<EMAIL_ADDRESS>

@katheris I had a first pass but stopped reading in the first part where you start mentioning certs, self-signed certs and so on because I think that that part is important to understand the rest of the proposal. I don't think it's pretty clear, at least to me :-)

Thanks @ppatierno I'll have a look at your comments and see if I can make it clearer.

@tombentley @scholzj On the comments around the certificate renewals. I agree that having the operator handle the certificate adds additional complexity and does build on top of a system that is not ideal in the first place. When I was writing the proposal I did actually consider writing it so that instead of providing a CA the user provides the actual certificate they want to use and the user has to manage it. I think that would integrate really well with things like cert manager because as far as I can tell those sorts of services result in a secret anyway.
The obvious trade-off is that it means every user that is using this system has to create a certificate themselves, whether they are integrating with a Strimzi managed Kafka or not. However, since this proposal does not enable the security by default so it does not stop people trying it out and if they are using Strimzi in production then they will likely want to provide their own certificates anyway.
Overall I agree with you both that offloading the management of the certificates would likely still satisfy the user requirements.
I'd be interested to know what @ppatierno's and @ajborley's thoughts are

The obvious trade-off is that it means every user that is using this system has to create a certificate themselves, whether they are integrating with a Strimzi managed Kafka or not.

I guess this is the next question if we decide to integrate with something else. The integration can scale from shared Secret up to having something like a cert-manager as pre-requisite for using Strimzi and having Strimzi orchestrate it directly (e.g. Strimzi would create the cert-manager CRs to get a CA and server cert). I guess something in the middle might be best - but at the end this would define how much of this would be user's manual work and how much it would be automated.

I agree, I think that right direction is offloading to user to provide Secrets so that it works with cert-manager and things like that. Isn't it the direction that @tombentley was taking while refactoring the certificates handling in Stimzi anyway?

@tombentley @ppatierno @scholzj are you happy for me to update this proposal to instead propose the user provides to the CR a secret with an already created certificate? So taking away any responsibility from Strimzi to maintain the certificate?

@katheris - I'm also happy with the plan to provide certs via secrets here - sounds a simpler and more flexible way to TLS enable the connection 👍

@ppatierno @tombentley @scholzj @ajborley proposal has been updated so the user provides all certificates

In terms of how this interacts with #46 I think the high level approach to certificates is aligned, in that it encourages the user to use an external system for generating certificates. The key difference is that in this proposal the user is required to manage the certificate requesting on their own, whereas in the other proposal Strimzi does handle the certificate requesting for you. The approach in this proposal matches the way that certificates are currently provided to the connect operator so that the connect instances can trust Kafka. Currently the connect operator doesn't manage any certificates itself, it only uses the ones it is given.
The advantage of the user owning the certificate requesting process is that the connect operator can work with any certificate generation system as long as that system puts the certificates in a secret. Since the connect operator is often used with Kafka instances that aren't managed by Strimzi I think this flexibility is useful as it means users are less likely to need to change their certificate processes to fit in with what Strimzi supports.
Proposal #46 does not mention the connect operator at all, and from my understanding none of the changes suggested require the connect operator to start handling certificate requests.
If we did want to align this more closely with #46 I think it would update the restListeners object to contain fields that match the ones in #46 e.g.
    type: cert-manager.io
    validityDays: <integer> # used for CertificateRequest.spec.duration
    issuer:
      name: <string>  # used for CertificateRequest.spec.duration
      kind: <string>
      group: <string>
    generateSecretOwnerReference: <boolean>
    renewalDays: <integer>

Since the connect operator runs as part of the cluster operator, I assume it wouldn't be too hard to have it make use of the new certificate request process. Then instead of the cluster operator looking in the Connect CR spec for the certificate it needs to trust when managing connectors, the connect operator could add the resulting certificate secret name to the status and the cluster operator would look there instead.

The cases are not the same -> the Kafka cluster needs a CA with server certs, here we basically need only a server cert. But it seems to be a very different direction and it concerns me a bit. Also, there will be users who do not want to use Kubernetes Secrets since they are not that secret. #46 deals with that with suggesting possible integration beyond secrets. This does not really open the doors for this.

For connect if we are using the KafkaConnectors type then the operator does need access to the CA as well as server certs. We could certainly adapt this proposal to more closely align to #46. I think including the "external" type that is suggested here: https://github.com/tombentley/proposals/blob/ca-abstraction/035-ca-abstraction.md#rejected-alternatives along with other types like cert manager gives a range of options to the user. @ppatierno @tombentley what do you think?

operator does need access to the CA as well as server certs

Can you explain why? Maybe I don't remember exactly how the KafkaConnector works but if there is a TLS handshake to secure a connection, a CA is enough to validate the server certificate or the server certificate is enough with no need of the CA (for example if the server certificate is self-signed but even if it's not).

operator does need access to the CA as well as server certs

Can you explain why?

If the KafkaConnectors type is in use then the Kafka Connect operator has to call the REST API endpoint. If the REST API is hosting a https endpoint, then either the connect operator has to make an insecure connection or it has to trust the certificate that the REST API is presenting. If the certificate being presented is a self-signed cert, then the operator just trusts that, but in most cases we would assume the certificate has been signed by a CA, so the operator should trust the CA instead of the end certificate.
We did discuss in the community call I think whether the operator could just trust the end certificate, but if I remember correctly it was designed that it was better to follow the approach that users would expect, which would be for the operator to trust the CA. That way if the end certificate changes the connect operator doesn't need to be updated, it is only updated if the CA cert changes.

We did discuss in the community call I think whether the operator could just trust the end certificate, but if I remember correctly it was decided that it was better to follow the approach that users would expect, which would be for the operator to trust the CA. That way if the end certificate changes the connect operator doesn't need to be updated, it is only updated if the CA cert changes.

Absolutely, I think no IT system trusts an end certificate but always trust the CA.

For connect if we are using the KafkaConnectors type then the operator does need access to the CA as well as server certs.

So is this sentence wrong? The operator needs access to the CA not the server certs.

Hi,
Do you have any update on this proposal? It's been more than an year since the last update.
This feature is really important...
Thanks in advance

Triaged on the Strimzi Community call on 25.1.2024: This is blocked by the Kafka CA abstraction work that is a prerequisite for this. We should close this and re-open it / open a new proposal for this once the CA work is done.


How does rs-record-playback.cpp work? [C++]

Required Info

Camera Model
D400

Firmware Version
<IP_ADDRESS>

Operating System & Version
Win 10

Kernel Version (Linux Only)

Platform
PC

SDK Version
2.16.1

Language
C++

Segment
others

Introduction
Hello community! 😺  My goal of this question is to record just 1 frame and save it as a .bag (rosbag) format if possible. If this is not possible, this should not be a problem as well.
My reason for wanting only 1 frame in a .bag file is for performance, to decrease processing time required when using rs-convert.cpp.
I have asked this similar question once here. I tried the given suggestion, but it does not seem to work. My question is how does the API determine when to start the recording of .rosbag file in the code? I will elaborate further below after Goals.
Goal
Using rs-record-playback.cpp, I managed to capture a .bag file, which I then threw it into rs-convert.cpp to convert into a .csv file with each individual frame (x, y, z) coordinates.
My theory is the smaller the .bag file, the lesser frames it contains which means the shorter the time it needs for rs-convert.cpp to convert the .bag file to .csv file(s).
rs-convert

File Explorer with ~0.5s of recording, theoretically should have 15 frames converted, but 9 actual frames

Issue
The code to do a recording to .bag file seems pretty straight forward. However unlike rs-capture.cpp etc which does:
rs2::frameset data = pipe.wait_for_frames(); // Wait for next set of frames from the camera
rs2::frame depth = color_map.process(data.get_depth_frame()); // Find and colorize the depth data

I do not find any code in rs-record-playback.cpp that does any function which manages the frames. All it does is create a config cfg with the function cfg.enable_record_to_file().
My own code segment to record ~0.5s of .bag file
if (ImGui::Button("record", { 50, 50 }))
{
    // If it is the start of a new recording (device is not a recorder yet)
    if (!device.as<rs2::recorder>())
    {
        pipe->stop(); // Stop the pipeline with the default configuration
        pipe = std::make_shared<rs2::pipeline>();
        rs2::config cfg; // Declare a new configuration
        cfg.enable_record_to_file("a.bag");
        pipe->start(cfg); //File will be opened at this point
        device = pipe->get_active_profile().get_device();

        // Edited Start
        std::this_thread::sleep_for(std::chrono::milliseconds(500));
        pipe->stop(); // Stop the pipeline that holds the file and the recorder
        pipe = std::make_shared<rs2::pipeline>(); //Reset the shared pointer with a new pipeline
        pipe->start(); // Resume streaming with default configuration
        device = pipe->get_active_profile().get_device();
        recorded = true; // Now we can run the file
        recording = false;
        // Edited End
    }
}

Based on the above code segment, pipe->start(cfg) starts the recording and pipe->stop() stops the recording, and no where to specify how many frames I would like to record. Is this correct? I tried looking into cfg.enable_record, but all I can find is this:
void enable_record_to_file(const std::string& file_name)
{
       rs2_error* e = nullptr;
       rs2_config_enable_record_to_file(_config.get(), file_name.c_str(), &e);
       error::handle(e);
}

Edit
Alternatively, I can do it in the rs-convert.cpp code to just convert 1 frame, correct?

NOTE: For readability's sake, I rewrote my comment from [another thread)[https://github.com/IntelRealSense/librealsense/issues/2588#issuecomment-438526333]
I found a workaround, but this method compromises the color camera frames recorded to the .bag file since the color camera takes more time to initialize (settle down).
The first thing you want to do is to record a .bag file as per normal, but record as little as possible. To achieve this, I did std::this_thread::sleep_for(std::chrono::milliseconds(1000)); in between pipe->start(cfg); and pipe->stop();.
A more complete code when capturing .bag modified from rs-capture-playback.cpp:
if (ImGui::Button("record", { 50, 50 }))
{
    // If it is the start of a new recording (device is not a recorder yet)
    if (!device.as<rs2::recorder>())
    {
        pipe->stop(); // Stop the pipeline with the default configuration
        pipe = std::make_shared<rs2::pipeline>();
        rs2::config cfg; // Declare a new configuration
        cfg.enable_record_to_file("a.bag");
        pipe->start(cfg); //File will be opened at this point
        device = pipe->get_active_profile().get_device();

		// Edited Start
		std::this_thread::sleep_for(std::chrono::milliseconds(1500));
		pipe->stop(); // Stop the pipeline that holds the file and the recorder
		pipe = std::make_shared<rs2::pipeline>(); //Reset the shared pointer with a new pipeline
		pipe->start(); // Resume streaming with default configuration
		device = pipe->get_active_profile().get_device();
		recorded = true; // Now we can run the file
		recording = false;
		// Edited End
    }
}

To convert these files into a single frame capture, either to .png or .csv, I modified rs-convert.cpp. Since I am primarily interested in capturing a single frames to decrease conversion/processing time, I can ignore many frames and just dive right to convert and save a frame before jumping out of the conversion loop.
Here is a more complete code modified from rs-convert.cpp.
while (true) {
	auto frameset = pipe->wait_for_frames();

	int posP = static_cast<int>(playback.get_position() * 100. / duration.count()); // Current position probably

	if (posP > progress) { // If current position > previous progress, update to new progress %
		progress = posP;
		//std::cout << posP << "%" << "\r" << std::flush;
		std::cout << posP << "%" << std::endl;
	}

	std::cout << "frameset[0].get_frame_number() = " << frameset[0].get_frame_number() << std::endl;
	std::cout << "frameNumber = " << frameNumber << std::endl;

	if (frameset[0].get_frame_number() == 5 || frameset[0].get_frame_number() == 6 || frameset[0].get_frame_number() == 7) { // If end of frame, bag loops again, hence get_frame_number resets to 1 and is smaller
		std::for_each(converters.begin(), converters.end(), [&frameset](std::shared_ptr<rs2::tools::converter::converter_base>& converter) {
			converter->convert(frameset);
		});

		std::for_each(converters.begin(), converters.end(), [](std::shared_ptr<rs2::tools::converter::converter_base>& converter) {
			converter->wait();
		});

		break;
	}

	frameNumber = frameset[0].get_frame_number();
}

From the above example, I captured either frames 5, 6 or 7 in case the convert program skips frames, which happens quite often.


feat: contains operator

Closes #534
This PR adds the contains operator to the list of operators. This corresponds to ArrayIncludes.
Perhaps the name contains is incorrect? maybe includes or something similar would be better. Open to feedback.

Documented the changes and made sure they build. This should be OK now?

:tada: This PR is included in version 5.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

Just an important note as I bumped into this just now: the minimum version of TypeORM necessary to use this functionality is 0.3.0, anything less and $contains will map to undefined instead of a function.
Perhaps this should be indicated in the readme or package.json somehow?


pio: Fix unsound Send clippy warning

Clippy complains about the following line being unsound: rp2040-hal/src/pio.rs:535
this implementation is unsound, as some fields in `StateMachine<SM, State>` are `!Send`
`#[warn(clippy::non_send_fields_in_send_ty)]` on by default
add bounds on type parameter `SM` that satisfy `InstalledProgram<SM::PIO>: Send`
for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_send_fields_in_send_ty

The warning can be resolved by making PIOExt, StateMachineIndex, and ValidStateMachine be supertraits of Send. This also makes adding the Send bound redundant in a few places.

Is there ever a case where these traits should not require being Send? Maybe it made more sense to make the Send requirement only apply to usage with StateMachine.

Paging @ithinuel

If I remove the Send requirement from StateMachineIndex, I get:

SM cannot be sent between threads safely\nrequired because it appears within the type (P, SM)
But you're right about ValidStateMachine not needing it. The other changes in this branch are to get rid Send bounds made redundant by making PIOExt require Send.
(The extra pushes were because I realized I should put back the Send bound where ValidStateMachine is used)

Are we good to go on this one? Any other changes @all?


Create compute instance

[Enter feedback here]
Lost at this point.
"On the left side, under Manage, select Compute."
This does not exist on my screen even though I have followed all the previous steps. The tutorial might be referencing an outdated version of AML or the author did not carefully guide the learner to the correct screen.

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

ID: 5cc8d79d-155b-b9e3-9020-56a7d946d4c8
Version Independent ID: a38bd926-43ab-0c92-ed09-cb5baef31816
Content: Quickstart: Create workspace resources - Azure Machine Learning
Content Source: articles/machine-learning/quickstart-create-resources.md
Service: machine-learning
Sub-service: core
GitHub Login: @sdgilley
Microsoft Alias: sgilley

@harlananelson Thanks for the feedback! We will review and update accordingly.

Raised PR request #https://github.com/MicrosoftDocs/azure-docs-pr/pull/170106 for Create compute instance.
@sdgilley Could you please review the doc for Create compute instance.


Remove empty classes and lookups?

A UFO I want to subset is later crashing feaLib with Empty glyph class in contextual positioning rule. Is there a particular reason why dropping empty lookups isn't implemented yet? Otherwise I'd try my hand at it.

I think I started - 0e12df4 and ca84892 are supposed to address this. But obviously I didn't get all of them...

https://github.com/googlefonts/ufomerge/blob/257e339f0b3a8474de508aa4c288f6e163fd7e58/Lib/ufomerge/__init__.py#L488
Should this be if not hasattr(feature, "statements"):? Otherwise ast.LookupBlock get skipped over?


feat: trigger semantic release

:tada: This PR is included in version 1.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add support for user defined metadata

This PR adds support for user supplied metadata, that will be made
available to containers via the rancher-metadata api.
Minor changes were made to the test and bootstrap script to make the
/scratch code path work.

Can you change https://github.com/cloudnautique/rancher-compose/blob/c2dcfd5059f49e49bdee2549a1031c61f6508d3e/tests/integration/cattletest/core/test_compose.py#L1383 to name='cert3'.  The test was always wrong but the new cattle version checks for unique cert name now.

@cloudnautique And rebase one more time :)  Master was broken from the last hasty PR merge.

Updated the failing cert test. I added a wait_for call to make sure the cert is removed removed so that the name can be reused. It might be better to add a purged state to certificates? There isn't one according to our latest schema.


Add ability select local .hex when recovering corrupt OpenScope MZ

When recovering corrupt firmware as described here if a user selects OpenScope MZ they do not have the option to select a .hex file from their local machine.  This could be an issue if the user does not have a (decent) internet connection.
Add ability to browse for firmware after selecting OpenScope MZ.
Work around:
Select Other and browse for a local .hex file.
or
Go into the settings page and increase the timeout to something large enough for the firmware download to complete, then follow the standard recovery directions.

When uploading firmware, if OpenScope MZ is selected for device, the user can now select 'Latest' or 'Other' from a drop down. Selecting Latest preserves the original firmware flashing flow, where WFL downloads the latest firmware version to the desktop and transfers that to the agent. Selecting Other causes a browse button to appear in the modal. Hitting browse opens a file browser where the user is directed to select a hex file. Once submitted, WFL will transfer the selected firmware hex to the agent for flashing.
commit: 88a568decd3f7bf8b9c5562da102f96e5cb7bc7f


Compilation Error

Issue template

Hardware description: Teensy 4.1

RTOS: micro-ROS arduino

Version or commit hash: main

Steps to reproduce the issue
platform.ini file:
[env:teensy41]
platform = teensy
board = teensy41
board_microros_distro = galactic
board_microros_transport = serial
framework = arduino
lib_deps =
	https://github.com/micro-ROS/micro_ros_platformio

Expected behavior
compile
Actual behavior
Error
Requirement already satisfied: markupsafe==2.0.1 in c:\users\v-mifass\.platformio\penv\lib\site-packages (2.0.1)
Configuring teensy41 with transport serial
Downloading micro-ROS dev dependencies
ament_cmake clone failed:
fatal: Too many arguments.

Additional information

Could not replicate this. What is your git version?
git --version

Should we check if git executable is in the path before running it? @Acuadros95

Also, because of the c:\ I guess that @v-mifass is running Windows. Maybe we should explore the possibility of porting this to Windows.

yes running platformio on windows.  Git version 2.35.1.windows.2

So compiling in Linux does work.  This can be closed unless a version to compile on platformio on windows is an 'issue'

Closing, support for windows is not currently under development due to colcon cross compilation issues on windows.


1-day offset

Somehow, I've introduced a 1-day offset into the data - features occur 1 day earlier than they should
Correct figures:

Tool output:

.

The actual time array in the datafile is fine - no offset to it.
The datafile starts at 2007-12-31T00:00:00, JD2454465.5, so actually 24h before the start of 2008. Is this responsible for the 24h offset?

Bug in input files.


Generated modules use global state and break context isolation.

Describe the bug
Module code generation forces instantiating the module class twice and breaks context isolation.
When using annotations, it is impossible to run Koin in parallel, such as in the case of unit / integration tests, as the same one global module will be shared across Koin instances.
To Reproduce
Consider the following module:
@Module
class MyModule {

    @Named("Seed")
    @Single(createdAtStart = true)
    fun randomSeed() = SecureRandom.getInstanceStrong().nextLong()
}

Which I then install in a Ktor Application:
fun Application.configureDI() {
    val moduleInstance = MyModule()

    install(Koin) {
        modules(moduleInstance.module)
    }

    val applicationInstance = this
    val koinInstance = applicationInstance.getKoin()
    val seedInstance = koinInstance.get<Long>(named("Seed"))

    println("Ktor $applicationInstance, uses koin $koinInstance, and module $moduleInstance has seed $seedInstance")
}

If I run two Ktor test applications in parallel, I get the following logged:
Ktor io.ktor.server.application.Application@2e7d7e03 uses koin org.koin.core.Koin@5b54ae0e, and module com.example.MyModule@66e53ab8 has seed -4596009551291032851
Ktor io.ktor.server.application.Application@3a3a4af6 uses koin org.koin.core.Koin@2efa5d9d, and module com.example.MyModule@6ceeaad3 has seed -4596009551291032851

So, two different Ktor instances, with two different Koin instances, with two different module instances, ended up generating the same seed... hmm.
Looking at the generated code, I see:
public val io_example_MyModule : Module = module {
	val moduleInstance = io.example.MyModule()
	single(qualifier=org.koin.core.qualifier.StringQualifier("Seed"),createdAtStart=true) { moduleInstance.randomSeed() } bind(kotlin.Long::class)
}
public val io.example.MyModule.module : org.koin.core.module.Module get() = io_example_MyModule

Even though the module is an extension over an already created instance of MyModule, it resolves to a global variable which instantiates it itself once more, and that instance is then used to provide the values, regardless of module or Koin instance they were defined in.
Expected behavior
The .module extension  should get a module based on the instance it was called on instead of global state.
Koin project used and used version:
io.insert-koin:koin-bom:3.5.1
io.insert-koin:koin-annotations-bom:1.3.0
Extra notes:
This is a more trivial example for reproducibility, how I originally found this bug is that I was trying to execute parallel integration tests with different databases, but I got constraint violation exceptions, which made no sense unless the same connection was reused. I was able to trace back the culprit to this. If I instead declare the module with the normal DSL, then the issue goes away.

yes, this is clearly a limitation in the current design. It needs to be followed-up for next milestone, as it's an important change

Bad stale bot, bad!

Fixed in https://github.com/InsertKoinIO/koin-annotations/pull/136


Pipelines: GCP Deployment UI no longer offers option for creating permanent storage

GCP Deployment UI no longer offers the option to create permanent storage:
https://deploy.kubeflow.cloud/#/deploy
In our docs we say:

Create Permanent Storage: Check this option if you plan to use Kubeflow Pipelines and you need persistent storage for your pipeline data. The default is not to add persistent storage. For more information, see the guide to upgrading and reinstalling Kubeflow Pipelines.

We need to fix the deployment guide.
PR https://github.com/kubeflow/website/pull/1177 addresses the upgrade guide.

/assign


Finishing stream before entirely reading the whole file content

I'm not able to parse the whole remote file content, the size is about 200Mb, the stream is finishing, before parsing entirely. It parse only portion of data, not completely.
I think the problem with pause/resume stream.
e.g.
let transformer = transform(function(record, cb) {
  setTimeout(function() {
    // do some heavy job!
    cb();
  }, 5000);
});

let parser = this.csvParse({
  // ...
});

// the data size is about 200Mb
request('http://example.com/bar.csv')
  .on('error', errorHandler);
  .pipe(parser)
  .on('error', errorHandler)
  .pipe(transformer)
  .on('finish', () => {
      console.log('finished, but not parse completely!');
  })
  .on('error', errorHandler)
  .on('data', (data) => {

  });

@wdavidw any ideas?

can u try the end event and let me know

tested, the same

@wdavidw and so any advices?

@hbakhtiyor The way you have chained the .on method has added the finish event onto the request object. What you want is actually
transformer.on('finish',function(){
   console.log('this should work');
});

@pravincar the usage of pipe is correct, it returns the destination stream.

You're usage of transform is wrong, the callback usage is:

cb(Error('Oh no!')) 1st argument is an error, stop here
cb(null, data.join(',')+'whatever u want') 2nd argument is the transformed string or object
cb() no argument, no generated data

However, it seems that you know that and that your probleme is more about not having the all dataset, specially the end of the data streamed, like if _flush wasn't called.
Could you confirm that you still reproduce the error after writing a correct transformer (you can adjust my below example) and after decreasing the timeout to "1"?
I tried to reproduce but it seems fine in my case:
fs = require 'fs'
transform = require './transform'
parse = require 'csv-parse'

errorHandler = (err) ->
  console.log 'ERROR', err

transformer = transform (record, cb) ->
  setTimeout ->
    cb null, record.join(',')+'\n'
    # cb() # print 0
  , 1

parser = parse()
count = 0

fs.createReadStream("#{__dirname}/data/10000000-lines.csv")
.on 'error', errorHandler
.pipe parser
.on 'error', errorHandler
.pipe transformer
.on 'end', ->
  console.log 'ended, got', count
.on 'finish', ->
  console.log 'finished, got', count
.on 'error', errorHandler
.on 'data', (data) ->
  count++

cb(Error('Oh no!')) 1st argument is an error, stop here
cb(null, data.join(',')+'whatever u want') 2nd argument is the transformed string or object
cb() no argument, no generated data

yeah, i know, i just make mistake in the example, but in real app, passting to the right argument.

and after decreasing the timeout to "1"?

didn't test yet, surely it can pass, but in my case taking more times
thanks

@wdavidw what do you think?

i've reproduce sth close to your environnement, with a file of the same size running my above code, and it worked perfectly. unless you give me a script and a file reproducing the issue, i wont be able to look for a fix

did you use with request module?

I have a similar issue...
If I run this the console will only show the first 16 lines (should show 100)
var transform = require('stream-transform');

var records = [];
for(var i = 1; i <= 100; i++) {
  records.push({ index: i })
}

transform(records, function(data) {
    console.log(data);
    return data;
  })
  .on('finish', function() {
    console.log('done!');
  })

However if I add a few lines, it works fines and displays all 100 lines in the console
var transform = require('stream-transform');

var records = [];
for(var i = 1; i <= 100; i++) {
  records.push({ index: i })
}

transform(records, function(data) {
    console.log(data);
    return data;
  })
  .on('data', (data) => {
    // Adding this seems to make it work
  })
  .on('finish', function() {
    console.log('done!');
  })

Is that how it is meant to work? Or is there an issue?

It looks to me like there is an issue when using an async transform with streams. Here is the simplest way to replicate the problem:
https://github.com/mz3/node-csv-issue
I'll copy the code here since I don't plan on leaving that repo up forever.
var path = require("path");
var fs = require("fs");
var CSV = require("csv");

var count = 0;

// for each parsed line in csv
var transformer = CSV.transform(function(record, callback) {

  setTimeout(function() {
    console.log(++count);
    callback();
  }, 500);
});

// when finished
transformer.on("finish", function(err) {
  console.log("transformer finish. count is", count);
});

// start
fs.createReadStream(path.join(__dirname, "sample.csv")).pipe(CSV.parse({columns: true})).pipe(transformer);

Expected output:
1
2
3
4
5
6
7
transformer finish. count is 7

Actual output:
transformer finish. count is 0
1
2
3
4
5
6
7

It looks to me like there is an issue when using an async transform with streams. Here is the simplest way to replicate the problem:
https://github.com/mz3/node-csv-issue
I'll copy the code here since I don't plan on leaving that repo up forever.
var path = require("path");
var fs = require("fs");
var CSV = require("csv");

var count = 0;

// for each parsed line in csv
var transformer = CSV.transform(function(record, callback) {

  setTimeout(function() {
    console.log(++count);
    callback();
  }, 500);
});

// when finished
transformer.on("finish", function(err) {
  console.log("transformer finish. count is", count);
});

// start
fs.createReadStream(path.join(__dirname, "sample.csv")).pipe(CSV.parse({columns: true})).pipe(transformer);

Expected output:
1
2
3
4
5
6
7
transformer finish. count is 7

Actual output:
transformer finish. count is 0
1
2
3
4
5
6
7

try with the "consume" option set to "true", otherwise transform is not a to be consumed by a readable stream

Setting consume: true doesn't seem to make a difference. What do you mean when you say "transform is not a to be consumed by a readable stream?"

I refer to the Node.js stream API. Transform is a stream.Transformer, meaning it is both reading data from a provider and writing data to a consumer. If you dont provide a consumer then you dont have any one to active the stream pump: produer.pipe(transformer).pipe(consumer)

Ah, okay. Thanks for clarifying. I discovered that it will only work correctly if both of these conditions are met:

{ consume: true } is set
.on("end" ... ) is used

The "finish" event seems to fire prematurely, but the "end" event works correctly, only if { consume: true } is set.

Ah, okay. Thanks for clarifying. I discovered that it will only work correctly if both of these conditions are met:

{ consume: true } is set
.on("end" ... ) is used

The "finish" event seems to fire prematurely, but the "end" event works correctly, only if { consume: true } is set.


Release version 0.0.11

Codecov Report
Patch has no changes to coverable lines.
:loudspeaker: Thoughts on this report? Let us know!.