Apply null_resource resources on every run, various fixes

I tried to run rake locally to recover prd from cluster destruction, and the only thing which prevented everything from getting back to its original state was null_resource resources of cert-manager and couchdb.
I see no harm in adding a little bit of execution time to improve idempotency of apply operation.

LGTM

I slightly dislike using nonce in this way for the kubectl apply, as TF will then report that something changed on every single run.
In would suggest exploring the https://github.com/mcuadros/terraform-provider-helm/blob/master/docs/release.md resource, it has some potentially interesting attributes, in particular metadata with revision field, which if propagated out of the exekube wrapper module - might be a good candidate to use as a trigger, to really trigger only on changes.

@stepanstipl Thanks for your review!
I agree that it is against Terraform philosophy to blindly apply resources on every run, however, Terraform does not provide any "native" way of dealing with this issue:

Resources in question can't be a part of the Helm chart (both, logically and by-design), so there is nothing that Helm provider can help us with in this case.
End result of this is still the same, changes to infrastructure will be made only if they're needed: kubectl will skip existing cert-manager resources on apply, and couchdb finish cluster script will do nothing in case cluster already finished.

LGTM
Hypothesis: In a Deployment with 3 Pods, maxUnavailable: 0 is the same as maxUnavailable: 25% (since 33% > 25%).

@mrtyler I can confirm that maxUnavailable: 25% means minimum 1 pod. The thing is that it needs to create at least 1 new pod before it starts bringing old pods down, and we don't have enough room for that.
To deal with this for the time being I added one more zone to gke_cluster.additional_zones.
Again, once GPII-3419 is implemented we'll have more flexibility (for example to use auto-scaling to handle rolling update surges).

LGTM
Sergey and I have been discussing in Slack. I added a parking lot item to have a bit more conversation with the team about deployment strategies, node sizing, etc.

@natarajaya  I think I disagree here:

Resources in question can't be a part of the Helm chart (both, logically and by-design), so there is nothing that Helm provider can help us with in this case.

couchdb_finish_cluster
couchdb_finish_cluster should only run when there's a change to the corresponding couchdb chart? Or am I getting this wrong?
Looking at what it does, I would say it would be actually a good candidate to be moved to the chart itself (smth like add a flag whether to wait for couchdb to be ready and add this as a hook). Couldn't this work?
cert_manager_resources
Now the cert_manager_resources - there's only one, the issuers.yaml. Again I think this is something that could potentially be added as chart functionality, but mainly this should only change if there's a need for it and we should probably use proper resource for applying K8s manifests instead of null one with local-exec.

End result of this is still the same, changes to infrastructure will be made only if they're needed: kubectl will skip existing cert-manager resources on apply, and couchdb finish cluster script will do nothing in case cluster already finished.

The problem in general is that now instead of relying on the terraform mechanisms, you're relying on the fact that the the implementation (in this case kubectl and the custom script) don't really change/modify anything.

@stepanstipl couchdb_finish_cluster should run only once after initial cluster creation. Changes to the chart like scaling statefulset up and down, does not affect the state of the couchdb cluster. In long term perspective, I would say this should go into couchdb sidecar, we have GPII-3343 for that.
Regarding cert_manager_resources, Issuers should not be a part of cert-manager chart, because there are many types of issuers that chart supports and it is really a duty of other components that relies on cert-manager to create Issuers for themselves. But again, now we have multiple components that share same ClusterIssuer objects. I created GPII-3431 to look into this.

The problem in general is that now instead of relying on the terraform mechanisms, you're relying on the fact that the the implementation (in this case kubectl and the custom script) don't really change/modify anything.

Terraform does not have any way to get the actual state of null_resource resources. If, let's say, I accidentally delete cert-manager issuers in my cluster, without "nonce hack" Terraform will never re-apply them. Same goes with couchdb_finish_cluster. So, if the choice is to either have more idempotent behavior, but relying on our own workarounds, or to have less consistency, relying on native terraform mechanisms, I would pick the former option rather than latter :)

couchdb_finish_cluster should run only once after initial cluster creation

Ok, now I'm confused as this PR is doing exactly opposity, making it run every single time.
I agree that sidecar would also be much better place for this (still think chart could work too)

Regarding cert_manager_resources, Issuers should not be a part of cert-manager chart, because there are many types of issuers that chart supports

I agree that probably best approach is to find a decent way how to manage K8s resources via terraform that properly work in TF world, including plan mode (maybe https://github.com/ericchiang/terraform-provider-k8s ?)

Terraform does not have any way to get the actual state of null_resource resources. If, let's say, I accidentally delete cert-manager issuers in my cluster, without "nonce hack" Terraform will never re-apply them.

Yes, that's why I really dislike use of null_resources. I stil believe that running only on chart change in case of couchdb_finish_cluster is better than to run every time.


Use of rxJava without backpressure leads to excessive memory consumption

SSTableColumnScanner creates an observable that produces data as fast as it can read from disk.
In SSTableRecordReader, we convert this observable to an iterator, which internally buffers data in a LinkedBlockingQueue of unbounded size.
If for whatever reason the mapper falls behind (e.g. doing a spill and sort), then the blockingQueue can grow to unbounded size. I've (somewhat hackily) fixed this in https://github.com/coursera/aegisthus/commit/807a0f44604f575f86e2a3ebd9a271531e522cdb by using a custom conversion toIterator that makes use of a bounded blocking queue. It's not very in the spirit of RxJava, however, as the toIterator observer blocks the observable when the queue is full.

Again, good find @danchia Closing this as it was included in PR #39


text layernorm

Hi!
Why set gemma and beta on top of layernorm for text? Arent they in ln already?

@cliangyu hi Liangyu!
the gamma and beta are for the FiLM conditioning (adaptive layernorm + ada-ln zero) for the modality token conditioning, as in the diffusion transformers paper

@cliangyu i give the text a separate gamma


Pre-population not working for nested repeat groups within a repeat group

Describe the bug
Pre-population doesn't seem to work in nested repeat groups within a repeat group. From the code, there is no further recursion happening in the function. Therefore, it makes sense that the nested repeat group in the repeat group isn't pre-populated.

Expected behavior
The time and text items in the Note repeat group should be pre-populated.

Implemented further checking for items that require pre-population in constructRepeatGroupInstances().
It can only be triggered by having an associated child itemPopulationContext, i.e. RestrictivePracticeNoteRepeat.expression = %RestrictivePracticeRepeat.note, where RestrictivePracticeRepeat is an itemPopulationContext defined at the repeat group level.
https://smartforms.csiro.au/api/fhir/Questionnaire/AgedCareCMSFacade#L1323


Check user

checkUser in Header component that checks if clerkId exists in database. If it doesn't it will create a new User with clerkId

Please, make sure you have the latest main changes first. Now in main we are preventing the bun.lockb to be commited, so that file should not be part of the PR :)


mitmweb as a central transparent mode proxy

Steps to reproduce the problem:

Run some traffic through it for a day or so... it seems to happen much quicker when passing bigger files through it (like video streaming)
mitmweb uses up all available system memory and system starts swapping, I am even unable to ssh into it

Any other comments? What have you tried so far?
Is it possible to configure the mitmweb to avoid running out of memory so it can be run constantly as a central transparent mode proxy.
I would like to use it for debugging purposes and it would be shared by different people.
Since mitmweb seems to keep flows in the memory, is there an option to limit this memory and throw away oldest requests as the new ones come in?
System information

Mitmproxy: 3.0.3
Python:    3.5.5
OpenSSL:   OpenSSL 1.1.0g  2 Nov 2017
Platform:  Linux-3.10.0-693.21.1.el7.x86_64-x86_64-with-centos-7.4.1708-Core

Hi,
For this particular use case you can probably write your own scripts to remove old flows. We're planning to introduce proper disk-backed sessions, but that's a bit down the track.


Email request units

Implements #4400
Add units to confirmation emails, tested with unit test and locally.

Closing this one as we ended up branching and refactoring to #4421


Send pluralized wantBlock messages

Previously:
    discard await allFinished(
      wantCids.mapIt(b.sendWantBlock(it, peerCtx)))

This gives 1 wantBlock message per entry in wantCid blockAddress. But, message format supports multiple addresses.
New:
    await b.sendWantBlock(wantCids, peerCtx)

Todo, not in this PR: initial calls to send wantHave and wantBlock messages can be pluralized as well.

This passes dist-tests.


kor-input controlled component

<!-- event dispatched every time the value changes -->
<kor-input (value-changed)="myVar = $event.target.value"></kor-input>

I would like to have the ability to attach an @onChange || @change event to kor-input and turn it to a controlled input. The documentation states the component dispatches an event when a value is changed, but does not clarify how to access the changed value.
   <kor-input
    @change="${console.log("FOO")}"
     name="EntityInput"
     label="Entity Label"
     value=${this.value}
     no-clear
     condensed>

It seems attaching a change event listener and making a kor-input into a controlled input is not possible.

Hi @aoloo I am investigating ways to fire the standard change event but it doesn't seem to be straight forward, I will update you when I know better about it.
Currently the way to get a component change and value is by listening to the -changed events and getting the event target value. For example:
<!-- in LitElement -->
<kor-input
  @value-changed="${(e) => console.log(e.target.value)}"
></kor-input>

<!-- in Angular -->
<kor-input
  (value-changed)="myFunction($event.target.value)"
></kor-input>

@eduferfer  I will use your example as a work around thanks for keeping me in the loop.

Hi @aoloo , version 1.6.0 had just been released with change events on inputs, check boxes, radio buttons and toggles, therefore I will close this issue, I hope that is fine :)


Remove disabling USB SWI section

It removes disabling USB SWI section from telink start.S file.

Please change first line of commit message to:
soc: riscv: telink_b91: start.S: Remove USB SWI section
that's not clear which startup is modified there are bunch startup asm files in project.
Could you sent me ticket number with this request?
Because it seems starange actually that's revert of
3a2d8d71bf soc: riscv: telink_b91: Disable USB SWI
which was introduced about two month ago - Thu Dec 22 15:02:01 2022 +0200

Moved to another branch


dynamically insert  don't rendered as expected

I want to dynamically insert a <mat-checkbox> element into a component.
and I inserted two <mat-checkbox> elements. one inserted statically (i.e into the template file directly).
and the other one inserted dynamically, and contains a <mat-checkbox> and another normal checkbox <input type="checkbox" />
the first one (the statically inserted one) rendered without any problem.
also the normal input inserted dynamically without any problem.
but the <mat-checkbox> that dynamically inserted didn't render as expected.
component.html:
<mat-checkbox> checkbox (static) </mat-checkbox>

<div [innerHTML] = "test2">

component.ts:
 this.test= `
     <mat-checkbox>mat-checkbox</mat-checkbox><br />
     <input type="checkbox" /> normal checkbox
  `

  this.test2 = this.sanitizer.bypassSecurityTrustHtml(this.test);

I created a Reproduction on stackblitz:
https://stackblitz.com/edit/angular-hsjevo

Closing since Angular doesn't support inserting components through innerHTML.


403 error accessing private spreadsheet

Hi @bassarisse ,
I receive an Unhandled rejection Error: Error: HTTP error 403 (Forbidden) when downloading data from a private spreadsheet using the json credentials:
gsjson <private gid> data.json -s cred.json

I use the (new?) google service account to produce the credentials; Google Drive API and Google Sheets API are enabled. Is this 403 related to a missing scope? Or is it due to recent changes in the API? Or is it just an error/misconfiguration on my side?
Note that I am able to get the correct json data using gsjson with authtoken.
Thanks!

Sorry for the delay in responding =/
@danieleguido thanks for the follow-up!
@vahalla5 if you're still interested in resolving this, please open a new issue and detail your problem as much as possible, I'll gladly help in any way I can.


@PDF contains document name not id

The old syntax was @PDF[document name|page=10]{label}
So we need to find the old game.journal entry called "document name" and replace it with the uuid of the document.

Fixed in 0.5.0


Update secrets path

The path for decrypted secrets has changed upstream.

Ohh right thanks for updating that!


Update builder to fix macos arm64 CI

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

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 83.44%. Comparing base (f402355) to head (1268d14).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1137   +/-   ##
=======================================
  Coverage   83.44%   83.44%
=======================================
  Files          57       57
  Lines        5985     5985
=======================================
  Hits         4994     4994
  Misses        991      991

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Make currency sign a variable

Cool plugin, thank you guys!
For the moment, the cart show prices with a dollar sign, even if the shops currency is different (euro).
Would be super nice if you could provide an update here to just use the shops currency without adding a static dollar sign.
Thanks and cheers

Yes, that can be done, thanks for input, will do it todat and let you know

hey @christophberinger , i made a new option for currency! You can now update goCart to latest version and its done, and i also made changes to readme explaining how to use the option:
https://github.com/bornfight/goCart.js#moneybag-currency-options
Please let me know if everything is working, and is it simple enough for everyone?

Nice one @marioloncarek, works like a charm. Thanks bro! Closing this

No problem, thanks for feedback!


Attempting to pass in a query to a paginate function with proper types

Edit: Does something like the runPaginatedQuery wrapper function at the end of this post make more sense?
I'm playing around with turning something like the following into a function called e.g. paginateQuery. Essentially the idea being that you'd build up a query with whatever filters you want, pass it into the paginateQuery function, and get paginated data out of it.
Essentially everything under const queryBuilder = q('*').filter(filter); would be in its own function, so then I could re-use this for other queries.
I'm not exactly a TypeScript guru, so the biggest problem I'm running into is How would I write a function that accepts a groqd array query? (while also passing through the proper types of course). It appears that a lot of the types I may need are not exported from the groqd package.
I've played around with a few different ways to accomplish this and am a bit stuck.
If there's a simpler way to do this that I'm not thinking of, I'm all ears. Thank you in advance for any ideas you have!
// inside a `getPosts` function ...
let filter = '_type == "post"';

if (search) {
  params.search = search.toLowerCase();
  filter += ' && title match "*" + lower($search) + "*"';
}

if (slug) {
  params.slug = slug;
  filter += ' && category->slug.current == $slug';
}
const queryBuilder = q('*').filter(filter);

 // Ideally this one line replaces everything below
 // const paginatedQuery = paginateQuery(queryBuilder, pageIndex, pageSize)

const totalCountQuery = q(`count(${queryBuilder.query})`);

const result = await runQuery(
  q('').grab({
	  posts: queryBuilder
		  .order(`publishDate desc`)
		  .slice(pageIndex * PAGE_SIZE, pageIndex * PAGE_SIZE + PAGE_SIZE - 1)
		  .grab(POST_PREVIEW),
	  totalCount: totalCountQuery
  }),
  params
);

const posts = result.posts;
const totalCount = result.totalCount as number;

return createPaginationDto({
  items: posts,
  totalCount,
  page,
  pageSize: PAGE_SIZE
});

 // ... end `getPosts` function

// createPaginationDto func for reference
export function createPaginationDto<T>({
	items,
	totalCount,
	page,
	pageSize
}: {
	items: T[];
	totalCount: number;
	page: number;
	pageSize: number;
}): PaginationDto<T> {
	const totalPages = Math.ceil(totalCount / pageSize);
	return {
		items,
		page,
		pageSize,
		totalPages,
		totalCount,
		hasPrevious: page > 1,
		hasNext: page < totalPages,
		from: (page - 1) * pageSize + 1,
		to: (page - 1) * pageSize + items.length
	};
}

Edit: I also started going down the route of creating a new runQuery function but had to move on to something else for a bit. Testing quickly, it seems to work but obviously I'm losing my type safety.
export const runQuery = makeSafeQueryRunner((query, params: Record<string, unknown> = {}) =>
	sanityClient.fetch(query, params)
);

export const runPaginatedQuery = async (
	query: any,
	params: Record<string, unknown> = {},
	{ pageIndex, pageSize }: { pageIndex: number; pageSize: number }
) => {
	const totalCountQuery = q(`count(${query.query})`);
	const { items, totalCount } = await runQuery(
		q('').grab({
			items: query.slice(pageIndex * pageSize, pageIndex * pageSize + pageSize - 1),
			totalCount: totalCountQuery
		}),
		params
	);
	return createPaginationDto({
		items,
		totalCount: totalCount as number,
		page: pageIndex + 1,
		pageSize
	});
};

👋 hey @schwartzmj . There's a couple ways to do this. Either approach you have could work with a couple updates. It's hard to comment on which of the two might be better, because I think that's dependent on the broader architecture of your application.
As for this question:

How would I write a function that accepts a groqd array query?

You can extract out some helpful types for this through typescripts typeof operator. basically can do something like this:
// This isn't currently exposed through groqd,
// but you can extract it like this
const unknownArrayQuery = q('').filter('')
type UnknownArrayQuery = typeof unknownArrayQuery

In groqd's current state, we don't assign much of a type to anything until the .grab() call. So you can compose a function like this and avoid generics entirely while still getting proper types:
import { q, type InferType } from 'groqd'

const unknownArrayQuery = q('').filter('')
type UnknownArrayQuery = typeof unknownArrayQuery

function someQueryOperation(query: UnknownArrayQuery){
  return query.slice(0, 2).grab({
    foo: q.string(),
    bar: q.number()
  })
}

const someQuery = q('*').filterByType('post')
type SomeQuery = InferType<typeof someQuery>
// ^? unknown[]

const alteredQuery = someQueryOperation(someQuery)
type AlteredQuery = InferType<typeof alteredQuery>
// ^? { foo: string; bar: number }[]

I created a paginate() function in this arcade example that should hopefully mirror your initial solutions close enough to give you what you need to get goin.

@littlemilkstudio Thank you for taking the time to help!
Extracting types makes sense. The only issue I'm running into with the arcade example is that the "grab" and resulting type is hardcoded in the paginate function. I'd like to have a re-usable paginate function with a shape more like this:
type PaginationDto<T> = {
	items: T[];
	page: number;
	pageSize: number;
	totalPages: number;
	totalCount: number;
	hasPrevious: boolean;
	hasNext: boolean;
	from: number;
	to: number;
};

It seems like I need a generic like ArrayQuery<FromSelection>

@schwartzmj Ahh I see. yeaup, would something like this work?

@schwartzmj Ahh I see. yeaup, would something like this work?
import { q, type Selection } from "groqd";

const unknownArrayQuery = q('').filter('')
type UnknownArrayQuery = typeof unknownArrayQuery

function paginate<T extends Selection>(query: UnknownArrayQuery, selection: T, pageIndex: number, pageSize: number){
  return q('').grab({
    posts: query
      .grab(selection)
      .slice(pageIndex * pageSize, pageIndex * pageSize + pageSize - 1),

    totalCount: [`count(${query.query})`, q.number()]
  })
}

That might be it! I'll have to do a little refactoring but will test it out. Thank you!

Sounds good. I think there could be more resources/references around passing queries to functions & relevant types. I'll be sure to keep this example in mind. Thank you for posting!


Add Support for Windows

Unit tests fail for various reasons when run on Windows.
Also, I couldn't successfully transfer a file using the GUI.

[ ] Update unit tests for compatibility with Windows
[ ] Ensure files can be transferred using the GUI

From my testing on windows I found the following:

Files cannot be transferred using the GUI, Sending side will stay with the loading bar full and receiving will never receive anything
Through use of the debug commands, the following occurred:

The command  pydiode --debug receive <IP_ADDRESS> gave seemingly no errors (although this was without sending anything
The command pydiode --debug send <IP_ADDRESS> <IP_ADDRESS> returned the following:

DEBUG:root:chunk_max_packets=100
DEBUG:root:chunk_duration=0.0073728
DEBUG:root:PACKET_HEADER.size=5
DEBUG:root:MAX_PAYLOAD=9211
DEBUG:root:chunk_max_data_bytes=921100
ERROR:asyncio:Exception in callback _ProactorReadPipeTransport._loop_reading()
handle: <Handle _ProactorReadPipeTransport._loop_reading()>
Traceback (most recent call last):
  File "C:\Users\Patrick\AppData\Local\Programs\Python\Python312\Lib\asyncio\proactor_events.py", line 306, in _loop_reading
    self._read_fut = self._loop._proactor.recv_into(self._sock, self._data)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Patrick\AppData\Local\Programs\Python\Python312\Lib\asyncio\windows_events.py", line 483, in recv_into
    self._register_with_iocp(conn)
  File "C:\Users\Patrick\AppData\Local\Programs\Python\Python312\Lib\asyncio\windows_events.py", line 704, in _register_with_iocp
    _overlapped.CreateIoCompletionPort(obj.fileno(), self._iocp, 0, 0)
OSError: [WinError 6] The handle is invalid

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Patrick\AppData\Local\Programs\Python\Python312\Lib\asyncio\events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "C:\Users\Patrick\AppData\Local\Programs\Python\Python312\Lib\asyncio\proactor_events.py", line 316, in _loop_reading
    self._fatal_error(exc, 'Fatal read error on pipe transport')
  File "C:\Users\Patrick\AppData\Local\Programs\Python\Python312\Lib\asyncio\proactor_events.py", line 132, in _fatal_error
    self._force_close(exc)
  File "C:\Users\Patrick\AppData\Local\Programs\Python\Python312\Lib\asyncio\proactor_events.py", line 135, in _force_close
    if self._empty_waiter is not None and not self._empty_waiter.done():
       ^^^^^^^^^^^^^^^^^^
AttributeError: '_ProactorReadPipeTransport' object has no attribute '_empty_waiter'

When i looked into this a little more, it seems there are compatibility issues with the asyncio library
See asyncio documentation on compatibility
Additionally here is an old but seemingly related github ticket. Although they are not having the exact same issue as us, there are some people in this thread that seem much more knowledgeable than me about asyncio discussing its compatibility issues with windows. Note that this thread, despite still being open, is from 2016, and asyncio has likely changed a bit since then.
Despite it not working, it is also worth mentioning This stack overflow thread regarding someone getting the same winerror 6, although it is seemingly under different circumstances. I attempted the recommended fix of adding asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) before the two occurrences of loop = asyncio.get_event_loop() within send.py. this seemingly did nothing (although as I did not write the code its possible I may have misinterpreted where this line was supposed to go.)
I was unable to find anyone who had a solution/alternative for these issues (via a quick google search and some chatting with chatGPT), but I am also not super familiar with asyncio, so that doesn't necessarily mean they don't exist.

I did a little more digging into the asyncio documentation on event loops based on this particular section of the error ERROR:asyncio:Exception in callback _ProactorReadPipeTransport._loop_reading() handle: <Handle _ProactorReadPipeTransport._loop_reading()>.
It seems asyncio uses a completely different event loop implementation (by default) for windows and mac. Windows uses a Proactor event loop  that uses  I/O Completion Ports, while Unix uses the Selector Event loop based on the selector module.
It is worth noting that the selector event loop is compatible with BOTH Windows and Unix. except by default asyncio will use the proactor event loop on windows over the selector event loop.
The documentation also gives this snippet of code to manually configure the exact selector implementation to be used:
import asyncio
import selectors

class MyPolicy(asyncio.DefaultEventLoopPolicy):
   def new_event_loop(self):
      selector = selectors.SelectSelector()
      return asyncio.SelectorEventLoop(selector)

asyncio.set_event_loop_policy(MyPolicy())

The issue with selectors is that they have limited functionality on Windows:

Note The type of file objects supported depends on the platform: on Windows, sockets are supported, but not pipes, whereas on Unix, both are supported (some other types may be supported as well, such as fifos or special file devices).
https://docs.python.org/3/library/selectors.html#introduction

I think the error is triggered by the sender reading from STDIN:
https://github.com/ClarkuCSCI/pydiode/blob/0619a192455e939d2517ab15d55b921308c803d9/src/pydiode/send.py#L29-L62
So perhaps the solution is to add some extra code to AsyncReader to handle reading from STDIN on Windows. Of course, we should confirm that the issue is indeed caused by this part of the code. To test this, I recommend creating a simple test program based on AsyncReader. For example, you could try printing STDIN to STDOUT using AsyncReader, and see if you get the same error.

I don't know if you saw the edits for my previous note (I had not seen your reply and figured id just edit instead of making a new note). but it basically just confirmed what your note said.
I havent actually tested it yet with AsyncReader, but that seems like it is probably it (and seems much simpler than my idea of making a completely different file for windows users). I found this thread, which I know is coded in C but it seems that STDIN and IOCP do not like each other very much.
I will get back to you when I test this a little more thoroughly


String interpolation

i.e. rebasing https://github.com/dlang/dmd/pull/7988

A Language Change.
Is a SuperSet of what DMD supports.
Feature makes the fork more appealing.
Potential candidate during transitionary period.


Error: Symbol node_stringprep_module not found.

I followed the instructions for OS X:
brew install icu4c
ln -s /usr/local/Cellar/icu4c/51.1/include/unicode /usr/local/include
ln -s /usr/local/Cellar/icu4c/51.1/bin/icu-config /usr/local/bin/icu-config
npm install node-stringprep

But still I get the "Symbol node_stringprep_module not found" error as in issue #27. I have node v0.10.5.
(I also tried rebuilding node-stringprep after linking to icu4c/49.1.2 as I see there is some vague issue with recent versions?)

May I close this one?


build error on ubuntu20

Hello, I tried to compile the riscv toolchain of gcc12.2 on the Ubuntu20.04 system, and executed the relevant commands according to the instructions, but it seems that an error occurred, and no obvious error was found in the steps before prepare. When executing the build, an error that seems to be a permission problem occurred unexpectedly. I don’t know how to solve the following log output. I need your help, thank you
darren@~ $ git -C ~/Work/xpacks/riscv-none-elf-gcc-xpack.git pull && \
> xpm run install -C ~/Work/xpacks/riscv-none-elf-gcc-xpack.git && \
> git -C ~/Work/xpacks/xbb-helper-xpack.git pull && \
> xpm link -C ~/Work/xpacks/xbb-helper-xpack.git && \
> xpm run link-deps -C ~/Work/xpacks/riscv-none-elf-gcc-xpack.git && \
> xpm run deep-clean --config linux-x64 -C ~/Work/xpacks/riscv-none-elf-gcc-xpack.git && \
> xpm run docker-prepare --config linux-x64 -C ~/Work/xpacks/riscv-none-elf-gcc-xpack.git && \
> xpm run docker-link-deps --config linux-x64 -C ~/Work/xpacks/riscv-none-elf-gcc-xpack.git
Already up to date.
> npm install

up to date, audited 3 packages in 2s

1 package is looking for funding
  run `npm fund` for details

found 0 vulnerabilities
> xpm install
@xpack-dev-tools/riscv-none-elf-gcc...
+<EMAIL_ADDRESS>'xpacks/xpack-dev-tools-xbb-helper' -><EMAIL_ADDRESS>Already up to date.
@xpack-dev-tools/xbb-helper -> '/home/darren/Work/xpacks/xbb-helper-xpack.git'
> xpm link @xpack-dev-tools/xbb-helper
@xpack-dev-tools/xbb-helper -> '/home/darren/Work/xpacks/xbb-helper-xpack.git'
> rm -rf build/linux-x64
> rm -rf ${HOME}/Work/riscv-none-elf-gcc-[0-9]*-*/linux-x64
> mkdir -pv ${HOME}/.wine
> docker rm --force riscv-none-elf-gcc-12.2.0-3.1-linux-x64
Error: No such container: riscv-none-elf-gcc-12.2.0-3.1-linux-x64
> docker create --name riscv-none-elf-gcc-12.2.0-3.1-linux-x64 --tty --hostname docker --volume $(pwd):$(pwd) --volume ${HOME}/Work/xpacks/xbb-helper-xpack.git:${HOME}/Work/xpacks/xbb-helper-xpack.git --volume ${HOME}/.local/xPacks:${HOME}/.local/xPacks --volume ${HOME}/.cache/xPacks:${HOME}/.cache/xPacks --volume ${HOME}/Work/cache:${HOME}/Work/cache --volume ${HOME}/.wine:${HOME}/.wine --workdir $(pwd) ilegeul/ubuntu:amd64-18.04-xbb-v5.0.0
b05199aa65ad38046fbac7a6ab3aa96cc94ae3ba0826fbebd1de2e8566b5a10a
> docker start riscv-none-elf-gcc-12.2.0-3.1-linux-x64
riscv-none-elf-gcc-12.2.0-3.1-linux-x64
> docker exec riscv-none-elf-gcc-12.2.0-3.1-linux-x64 npm install --location=global xpm@latest

added 2 packages, and audited 492 packages in 38s

28 packages are looking for funding
  run `npm fund` for details

7 vulnerabilities (6 moderate, 1 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
npm notice
npm notice New major version of npm available! 8.19.2 -> 9.5.1
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.5.1>
npm notice Run `npm install -g<EMAIL_ADDRESS>to update!
npm notice
> docker exec riscv-none-elf-gcc-12.2.0-3.1-linux-x64 userdel node
> docker exec riscv-none-elf-gcc-12.2.0-3.1-linux-x64 groupadd --gid $(id -g) --force $(id -gn)
> docker exec riscv-none-elf-gcc-12.2.0-3.1-linux-x64 useradd --home-dir ${HOME} --uid $(id -u) --gid $(id -g) $(id -un)
> docker exec --user $(id -un) riscv-none-elf-gcc-12.2.0-3.1-linux-x64 bash -c 'lsb_release -sd && whoami && pwd && ls -lLA'
Ubuntu 18.04.6 LTS
darren
/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git
total 120
drwxrwxr-x 8 darren darren  4096 Feb 26 14:09 .git
drwxrwxr-x 3 darren darren  4096 Feb 26 13:41 .github
-rw-rw-r-- 1 darren darren  1732 Feb 26 13:41 .gitignore
-rw-rw-r-- 1 darren darren     0 Feb 26 13:41 .gitmodules
-rw-rw-r-- 1 darren darren   130 Feb 26 13:41 .npmignore
drwxrwxr-x 2 darren darren  4096 Feb 26 13:41 .vscode
-rw-rw-r-- 1 darren darren  7173 Feb 26 13:41 CHANGELOG.md
-rw-rw-r-- 1 darren darren  1070 Feb 26 13:41 LICENSE
-rw-rw-r-- 1 darren darren     4 Feb 26 13:41 README-DEVELOP.md
-rw-rw-r-- 1 darren darren 28267 Feb 26 13:41 README-MAINTAINER.md
-rw-rw-r-- 1 darren darren 10809 Feb 26 13:41 README.md
drwxrwxr-x 5 darren darren  4096 Feb 26 14:08 node_modules
-rw-rw-r-- 1 darren darren  1272 Feb 26 14:09 package-lock.json
-rw-rw-r-- 1 darren darren 17555 Feb 26 13:41 package.json
drwxrwxr-x 2 darren darren  4096 Feb 26 13:41 patches
drwxrwxr-x 4 darren darren  4096 Feb 26 13:41 scripts
drwxrwxr-x 3 darren darren  4096 Feb 26 13:41 tests
drwxrwxr-x 2 darren darren  4096 Feb 26 14:10 xpacks
> docker exec --user $(id -un) riscv-none-elf-gcc-12.2.0-3.1-linux-x64 xpm install
@xpack-dev-tools/riscv-none-elf-gcc...
+<EMAIL_ADDRESS>'xpacks/xpack-dev-tools-xbb-helper' -><EMAIL_ADDRESS>> docker exec --user $(id -un) riscv-none-elf-gcc-12.2.0-3.1-linux-x64 xpm install --config linux-x64
@xpack-dev-tools/riscv-none-elf-gcc --config linux-x64...
+<EMAIL_ADDRESS>+<EMAIL_ADDRESS>+<EMAIL_ADDRESS>+<EMAIL_ADDRESS>+<EMAIL_ADDRESS>+<EMAIL_ADDRESS>'xpacks/xpack-dev-tools-ninja-build' -><EMAIL_ADDRESS>'xpacks/xpack-dev-tools-pkg-config' -><EMAIL_ADDRESS>'xpacks/xpack-dev-tools-m4' -><EMAIL_ADDRESS>'xpacks/xpack-dev-tools-gcc' -><EMAIL_ADDRESS>'xpacks/xpack-dev-tools-cmake' -><EMAIL_ADDRESS>'xpacks/xpack-dev-tools-patchelf' -><EMAIL_ADDRESS>> docker exec --user $(id -un) riscv-none-elf-gcc-12.2.0-3.1-linux-x64 xpm link -C ${HOME}/Work/xpacks/xbb-helper-xpack.git
@xpack-dev-tools/xbb-helper -> '/home/darren/Work/xpacks/xbb-helper-xpack.git'
> docker exec --user $(id -un) riscv-none-elf-gcc-12.2.0-3.1-linux-x64 xpm run link-deps
> xpm link @xpack-dev-tools/xbb-helper
@xpack-dev-tools/xbb-helper -> '/home/darren/Work/xpacks/xbb-helper-xpack.git'

darren@~ $ xpm run docker-build-develop --config linux-x64 -C ~/Work/xpacks/riscv-none-elf-gcc-xpack.git
> docker exec --user $(id -un) riscv-none-elf-gcc-12.2.0-3.1-linux-x64 xpm run build-develop --config linux-x64
> bash  scripts/build.sh --target linux-x64 --build-folder build/linux-x64 --develop
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/zlib.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/gmp.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/mpfr.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/mpc.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/isl.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/libiconv.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/xz.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/zstd.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/binutils-cross.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/gcc-cross.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/newlib-cross.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/expat.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/gettext.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/gpm.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/ncurses.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/readline.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/bzip2.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/libffi.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/mpdecimal.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/sqlite.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/libxcrypt.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/openssl.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/python3.sh...
Including /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/dependencies/gdb-cross.sh...

The xPack GNU RISC-V Embedded GCC distribution build script

Script "scripts/build.sh" started at Sun Feb 26 14:11:12 UTC 2023

Running on Ubuntu x64 (64-bit)...
Linux docker 5.15.0-58-generic #64~20.04.1-Ubuntu SMP Fri Jan 6 16:42:31 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

[xbb_save_env ]

[xbb_set_requested ]

[xbb_reset_env ]

[/usr/bin/install -d -m 0755 /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/install/bin]

[/usr/bin/install -v -c -m 755 /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/extras/pkg-config-verbose /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/install/bin]
'/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/extras/pkg-config-verbose' -> '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/install/bin/pkg-config-verbose'

Copying build files...
'scripts/VERSION' -> '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/application/distro-info/scripts/VERSION'
'scripts/versioning.sh' -> '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/application/distro-info/scripts/versioning.sh'
'scripts/application.sh' -> '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/application/distro-info/scripts/application.sh'
'scripts/templates/body-jekyll-release-post-part-2-liquid.md' -> '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/application/distro-info/scripts/templates/body-jekyll-release-post-part-2-liquid.md'
'scripts/templates/body-jekyll-release-post-part-1-liquid.md' -> '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/application/distro-info/scripts/templates/body-jekyll-release-post-part-1-liquid.md'
'scripts/templates/body-github-release-liquid.md' -> '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/application/distro-info/scripts/templates/body-github-release-liquid.md'
'scripts/test.sh' -> '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/application/distro-info/scripts/test.sh'
'scripts/README-OUT.md' -> '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/application/distro-info/scripts/README-OUT.md'
'scripts/build.sh' -> '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/application/distro-info/scripts/build.sh'
'scripts/tests/run.sh' -> '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/application/distro-info/scripts/tests/run.sh'
'patches/README.md' -> '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/application/distro-info/patches/README.md'

[/usr/bin/install -v -c -m 644 CHANGELOG.md /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/application/distro-info]
'CHANGELOG.md' -> '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/application/distro-info/CHANGELOG.md'
mkdir: created directory '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/tests'

[xbb_set_target native]

[xbb_set_executables_install_path /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/install]
XBB_EXECUTABLES_INSTALL_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/install

[xbb_set_libraries_install_path /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/install]
XBB_LIBRARIES_INSTALL_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/install

[xbb_prepare_gcc_env ]
CC=/usr/bin/gcc
CXX=/usr/bin/g++

ADDR2LINE=/usr/bin/addr2line
AR=/usr/bin/ar
AS=/usr/bin/as
DLLTOOL=
LD=/usr/bin/ld
NM=/usr/bin/nm
OBJCOPY=/usr/bin/objcopy
OBJDUMP=/usr/bin/objdump
RANLIB=/usr/bin/ranlib
READELF=/usr/bin/readelf
SIZE=/usr/bin/size
STRIP=/usr/bin/strip
WINDRES=
WINDMC=
RC=

XBB_CPPFLAGS=
XBB_CFLAGS=-ffunction-sections -fdata-sections -pipe -O2
XBB_CXXFLAGS=-ffunction-sections -fdata-sections -pipe -O2
XBB_LDFLAGS_LIB= -O2 -v
XBB_LDFLAGS_APP= -O2 -v -Wl,--gc-sections
XBB_LDFLAGS_APP_STATIC_GCC= -O2 -v -Wl,--gc-sections -static-libgcc -static-libstdc++

[xbb_set_extra_build_env]
XBB_BUILD_STRIP=/usr/bin/strip
XBB_BUILD_RANLIB=/usr/bin/ranlib
XBB_BUILD_OBJDUMP=/usr/bin/objdump

[xbb_set_extra_host_env ]
XBB_HOST_STRIP=/usr/bin/strip
XBB_HOST_RANLIB=/usr/bin/ranlib
XBB_HOST_OBJDUMP=/usr/bin/objdump

[xbb_set_extra_target_env ]
XBB_TARGET_STRIP=/usr/bin/strip
XBB_TARGET_RANLIB=/usr/bin/ranlib
XBB_TARGET_OBJDUMP=/usr/bin/objdump
XBB_CURRENT_TRIPLET=

# The XBB environment...

pwd: /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git

ADDR2LINE=/usr/bin/addr2line
AR=/usr/bin/ar
AS=/usr/bin/as
CC=/usr/bin/gcc
CI=false
CONFIG_SHELL=/bin/bash
CXX=/usr/bin/g++
FORCE_UNSAFE_CONFIGURE=1
HOME=/home/darren
HOSTNAME=docker
HTTPS_PROXY=http://<IP_ADDRESS>:7890
HTTP_PROXY=http://<IP_ADDRESS>:7890
INSTALL=/usr/bin/install
LANG=C
LD=/usr/bin/ld
LD_LIBRARY_PATH=
M4=/usr/bin/m4
NM=/usr/bin/nm
NODE_ENV=production
NODE_VERSION=16.18.0
NO_PROXY=localhost,<IP_ADDRESS>
OBJCOPY=/usr/bin/objcopy
OBJDUMP=/usr/bin/objdump
PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/xpacks/.bin:/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PKG_CONFIG=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/install/bin/pkg-config-verbose
PKG_CONFIG_LIBDIR=
PKG_CONFIG_PATH=
PWD=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git
PYTHON=/usr/bin/python
RANLIB=/usr/bin/ranlib
READELF=/usr/bin/readelf
REALPATH=/usr/bin/realpath
SED=/bin/sed
SHELL=/bin/bash
SHLVL=1
SIZE=/usr/bin/size
STRIP=/usr/bin/strip
TZ=UTC
XBB_APPLICATION_INSTALL_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/application
XBB_ARCHIVE_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/archive
XBB_BOOTSTRAP_SUFFIX=-bootstrap
XBB_BUILD_ARCH=x64
XBB_BUILD_BITS=64
XBB_BUILD_DISTRO_LOWER_CASE_NAME=ubuntu
XBB_BUILD_DISTRO_NAME=Ubuntu
XBB_BUILD_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/build
XBB_BUILD_GIT_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git
XBB_BUILD_MACHINE=x86_64
XBB_BUILD_OBJDUMP=/usr/bin/objdump
XBB_BUILD_PLATFORM=linux
XBB_BUILD_RANLIB=/usr/bin/ranlib
XBB_BUILD_STRIP=/usr/bin/strip
XBB_BUILD_TRIPLET=x86_64-pc-linux-gnu
XBB_BUILD_UNAME=Linux
XBB_CFLAGS=-ffunction-sections -fdata-sections -pipe -O2
XBB_CFLAGS_NO_W=-ffunction-sections -fdata-sections -pipe -O2 -w
XBB_CPPFLAGS=
XBB_CURRENT_TRIPLET=
XBB_CXXFLAGS=-ffunction-sections -fdata-sections -pipe -O2
XBB_CXXFLAGS_NO_W=-ffunction-sections -fdata-sections -pipe -O2 -w
XBB_DASH_V=-v
XBB_DEPENDENCIES_INSTALL_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/install
XBB_DEPLOY_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/deploy
XBB_DISTRO_INFO_NAME=distro-info
XBB_DOWNLOAD_FOLDER_PATH=/home/darren/Work/cache
XBB_EXECUTABLES_INSTALL_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/install
XBB_HOST_ARCH=x64
XBB_HOST_BITS=64
XBB_HOST_DOT_EXE=
XBB_HOST_MACHINE=x86_64
XBB_HOST_OBJDUMP=/usr/bin/objdump
XBB_HOST_PLATFORM=linux
XBB_HOST_RANLIB=/usr/bin/ranlib
XBB_HOST_SHLIB_EXT=so
XBB_HOST_STRIP=/usr/bin/strip
XBB_HOST_TRIPLET=x86_64-pc-linux-gnu
XBB_IS_DEBUG=n
XBB_IS_DEVELOP=y
XBB_LDFLAGS= -O2 -v
XBB_LDFLAGS_APP= -O2 -v -Wl,--gc-sections
XBB_LDFLAGS_APP_STATIC_GCC= -O2 -v -Wl,--gc-sections -static-libgcc -static-libstdc++
XBB_LDFLAGS_LIB= -O2 -v
XBB_LIBRARIES_INSTALL_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/install
XBB_LIBRARY_PATH=
XBB_LOGS_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/logs
XBB_NATIVE_DEPENDENCIES_INSTALL_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/install
XBB_REQUESTED_BUILD_RELATIVE_FOLDER=build/linux-x64
XBB_REQUESTED_HOST_ARCH=x64
XBB_REQUESTED_HOST_BITS=64
XBB_REQUESTED_HOST_MACHINE=x86_64
XBB_REQUESTED_HOST_PLATFORM=linux
XBB_REQUESTED_HOST_TRIPLET=x86_64-pc-linux-gnu
XBB_REQUESTED_TARGET_ARCH=x64
XBB_REQUESTED_TARGET_BITS=64
XBB_REQUESTED_TARGET_MACHINE=x86_64
XBB_REQUESTED_TARGET_PLATFORM=linux
XBB_REQUESTED_TARGET_TRIPLET=x86_64-pc-linux-gnu
XBB_REQUEST_TARGET_BE_WINDOWS=n
XBB_SAVED_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/xpacks/.bin:/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
XBB_SCRIPT_BEGIN_SECOND=1677420672
XBB_SOURCES_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/sources
XBB_STAMPS_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/stamps
XBB_TARGET_ARCH=x64
XBB_TARGET_BITS=64
XBB_TARGET_DOT_EXE=
XBB_TARGET_MACHINE=x86_64
XBB_TARGET_OBJDUMP=/usr/bin/objdump
XBB_TARGET_PLATFORM=linux
XBB_TARGET_RANLIB=/usr/bin/ranlib
XBB_TARGET_SHLIB_EXT=so
XBB_TARGET_STRIP=/usr/bin/strip
XBB_TARGET_TRIPLET=x86_64-pc-linux-gnu
XBB_TARGET_WORK_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64
XBB_TESTS_FOLDER_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/tests
XBB_TEST_COMMANDS_FILE_PATH=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/tests/commands
XBB_TEST_ONLY=n
XBB_WHILE_RUNNING_TESTS=n
XBB_WITHOUT_MULTILIB=n
XBB_WITH_HTML=n
XBB_WITH_PDF=n
XBB_WITH_STRIP=y
XBB_WITH_TESTS=n
YARN_VERSION=1.22.19
_=/usr/bin/env
no_proxy=localhost,<IP_ADDRESS>
mkdir: created directory '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/logs'

/usr/bin/g++
g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

/bin/bash
GNU bash, version 4.4.20(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

/usr/bin/curl
curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL

/usr/bin/flex
flex 2.6.4

/usr/bin/git
git version 2.17.1

/usr/bin/m4
m4 (GNU M4) 1.4.18
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Rene' Seindal.

/usr/bin/make
GNU Make 4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

/usr/bin/perl

This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-linux-gnu-thread-multi
(with 78 registered patches, see perl -V for more detail)

Copyright 1987-2017, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

/usr/bin/python
Python 2.7.17

/usr/bin/python3
Python 3.6.9

/bin/tar
tar (GNU tar) 1.29
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.

/usr/bin/zip
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
Currently maintained by E. Gordon.  Please send bug reports to
the authors using the web page at www.info-zip.org; see README for details.

Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip,
as of above date; see http://www.info-zip.org/ for other sites.

Compiled with gcc 6.3.0 20170415 for Unix (Linux ELF).

Zip special compilation options:
        USE_EF_UT_TIME       (store Universal Time)
        BZIP2_SUPPORT        (bzip2 library version 1.0.6, 6-Sept-2010)
            bzip2 code and library copyright (c) Julian R Seward
            (See the bzip2 license for terms of use)
        SYMLINK_SUPPORT      (symbolic links supported)
        LARGE_FILE_SUPPORT   (can read and write large files on file system)
        ZIP64_SUPPORT        (use Zip64 to store large files in archives)
        UNICODE_SUPPORT      (store and read UTF-8 Unicode paths)
        STORE_UNIX_UIDs_GIDs (store UID/GID sizes/values using new extra field)
        UIDGID_NOT_16BIT     (old Unix 16-bit UID/GID extra field not used)
        [encryption, version 2.91 of 05 Jan 2007] (modified for Zip 3)

Encryption notice:
        The encryption code of this program is not copyrighted and is
        put in the public domain.  It was originally written in Europe
        and, to the best of our knowledge, can be freely distributed
        in both source and object forms from any country, including
        the USA under License Exception TSU of the U.S. Export
        Administration Regulations (section 740.13(e)) of 6 June 2002.

Zip environment options:
             ZIP:  [none]
          ZIPOPT:  [none]

/usr/bin/yacc
bison (GNU Bison) 3.0.4
Written by Robert Corbett and Richard Stallman.

Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Here we go...

mkdir: created directory '/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/sources'

Downloading "gcc-12.2.0.tar.xz" from "https://ftp.gnu.org/gnu/gcc/gcc-12.2.0/gcc-12.2.0.tar.xz"...

[curl --insecure --fail --location --output /home/darren/Work/cache/gcc-12.2.0.tar.xz.download https://ftp.gnu.org/gnu/gcc/gcc-12.2.0/gcc-12.2.0.tar.xz]
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:04 --:--:--     0Warning: Failed to create the file
Warning: /home/darren/Work/cache/gcc-12.2.0.tar.xz.download: Permission denied
  0 80.7M    0 16384    0     0   3239      0  7:15:33  0:00:05  7:15:28  4248
curl: (23) Failed writing body (0 != 16384)

Make the build folder writable by all...

[chmod -R a+w /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build]

Make the xpacks folder writable by all...

[chmod a+w /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks]
error: running 'bash  scripts/build.sh --target linux-x64 --build-folder build/linux-x64 --develop' failed
error: running 'docker exec --user $(id -un) riscv-none-elf-gcc-12.2.0-3.1-linux-x64 xpm run build-develop --config linux-x64' failed
darren@~ $

It looks like a problem with the /home/darren/Work/cache folder.
Could you rename or remove it and retry?

Thanks, I checked the following cache directory and found that it is actually under the root user group. It should be that a wrong command was executed during the prepare phase, resulting in a user group assignment error. I have changed the cache user group and is compiling. If there is no related Error, I will close this issue.

ops, It made an error again. This time, cmake could not be found. I checked that my host machine has cmake. Is the docker image not installed?
Running zstd cmake...

[cmake -LAH -G Ninja -DCMAKE_INSTALL_PREFIX=/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/x86_64-pc-linux-gnu/install -DZSTD_BUILD_CONTRIB=ON -DZSTD_BUILD_CONTRIB=OFF -DZSTD_BUILD_PROGRAMS=OFF -DZSTD_BUILD_STATIC=ON -DZSTD_LEGACY_SUPPORT=ON -DZSTD_ZLIB_SUPPORT=ON -DZSTD_LZMA_SUPPORT=ON -DZSTD_PROGRAMS_LINK_SHARED=ON /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build/linux-x64/sources/zstd-1.5.2/build/cmake]
/home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks/xpack-dev-tools-xbb-helper/scripts/wrappers.sh: line 34: cmake: command not found

Make the build folder writable by all...

[chmod -R a+w /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/build]

Make the xpacks folder writable by all...

[chmod a+w /home/darren/Work/xpacks/riscv-none-elf-gcc-xpack.git/xpacks]
error: running 'bash  scripts/build.sh --target linux-x64 --build-folder build/linux-x64 --develop' failed
error: running 'docker exec --user $(id -un) riscv-none-elf-gcc-12.2.0-3.1-linux-x64 xpm run build-develop --config linux-x64' failed
darren@~/Work $ cmake --version
cmake version 3.16.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).

You are either using an older xpm, or invoking the build with the wrong command, since cmake was installed by xpm in the docker image (as per your listing above).

I have checked the xpm verison is 0.14.9. The reason should be that my network conditions are too poor and I have not downloaded all dependencies. Is there a way to manually download dependencies?
> docker exec --user $(id -un) riscv-none-elf-gcc-12.2.0-3.1-linux-x64 xpm install
@xpack-dev-tools/riscv-none-elf-gcc...
+<EMAIL_ADDRESS>'xpacks/xpack-dev-tools-xbb-helper' -><EMAIL_ADDRESS>> docker exec --user $(id -un) riscv-none-elf-gcc-12.2.0-3.1-linux-x64 xpm install --config linux-x64
@xpack-dev-tools/riscv-none-elf-gcc --config linux-x64...
+<EMAIL_ADDRESS>+<EMAIL_ADDRESS>+<EMAIL_ADDRESS>+<EMAIL_ADDRESS>+<EMAIL_ADDRESS>+<EMAIL_ADDRESS><EMAIL_ADDRESS>=><EMAIL_ADDRESS><EMAIL_ADDRESS>=><EMAIL_ADDRESS><EMAIL_ADDRESS>=><EMAIL_ADDRESS><EMAIL_ADDRESS>=><EMAIL_ADDRESS><EMAIL_ADDRESS>=><EMAIL_ADDRESS><EMAIL_ADDRESS>=><EMAIL_ADDRESS>Downloading https://github.com/xpack-dev-tools/pkg-config-xpack/releases/download/v0.29.2-2/xpack-pkg-config-0.29.2-2-linux-x64.tar.gz...
Downloading https://github.com/xpack-dev-tools/cmake-xpack/releases/download/v3.23.5-1/xpack-cmake-3.23.5-1-linux-x64.tar.gz...
Downloading https://github.com/xpack-dev-tools/m4-xpack/releases/download/v1.4.19-2/xpack-m4-1.4.19-2-linux-x64.tar.gz...
Downloading https://github.com/xpack-dev-tools/patchelf-xpack/releases/download/v0.17.2-1/xpack-patchelf-0.17.2-1-linux-x64.tar.gz...
Downloading https://github.com/xpack-dev-tools/gcc-xpack/releases/download/v12.2.0-2/xpack-gcc-12.2.0-2-linux-x64.tar.gz...
Downloading https://github.com/xpack-dev-tools/ninja-build-xpack/releases/download/v1.11.1-2/xpack-ninja-build-1.11.1-2-linux-x64.tar.gz...
request to https://github.com/xpack-dev-tools/cmake-xpack/releases/download/v3.23.5-1/xpack-cmake-3.23.5-1-linux-x64.tar.gz failed, reason: read ECONNRESET in fetch https://github.com/xpack-dev-tools/cmake-xpack/releases/download/v3.23.5-1/xpack-cmake-3.23.5-1-linux-x64.tar.gz
error: download failed, quit
error: running 'docker exec --user $(id -un) riscv-none-elf-gcc-12.2.0-3.1-linux-x64 xpm install --config linux-x64' failed

my network conditions are too poor and I have not downloaded all dependencies.

That's unfortunate, but, with some patience, can be overcome, since the build process uses caches, and once the archives downloaded, are used without any download.

Is there a way to manually download dependencies?

Yes, remove the dependency folder in ~/.local/xPacks and issue xpm install --global <dependency> until it succeeds. This downloads the dependency into the cache and extracts it in the central store, without creating links to the project.
Later, when the project tries to install the dependency, it should be already there.
For the archives required during the build, as you noticed, the files are downloaded into ~/Work/cache. If the download fails, restart the script until the download succeeds.

I found a problem. I have set up the system proxy (http_proxy https_proxy), and wget can access the proxy normally, but xpm does not use the system proxy. Is this the design or is there a mistake in my settings?
darren@darren-virtual-machine:~$ xpm install --global<EMAIL_ADDRESS>--force
<EMAIL_ADDRESS><EMAIL_ADDRESS>=><EMAIL_ADDRESS>Downloading https://github.com/xpack-dev-tools/gcc-xpack/releases/download/v12.2.0-2/xpack-gcc-12.2.0-2-linux-x64.tar.gz...
request to https://github.com/xpack-dev-tools/gcc-xpack/releases/download/v12.2.0-2/xpack-gcc-12.2.0-2-linux-x64.tar.gz failed, reason: read ECONNRESET in fetch https://github.com/xpack-dev-tools/gcc-xpack/releases/download/v12.2.0-2/xpack-gcc-12.2.0-2-linux-x64.tar.gz
error: download failed, quit
darren@darren-virtual-machine:~$ wget https://github.com/xpack-dev-tools/gcc-xpack/releases/download/v12.2.0-2/xpack-gcc-12.2.0-2-linux-x64.tar.gz
--2023-02-27 12:43:02--  https://github.com/xpack-dev-tools/gcc-xpack/releases/download/v12.2.0-2/xpack-gcc-12.2.0-2-linux-x64.tar.gz
Connecting to <IP_ADDRESS>:7890... connected.
Proxy request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/256410491/0ad10e2d-e752-4c2f-a44d-91bcdc16b99b?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230227%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230227T044303Z&X-Amz-Expires=300&X-Amz-Signature=04ab952870f2ed843fc06b6993707444c3c40fa4eb7a923577ac3bc998f7f72d&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=256410491&response-content-disposition=attachment%3B%20filename%3Dxpack-gcc-12.2.0-2-linux-x64.tar.gz&response-content-type=application%2Foctet-stream [following]
--2023-02-27 12:43:03--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/256410491/0ad10e2d-e752-4c2f-a44d-91bcdc16b99b?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230227%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230227T044303Z&X-Amz-Expires=300&X-Amz-Signature=04ab952870f2ed843fc06b6993707444c3c40fa4eb7a923577ac3bc998f7f72d&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=256410491&response-content-disposition=attachment%3B%20filename%3Dxpack-gcc-12.2.0-2-linux-x64.tar.gz&response-content-type=application%2Foctet-stream
Connecting to <IP_ADDRESS>:7890... connected.
Proxy request sent, awaiting response... 200 OK
Length: 137017840 (131M) [application/octet-stream]
Saving to: ‘xpack-gcc-12.2.0-2-linux-x64.tar.gz.2’

xpack-gcc-12.2.0-2-linux-x64.tar.gz.2   100%[=============================================================================>] 130.67M  21.0MB/s    in 9.2s

2023-02-27 12:43:15 (14.3 MB/s) - ‘xpack-gcc-12.2.0-2-linux-x64.tar.gz.2’ saved [137017840/137017840]

Ah, sorry, I did not have the time to investigate how to download the archives using a proxy in xpm. :-(
For downloads I use node-fetch, which is a classical, but does not mention anything about proxies.
Personally I never used a proxy, and have no experience with such configurations. Could you provide more details about your configuration, how did you make it work in wget, and what would be a possible solution for xpm?
To be noted that in xpm there are two separate downloads, the first is the npm package itself, downloaded from npmjs.com, which seems to pass through your proxy, and then the binary archive, which fails.

I temporarily solved the problem by putting the proxy into the router and it compiled successfully.
For the problem of proxy settings, the following command was executed
export http_proxy=http://<IP_ADDRESS>:7890
export https_proxy=http://<IP_ADDRESS>:7890

I'm not familiar with JavaScript, but I found node-fetch proxy method. Like this.
fetch(url, {
    method: 'GET',
    agent: new HttpProxyAgent("http://" + ip + ":" + port)
})

I wrote a piece of pseudocode showing my approach.
void test(String url)
{
    String proxy_string = get_environment("http_proxy");
    if (len(proxy_string) > 0)
    {
        fetch(url, {method: 'GET', agent: new HttpProxyAgent(proxy_string)})
    }
    else
    {
        fetch(url)
    }
}

I found an old issue that was closed prematurely by the author:

https://github.com/xpack/xpm-js/issues/80#issuecomment-773776574

I re-opened it, and will try to fix it in the next xpm release.

That's greate! Thanks.

I did not set a proxy for npm, but directly switched to a domestic mirror source.

Since in your initial run, getting the npm package was functional, and only getting the binary archive failed, there must be a proxy setting somewhere, either in the npm configuration files or in the environment.

do you have any npm configuration for the proxy? (npm config ls -l | grep -i proxy)
do you have any environment variables with the proxy definitions? (env | grep -i proxy)

do you have any npm configuration for the proxy? (npm config ls -l | grep -i proxy)
darren@darren-virtual-machine:~/Desktop$ npm config ls -l | grep -i proxy
https-proxy = null
noproxy = [""]
proxy = null

Although I have not set up the npm proxy, but xpm can check this part. For users who only set up the npm proxy, the relationship between the npm proxy and the global proxy should be or.
do you have any environment variables with the proxy definitions? (env | grep -i proxy)
darren@darren-virtual-machine:~/Desktop$ env | grep -i proxy
no_proxy=localhost,<IP_ADDRESS>/8,::1
https_proxy=http://<IP_ADDRESS>:7890/
NO_PROXY=localhost,<IP_ADDRESS>/8,::1
HTTPS_PROXY=http://<IP_ADDRESS>:7890/
HTTP_PROXY=http://<IP_ADDRESS>:7890/
http_proxy=http://<IP_ADDRESS>:7890/
ALL_PROXY=socks://<IP_ADDRESS>:7890/
all_proxy=socks://<IP_ADDRESS>:7890/

The capitalization problem here is due to the settings of Ubuntu desktop. In fact, you only need to care about the lowercase part (http_proxy https_proxy), because the command line version system settings only need lowercase.

Ok, there are no npm configs related to the proxy, and there are several environment variables.
As for the upper/lower case, I have to further investigate, but the general rule is that environment variables use only upper case letters. I have no idea why in your environment both upper and lower case names are defined.
Can you check which files define those proxy environment variables? Are both upper and lower cases definitions in the same file or in different files (all lower case in on file and all upper case in another file)

The Ubuntu desktop version uses gsetting to set the proxy. But I don't know where they are in the file system.
darren@darren-virtual-machine:~$ gsettings list-schemas | grep proxy
org.gnome.system.proxy
org.gnome.system.proxy.ftp
org.gnome.system.proxy.http
org.gnome.system.proxy.https
org.gnome.system.proxy.socks
darren@darren-virtual-machine:~$ gsettings get org.gnome.system.proxy.http host
'<IP_ADDRESS>'
darren@darren-virtual-machine:~$ gsettings get org.gnome.system.proxy.http port
7890

But the common solution is to edit ~/.bashrc and add the following statement. Then source ~/.bashrc.
export http_proxy=http://<IP_ADDRESS>:7890
export https_proxy=http://<IP_ADDRESS>:7890


Missing 1.69 jars in Maven Central

I might be missing something but there seems to be a number of jars missing from the 1.69 release in Maven Central.
Looking at: https://www.bouncycastle.org/latest_releases.html, it mentions the addition of new bcutil-* jars but makes no mention of any jars being removed.
Right now, I can see the following 1.69 jars published in Maven Central (13 jars total):

org.bouncycastle:bctls-jdk15to18:1.69:jar
org.bouncycastle:bcpkix-jdk15to18:1.69:jar
org.bouncycastle:bcpg-jdk15to18:1.69:jar
org.bouncycastle:bcutil-jdk15to18:1.69:jar
org.bouncycastle:bcprov-jdk15to18:1.69:jar
org.bouncycastle:bcpg-jdk15on:1.69:jar
org.bouncycastle:bcutil-jdk15on:1.69:jar
org.bouncycastle:bcpkix-jdk15on:1.69:jar
org.bouncycastle:bcmail-jdk15on:1.69:jar
org.bouncycastle:bcjmail-jdk15on:1.69:jar
org.bouncycastle:bcprov-ext-jdk15on:1.69:jar
org.bouncycastle:bctls-jdk15on:1.69:jar
org.bouncycastle:bcprov-jdk15on:1.69:jar

However these 1.68 jars are available but don't have a 1.69 equivalent (14 jars total):

org.bouncycastle:bctls-jdk14:1.68:jar
org.bouncycastle:bcprov-jdk14:1.68:jar
org.bouncycastle:bcprov-ext-jdk14:1.68:jar
org.bouncycastle:bcprov-ext-debug-jdk14:1.68:jar
org.bouncycastle:bcprov-debug-jdk14:1.68:jar
org.bouncycastle:bcpkix-jdk14:1.68:jar
org.bouncycastle:bcpg-jdk14:1.68:jar
org.bouncycastle:bcmail-jdk14:1.68:jar
org.bouncycastle:bcprov-ext-jdk15to18:1.68:jar
org.bouncycastle:bcprov-ext-debug-jdk15to18:1.68:jar
org.bouncycastle:bcprov-debug-jdk15to18:1.68:jar
org.bouncycastle:bcmail-jdk15to18:1.68:jar
org.bouncycastle:bcprov-ext-debug-jdk15on:1.68:jar
org.bouncycastle:bcprov-debug-jdk15on:1.68:jar

Is this expected?

Working on it... publishing is actually a manual process.

I just seen that most files are published now but bcmail-jdk15to18 is still missing version 1.69.

There's always one... bcmail-jdk15to18 and bcjmail-jdk15to18 (the jakarta S/MIME jar) should both be up now.


Using Sets on filter causes getMarksAsync error

Using Sets on filters causes getMarksAsync error
Version information:

Tableau version: Tableau Desktop 2021.1.2
OS: Windows10
Extension API version: 1.5.0 and 1.8.1

Steps to reproduce:

Create a worksheet with one Set

Select the option "Show members in Set"

Create a Dashboard using this Worksheet

Register an Event Listener for MarkSelectionChanged

Select any mark

You should see the following error on Log

@BrunoMNDantas - We were not able to duplicate this with extensions v1.8 and Tableau 2021.1.12. Would it be possible to share your workbook with us?
Thank you,
John

Hi John, thanks for you response.
Here you have an workbook reproducing the problem.
You can find on Workbook the set configured and on Dashboard I've mounted an example in wich I have my extension listening MarkSelection events and calling getMarksAsync.
The credentials for the extension are: user1/password
After login, if you select any mark on dashboard you will have the error printed on console.

@BrunoMNDantas - We were not able to duplicate this with extensions v1.8 and Tableau 2021.1.12. Would it be possible to share your workbook with us? Thank you, John
Superstore.zip

@BrunoMNDantas
I have good news and bad news.
First the good: With your workbook, we can duplicate the issue.
The bad: There is a defect in our handling of the selection that will require a maintenance version of Tableau.
However, the issue is not in the filter, but in the set on the detail. If you can avoid that, everything works correctly. Meanwhile, we will get this fixed so that there isn't this restriction.
Can you avoid the set on the details. I'm guessing that your extension is meant for any workbook, so that isn't a long term solution.
Thanks for bringing this to our attention.
John

@BrunoMNDantas I have good news and bad news. First the good: With your workbook, we can duplicate the issue. The bad: There is a defect in our handling of the selection that will require a maintenance version of Tableau.
However, the issue is not in the filter, but in the set on the detail. If you can avoid that, everything works correctly. Meanwhile, we will get this fixed so that there isn't this restriction.
Can you avoid the set on the details. I'm guessing that your extension is meant for any workbook, so that isn't a long term solution.
Thanks for bringing this to our attention. John

Thanks for your help.
I will keep an eye on updates :thumbsup:


2024-10-15_01-35-19_master-next_aws-sdk-cpp

Automatically created.

Successfully created backport PR for kirkstone-next:

#9954

Successfully created backport PR for scarthgap-next:

#9955

Successfully created backport PR for styhead-next:

#9956


Safe upgrades: Add healthcheck function and call it when upgrading a contract

Checking that an upgrade is correct and is compatible with the currently deployed governance state. This will check that for example AMM contract is being upgraded with an AMM contract and not by a token contract.
Generic governance upgrades are inherently risky, because it’s an upgrade of the contract itself. Before application of a passed generic proposal, a test will be run that library calls a health check function on the governance (or core protocol, governance token,...) contract to ensure that it’s truly a contract of the same type (of version higher than current to ensure no incompatibilities).

Aug 1st - wrote a check_if_healthy function and am currently testing it. Not fully functioning but fix should be easy.
Also side note, I'm using the old staking curve and functions to test because the old staking curve functions were used in proposals and its easier to test this way.

Only issue at the moment is figuring out how to call check_if_healthy on the separate testing file. I am not sure that the tests are correctly calling it, but I've tested with hard coding and it works.

Checks are working correctly, I'm just having some weird contract deployment error iff it returns false. (Requested contract address ContractAddress(PatriciaKey(StarkFelt("0x0000000000000000000000000000000000000000000000000000000000000000"))) is not deployed.)

Can you open a pull request?


[path_provider] PathProviderPlugin.java uses unchecked or unsafe operations.

When I compile the app I get this warning:
Note: /Users/username/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.6/android/src/main/java/io/flutter/plugins/pathprovider/PathProviderPlugin.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.
Steps to Reproduce

flutter clean
flutter pub get
flutter run

I am using path_provider: ^2.0.6, I would like to know if this issue can be resolved and if it could cause problems in the future.
Flutter Doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.5.3, on macOS 11.5 20G71 darwin-x64, locale it-IT)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 2020.3)
[✓] VS Code (version 1.57.1)
[✓] Connected device (3 available)

Hi @l1z0b, thank you for filing this issue.
I tested this on the latest master and stable channel with path_provider 2.0.6 and the issue is reproducible. They will not cause problems for your project as they are just deprecation warnings from the plugin itself.

logs
Users/flo/development/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.6/android/src/main/java/io/flutter/plugins/pathprovider/PathProviderPlugin.java:165: warning: [unchecked] unchecked call to getConstructor(Class<?>...) as a member of the raw type Class
          methodChannelClass.getConstructor(
                                           ^

  where T is a type-variable:
    T extends Object declared in class Class
/Users/flo/development/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.6/android/src/main/java/io/flutter/plugins/pathprovider/PathProviderPlugin.java:165: warning: [unchecked] unchecked conversion
          methodChannelClass.getConstructor(
                                           ^
  required: Constructor<MethodChannel>
  found:    Constructor

2 warnings

flutter doctor -v
[✓] Flutter (Channel stable, 2.5.3, on macOS 11.6.1 20G224 darwin-x64, locale en-US)
    • Flutter version 2.5.3 at /Users/flo/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18116933e7 (4 weeks ago), 2021-10-15 10:46:35 -0700
    • Engine revision d3ea636dc5
    • Dart version 2.14.4

[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/flo/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 13.0, Build version 13A5212g
    • CocoaPods version 1.11.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.60.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.27.0

[✓] Connected device (4 available)
    • sdk gphone x86 (mobile)    • emulator-5554                        • android-x86    • Android 11 (API 30) (emulator)
    • iPhone 12 Pro Max (mobile) • 98CBBFB1-4069-4A28-B7F7-138911ACBE72 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
    • macOS (desktop)            • macos                                • darwin-x64     • macOS 11.6.1 20G224 darwin-x64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 93.0.4577.63

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 2.6.0-12.0.pre.670, on macOS 11.6.1 20G224 darwin-x64, locale en-US)
    • Flutter version 2.6.0-12.0.pre.670 at /Users/flo/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 858a328712 (2 hours ago), 2021-11-09 22:22:14 -0800
    • Engine revision 76bf5a1ad0
    • Dart version 2.15.0 (build 2.15.0-285.0.dev)

[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/flo/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[✓] Xcode - develop for iOS and macOS (Xcode 13.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.60.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.27.0

[✓] Connected device (4 available)
    • sdk gphone x86 (mobile)    • emulator-5554                        • android-x86    • Android 11 (API 30) (emulator)
    • iPhone 12 Pro Max (mobile) • 98CBBFB1-4069-4A28-B7F7-138911ACBE72 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
    • macOS (desktop)            • macos                                • darwin-x64     • macOS 11.6.1 20G224 darwin-x64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 93.0.4577.63

! Doctor found issues in 1 category.

Thank you

they are just deprecation warnings from the plugin itself

This is not a deprecation warning, it's a warning about type handling (likely due to casting of values from method channels).

Same issue

Same issue:

Note: C:\Users\username\flutter.pub-cache\hosted\pub.dartlang.org\path_provider_android-2.0.6\android\src\main\java\io\flutter\plugins\pathprovider\PathProviderPlugin.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

We're aware that this issue exists; we don't need additional confirmations. It's a harmless warning.

Yeah, and it's annoying and it's red, which diverts the developer's attention to futile matters and makes them lose focus of central topics. Red is meant for errors 🚨, not warnings ⚠.
BTW, it's still present in release 2.0.8 😔.

Yeah, and it's annoying and it's red, which diverts the developer's attention to futile matters and makes them lose focus of central topics.

Which is why it's an open issue, tracking the need to fix it. PRs are welcome from anyone who wants to accelerate the process of getting it fixed.

Hi guys,
You can solve this problem use with multiDexEnabled in project/android/app/build.gradle
defaultConfig {
      ......
       multiDexEnabled true
   }

Hi guys, You can solve this problem use with multiDexEnabled in project/android/app/build.gradle
defaultConfig {
      ......
       multiDexEnabled true
   }

Didn't work for me :(

Having same issue.

I am facing with same warning and not able to  run in profile mode on android devices. Is this warning might cause issue for runnimg in profile mode? I have tried many ways to solve profiling issue like flutter clean flutter upgrade flutter pub upgrade flutter pub cache repair` , .... still cannot run in profile mode!

It's still there in version 2.10.1, and its still red lol

It's still there in version 2.10.3, and its still red lol

just do build again it disappear

or https://stackoverflow.com/questions/61702748/note-recompile-with-xlintdeprecation-for-details-solved

version 2.0.12 has same issue. annoying

I don't know if they solved it, but I managed to solve it by adding the latest version of path_provider to the dependency list in pubspec.yaml and it solved it for me.
path_provider: ^2.0.9

Is it really harmless?
Note: C:\src\flutter.pub-cache\hosted\pub.dartlang.org\path_provider_android-2.0.12\android\src\main\java\io\flutter\plugins\pathprovider\PathProviderPlugin.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Fixed with https://github.com/flutter/plugins/pull/5267.


[CP] [vm/ffi] Fix constant Finalizables

Commit(s) to merge
https://github.com/dart-lang/sdk/commit/d3ea8bff5c56e557bf5b4310fe2538feeda7b84c
Target
stable
Issue Description
class A implements Finalizable {}

void b([A? a]) {}

void main() {
  b();
}

crashes the compiler in dart compile exe.
What is the fix
The VM relied on only seeing expression types emitted by the transformer implementing finalizable in the CFE. However, further transforms could change that expression, in this instance to a constant. The fix is that the VM just accepts all expressions types.
Why cherry-pick
At least one user is running into this in production (cc @blaugold).

https://github.com/dart-lang/sdk/issues/49402#issuecomment-1177310166

Risk
low
Issue link(s)

https://github.com/dart-lang/sdk/issues/49402

Extra Info
No response

I support CP

lgtm

Approving the cherry pick based on consensus.  Thank you everyone!

This was picked into stable 2.17.6


kpt fn render error formatting

Example error message after running kpt fn render in Quickstart:
https://kpt.dev/book/01-getting-started/02-quickstart
package ".": running function "gcr.io/kpt-fn/kubeval:0.0.1": FAILED
fn.render: pkg .:
        pkg.render:
        pipeline.run: Unable to find image 'gcr.io/kpt-fn/kubeval:0.0.1' locally
docker: Error response from daemon: manifest for gcr.io/kpt-fn/kubeval:0.0.1 not found: manifest unknown: Failed to fetch "0.0.1" from request "/v2/kpt-fn/kubeval/manifests/0.0.1".
See 'docker run --help'.

Issues:

[ ] Inconsistency referring to the package. package ".". vs "pkg .`"
[ ] Need to follow style guide (K5): go/kpt-errors-style-guide
[ ] Line breaks.
[ ] There's bunch of internal identifiers that wouldn't make sense to the user such as fn.render pkg.render pipeline.run. Is this supposed to emulate a stack trace?
[ ] End user is told to run docker run --help which leaks the implementation details

cc @phanimarupaka for CLI-wide consistency

When you change 0.0.1 to unstable, render doesn't return the error from kubeval function:
kpt1 fn render
package ".": running function "gcr.io/kpt-fn/kubeval:unstable": FAILED
fn.render: pkg .:
        pkg.render:
        pipeline.run:

Compare to running imperatively:
nginx » kpt1 fn eval --image gcr.io/kpt-fn/kubeval:unstable
[ERROR] Failed to parse raw kubeval output:
Unexpected token E in JSON at position 0

ERR  - stdin: Failed initializing schema https://kubernetesjsonschema.dev/master-standalone/deployment-apps-v1.json: Get "https://kubernetesjsonschema.dev/master-standalone/deployment-apps-v1.json": dial tcp: lookup kubernetesjsonschema.dev on <IP_ADDRESS>:53: dial udp <IP_ADDRESS>:53: connect: network is unreachable
 in object 'apps/v1/Deployment//my-nginx' in file deployment.yaml
[ERROR] Failed to parse raw kubeval output:
Unexpected token E in JSON at position 0

ERR  - stdin: Failed initializing schema https://kubernetesjsonschema.dev/master-standalone/service-v1.json: Get "https://kubernetesjsonschema.dev/master-standalone/service-v1.json": dial tcp: lookup kubernetesjsonschema.dev on <IP_ADDRESS>:53: dial udp <IP_ADDRESS>:53: connect: network is unreachable
 in object 'v1/Service//my-nginx-svc' in file svc.yaml
error: exit status 1

Also, a question on what's send to stdout vs stderr:
https://github.com/GoogleContainerTools/kpt/pull/1762/files#r617836270
cc @natasha41575

When you change 0.0.1 to unstable, render doesn't return the error from kubeval function:
kpt1 fn render
package ".": running function "gcr.io/kpt-fn/kubeval:unstable": FAILED
fn.render: pkg .:
        pkg.render:
        pipeline.run:

Compare to running imperatively:
nginx » kpt1 fn eval --image gcr.io/kpt-fn/kubeval:unstable
[ERROR] Failed to parse raw kubeval output:
Unexpected token E in JSON at position 0

ERR  - stdin: Failed initializing schema https://kubernetesjsonschema.dev/master-standalone/deployment-apps-v1.json: Get "https://kubernetesjsonschema.dev/master-standalone/deployment-apps-v1.json": dial tcp: lookup kubernetesjsonschema.dev on <IP_ADDRESS>:53: dial udp <IP_ADDRESS>:53: connect: network is unreachable
 in object 'apps/v1/Deployment//my-nginx' in file deployment.yaml
[ERROR] Failed to parse raw kubeval output:
Unexpected token E in JSON at position 0

ERR  - stdin: Failed initializing schema https://kubernetesjsonschema.dev/master-standalone/service-v1.json: Get "https://kubernetesjsonschema.dev/master-standalone/service-v1.json": dial tcp: lookup kubernetesjsonschema.dev on <IP_ADDRESS>:53: dial udp <IP_ADDRESS>:53: connect: network is unreachable
 in object 'v1/Service//my-nginx-svc' in file svc.yaml
error: exit status 1

This is because of the implementation in kubeval function, more accurate, TS-SDK. By default it will only generate the structured results to stdout. The errors will be printed to stderr only when env STRUCTURED_RESULTS is set.

When you change 0.0.1 to unstable, render doesn't return the error from kubeval function:
kpt1 fn render
package ".": running function "gcr.io/kpt-fn/kubeval:unstable": FAILED
fn.render: pkg .:
        pkg.render:
        pipeline.run:

Compare to running imperatively:
nginx » kpt1 fn eval --image gcr.io/kpt-fn/kubeval:unstable
[ERROR] Failed to parse raw kubeval output:
Unexpected token E in JSON at position 0

ERR  - stdin: Failed initializing schema https://kubernetesjsonschema.dev/master-standalone/deployment-apps-v1.json: Get "https://kubernetesjsonschema.dev/master-standalone/deployment-apps-v1.json": dial tcp: lookup kubernetesjsonschema.dev on <IP_ADDRESS>:53: dial udp <IP_ADDRESS>:53: connect: network is unreachable
 in object 'apps/v1/Deployment//my-nginx' in file deployment.yaml
[ERROR] Failed to parse raw kubeval output:
Unexpected token E in JSON at position 0

ERR  - stdin: Failed initializing schema https://kubernetesjsonschema.dev/master-standalone/service-v1.json: Get "https://kubernetesjsonschema.dev/master-standalone/service-v1.json": dial tcp: lookup kubernetesjsonschema.dev on <IP_ADDRESS>:53: dial udp <IP_ADDRESS>:53: connect: network is unreachable
 in object 'v1/Service//my-nginx-svc' in file svc.yaml
error: exit status 1

This is because of the implementation in kubeval function, more accurate, TS-SDK. By default it will only generate the structured results to stdout. The errors will be printed to stderr only when env STRUCTURED_RESULTS is set.

There's a discrepancy between output of render and eval for the same function.
Also, regardless of whether a function uses structured results, stderr, or both, we need to provide reasonable UX. See https://github.com/GoogleContainerTools/kpt/issues/1557#issuecomment-824348955

Listing some other output issues here (based on https://github.com/GoogleContainerTools/kpt/pull/1774 and https://github.com/GoogleContainerTools/kpt/pull/1762):
fn-render/invalid-inline-config error message should include what Resource is missing metadata; the error currently only says missing Resource metadata, leaving the user to hunt for which Resource threw the error.
fn-render/no-fnconfig error: "failed to configure function: function config must be a ConfigMap or SetLabelConfig" - per go/kpt-errors-style-guide, fields should be in back quotes
fn-eval/invalid-fn-config-file set-namespace should improve upon errors reported by low-level yaml libraries, see https://github.com/GoogleContainerTools/kpt/issues/1793

https://github.com/GoogleContainerTools/kpt/pull/1999 has addressed the last problem here. So close this one.


Fix for 'select * ' hanging

Fix for #878
The issue is due to that the server does not flush out all the packets. The client does not get the complete result so it looks like hanging.
The server should flush out all the packets before resetting the force_flush flag.

@dengyuchenkit This PR flushes the network packet whenever there is a WritePackets() call. Could you provide more information or comment about how buffering/flushing network packets work?

@dengyuchenkit Any updates for this PR?

@seojungmin Oh I'm sorry. When the execution of each query is finished, the connection state will transfer to WriteState. In the write state, it calles WritePackets(https://github.com/cmu-db/peloton/blob/master/src/network/network_connection.cpp#L768). This function is mainly copying the response from the response buffer in ProtocolHandler(https://github.com/cmu-db/peloton/blob/master/src/include/network/protocol_handler.h#L51) to the buffer in NetworkConnection (packet header: https://github.com/cmu-db/peloton/blob/master/src/network/network_connection.cpp#L523. packet body: https://github.com/cmu-db/peloton/blob/master/src/network/network_connection.cpp#L552).
But when the response size is larger than the maximum buffer size in NetworkConnection, it will flush out the content by calling FlushWriteBuffer to make room for the rest of the response. Besides, the networking layer will flush the write buffer when the force_flush flag is set to true. Usually, the force_flush flag will be set to true when the user need to get the response before sending out its next request.
For simple query protocol (https://github.com/cmu-db/peloton/blob/master/src/network/postgres_protocol_handler.cpp#L1097), since each request needs a response, the networking layer will flush the buffer after finishing each query. For extended query protocol, there is a SYNC command by which the user requests collect the result of the previous queries (https://github.com/cmu-db/peloton/blob/master/src/network/postgres_protocol_handler.cpp#L1119). So the server will flush the result when receving a SYNC commands. User can send multiple queries between two SYNC commands. In this case, when one query is finished executing, the NetworkConnection will go to WriteState to only copy the reponse in ProtocolHandler to the local buffer. It won't flush it out until the server finally receive a SYNC or the buffer size is not enough for current response.
Currently, the result of the query execution is initially stored in the ProtocolHandler buffer as different OutputPackets. (https://github.com/cmu-db/peloton/blob/master/src/network/postgres_protocol_handler.cpp#L142). The networking layer will do an extra copy to its own byte buffer when sending it out on the network.
@hzxa21 This PR is completed but it seems it can't finish the check. I will check it.

@seojungmin Previously when server calls FlushWriteBuffer(), the force_flush will be reset to false inside the function. The problem was that when there is a large response, the server will call FlushWriteBuffer() and the force_flush becomes false. Then when it comes to the last part of the response, if its size is small and the force_flush is set to false, it will not trigger the flushing. This part will not be sent out.

Close this PR since there is a new one now.


support arm64 architecture

I want to build this image on arm64 architecture,but I'm not sure that can be support arm64 architecture https://bintray.com/kong/kong-community-edition-rpm/download_file?file_path=dists%2Fkong-community-edition-0.11.0.el7.noarch.rpm

Duplicate of #39.


Add badges for pyup

https://pyup.io/
they already have their own badges of course

sure thing, your guide said to first open up an issue so I did :)
they don't seem to have a proper API but I'm still looking into it

It looks like they do: https://github.com/pyupio/pyup/issues/231
I wonder whether they would mind us serving these from Shields.io, and also, whether they might have rate limits.
If there's new information from the upstream service, please post in the thread. If this becomes actionable by Shields, a maintainer will reopen the issue.
If anyone wants to follow up with the vendor, feel free to do that!
Even though these unresolved upstream issues are closed, they are easy to find:
https://github.com/badges/shields/issues?q=label%3Aneeds-upstream-help+is%3Aclosed

Could this badge be implemented using BaseSvgScraping like #3898?

Could this badge be implemented using BaseSvgScraping like #3898?

If there's not an available API, but there are available (and scrapable) SVGs then yes it probably could!

Is it clear that there's no API, and that SVG scraping is going to be the way to go?

@paulmelnikow from what I can find, yes, there is no API.


feature: change css for links and code

I would like to make more change but this looks like a good start to see what you think in general...
Before

After

Thanks for your contributions! It looks much clearer now.
But it brings some effects.
One of the effect is about linkable buttons, I prefer to remove the underline from linkable buttons.

The other effect is that the taxonomy page doesn't look well. Maybe we can change it to the same style as the sidebar.
https://deploy-preview-217--hugo-theme-bootstrap.netlify.app/en/categories/
How do you think about it?

@razonyang should be fixed - PTAL. Categories probably require more styling, but at least they look how they used to.
I guess we need to extract styles for a list of links and use it to style categories. I could try to do it in another PR.

@vmihailenco Thanks a lot.


Graphql build has been failing intermittently in Windows

Description:
Graphql build has been failing intermittently due to getting nil value from string arguments.  Check the following logs to get the error log.
https://github.com/ballerina-platform/module-ballerina-graphql/runs/7189193929?check_suite_focus=true#step:4:255
https://github.com/ballerina-platform/module-ballerina-graphql/runs/7226165147?check_suite_focus=true#step:4:232
Describe your task(s)
Count is getting from the string argument in the file package and grapql is using this function:
isolated function buildWindowsPath(string... parts) returns string|Error {
    int count = parts.length();
    ....
}

The build fails with the following error from the above coding:
{ballerina}TypeCastError {"message":"incompatible types: '()' cannot be cast to 'long'"}

As per this error message, we have a chance to get this error if the value of the parts is nil. But in graphql, some values of this are hard-coded. So, there is no chance to get nil.
isolated function getGraphQLDocumentFromFile(string fileName) returns string|error {
    string path = check file:joinPath("tests", "resources", "documents", fileName);
    return io:fileReadString(path);
}

And, locally tested the Graphql package on Windows10 but couldn't reproduce this error. So, couldn't find the cause for this build failure.
@warunalakshitha @MaryamZi  We want to know if this build is affected by any lang or runtime changes. Can you help us?

I am closing this since this behaviour have not seen in recently. Please reopen if you have further queries on this.


Refresh enable network protection

I'm an internal contributor
I was asked to help add some changes to Enable-network-protection -- including instructions from @YongRhee-MSFT on how to confirm if protection is enabled on a local device.

@martyav thank you so much!! Really appreciate your great work and ability to knock this out so quickly.