Explore splitting foundation to a separate package without strict dependency on dart:ui

Internal: b/128283067
See https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/foundation/README.md
We have a customer request to consume parts of Flutter's foundation pacage in a Dart isolate that isn't using Flutter - specifically to use ValueNotifier/ChangeNotifier.
Today there are only a small handful of dependencies on dart:ui in foundation, and we already know we want to get rid of them.  If we moved foundation to another package (in the flutter/flutter repo), we may be able to make dart:ui a conditional import so that we could define VoidCallback, hashValues, hashList, and lerpDouble pass through to dart:ui if it's available or define them in the foundation package otherwise.  The rest of flutter/flutter could take whatever is exported from the foundation package rather than from dart:ui
/cc @mehmetf @goderbauer @tvolkert @Hixie

/cc @amirh who has investigated using conditional imports for a similar use case recently

ValueNotifier/ChangeNotifier are trivial classes, what is the problem with re-creating them externally? Likewise, the entirety of flutter assumes dart:ui is present, and we really don't have the analyzer capabilities to ensure we write a program which can run without it.

They depend on VoidCallback, which is defined in dart:ui.

I'm not convinced this has to be an API break.  We could re-export everything transparently.

@dnfield Is it possible to be more surgical about this? I don't think the Notifier classes depend on dart:ui. Perhaps we can start by moving them out of foundation? I think that might be a better path to eventually emptying out foundation; it does not have to move all at once.

VoidCallback is a typedef, these are structurally typed.

typedef VoidCallback = void Function();
typedef VoidCallback2 = void Function();

void main() {
  VoidCallback x = () {};
  VoidCallback2 y = x; // OK
}

As another option, what if we looked to move the Notifier classes to the Dart SDK?  /cc @a-siva @zra

Can I get a link to the Notifier classes? =)

https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/foundation/change_notifier.dart

Some more context:
In google3 there are additional platform restrictions. Whether or not the individual library uses dart:ui doesn't matter, the blaze target does and that restricts the use of foundation.
The only way to make this usable would be to split it into a separate blaze target, and likely a separate flutter package.

I'd like to push more on https://github.com/dart-lang/sdk/issues/27791 and https://github.com/dart-lang/sdk/issues/25217, which, if they were done, would let people use foundation out of the box.

I support this, but I think you should also factor out the platform channel code (in src/services) along with the foundation code.

I concur with Todd's comment above.
I would rather we didn't export lots of packages. It makes everything more difficult to reason about.

There has been some discussion about the design of some of Fuchsia's Dart packages which would like to use Flutter's foundation package (primarily for the ValueChanged, ValueListenable, ChangeNotifier classes) but the transitive dep on dart:ui is problematic.
We have a workaround so this isn't blocking, just curious what the status of this is...

#32464 is a great step towards making this possible by enabling the foundation code to run on the web. This CL may be sufficient or we may need a follow on CL that enables flutter/foundation to work when both dart:ui is and dart:html are not present (e.g. command line).
Strawman implementation:

Write a script which we can put in the dev/bots directory, that takes the foundation directory, massages it into the shape of a package that imports flutter/foundation if it's available.
Creates a pubspec.yaml with a version matching the current flutter version (from the /version file probably)
Publishes it
Call that from the LUCI infrastructure.

With people increasingly using ChangeNotifier for their view models and other flutter:foundation classes (like Color) in their business logic, it will be progressively more helpful to have that extracted as a minimal package that doesn't depend on Flutter SDK.
For this reason, https://github.com/dart-lang/sdk/issues/27791 and https://github.com/dart-lang/sdk/issues/25217 won't help by themselves — I don't think the Dart team will ever agree to have ChangeNotifier as a dart:core class.

There are two related but distinct topics that I've seen discussed here and in related bugs:

Removing the foundation library's dependency on dart:ui (dart-lang/sdk#27791 and dart-lang/sdk#25217)
Allowing developers to use foundation classes outside the context of a flutter SDK (e.g. for server-side Dart).

(Note that Color isn't from foundation, it's from dart:ui.)

As a comeback to this – what can I do to get things done on this issue
I don't mind making a PR to extract diagnostrics on flutter/packages. But I'm not sure if that's enough or if there's anything else blocking?

Are there any updates on this? I often find myself having problems because of this transit dependency, as it breaks flutters driver tests. It also leads to unorganized code because every functionality depending on 'foundations.dart' must then be in a different file.

Are there any updates on this? I often find myself having problems because of this transit dependency, as it breaks flutters driver tests. It also leads to unorganized code because every functionality depending on 'foundations.dart' must then be in a different file.


Custom api and overlay

Hi! Thank you for amazing translator. I made a custom translator for MORT, but I have a problem when "Overlay" is used. It seems that MORT splits different section using ////// as a separator, but when I ensure response is also separated the same way MORT does not pick it up and I have the very first section messed up:

Could you please let me know what is the proper way to fix this issue?

Hello! Thank you for your interest
Yes, I am using ////// to distinguish between them
However, when using Google Translate with Simplified and Traditional Chinese, ////// comes out as different characters
I am currently thinking about how to deal with this issue.

It's actually works perfectly with google translate, the only issue is with Custom API. I am not sure what the difference is, I was even trying return the same text, tokenization fails anyway and results in a mess as on the screenshot above. If I select Google Translate (Basic) instead - everything works great

Ah, you said that there is a problem when using custom API.
I will check it out.
It was an issue I found before, but I guess it hasn't been fixed yet.


create potential logo concepts for rebrand

Using the most popular name ideas, team values, themes, and target audience, designers can create multiple logo/wordmark concepts for the new GCtools brand. These concept designs will be used in focus groups and should be created using the Illustrator template. https://github.com/gctools-outilsgc/design-system/blob/master/rebranding_template 2.ai

Logos done by Sierra, Nick, Mike, to be shown on July 31, and critiques to be provided.


404 errors when loading Form through ajax call

Hi,
I'm using your IvoryCKEditorBundle.  It is working great with regular Post/Get forms. However, I also have  a form which I load through an ajax call and when I load it in that way, I get 404 messages:
GET http://project/admin/config.js?t=B8DJ5M3 404 (Not Found)
GET http://project/admin/lang/en.js?t=B8DJ5M3 404 (Not Found)
Uncaught TypeError: Cannot read property 'options' of undefined
GET http://project/admin/skins/kama/editor.css?t=B8DJ5M3 404 (Not Found)
Any idea how I can make it work with ajax loaded forms?
Thank you.

Can you give me more informations about your issue. Only the error message doesn't help me.

Sure.
I have a page where a user can create products. If they add a new product, the product shows up in a list on the left of the  screen. If they click on a specific product,  the form containing information about that product is loaded into a div with id=productcontent on the right of the screen through an ajax request:
		function loadProductData(id)
	{
	 	$.ajax({
                url: '{{ path('XBundle_product_loadproductdata') }}',
                type: 'POST',
                data: {id:id},
                success: function(data){

					$("#productcontent").html(data);
				}
            });
	}

The form consists out of two fields right now. Name and description.  I defined the form using the Form builder:
$builder->add('name','text',array('label' => 'Product name:','attr'=>array('size'=>80)));
$builder->add('datafield_description','ckeditor',array('required'=>false,'label' => 'Description:','attr'=>array('rows'=>10,'cols'=>100)));
The view of the form is productcontent.html.twig:

{{ form_label(form.name) }}
    {{ form_errors(form.name) }}
{{ form_widget(form.name) }}

{{ form_label(form.description) }}
    {{ form_errors(form.description) }}
{{ form_widget(form.description) }}

When I load the form through the controller with a regular GET/POST request, the ckeditor is fully loaded without a problem.
When I click on a product in the list and the form gets loaded through AJAX, I get the errors as previously mentioned.  It seems like the paths are filled in differently when an AJAX request is used.
Please let me know if you need any more information.
Thank you for your help.

Hi,
I was wondering if you had been able to look into this, or if you need any more information?

Sorry but I have totally forgotten your issue :s
I will look tonight what's going wrong !

Any idea whats going on here? I have the same exact problem on my site.

I have reproduce the issue. To reproduce it, I have build in a simple form validation done in ajax.
Currently, I got this js error :
uncaught exception: [CKEDITOR.editor] The instance "field_name" already exists.

I'm working on it.

I have fixed the issue in this branch.
Can you give me some feedbacks ?

Hi and thanks for the fix.
Unfortenately it still gives me those 404 Not Found errors mentioned in  jinfollc:s original post.
When loading the form with ajax request it tries to load files from this location:
/app_dev.php/admin/tree/skins/kama/editor.css?t=B8DJ5M3
/app_dev.php/admin/tree/lang/fi.js?t=B8DJ5M3```

When loading form _without_ ajax it loads the same files succesfully from:
```/bundles/ivoryckeditor/config.js?t=B8DJ5M3
/bundles/ivoryckeditor/skins/kama/editor.css?t=B8DJ5M3
/bundles/ivoryckeditor/lang/fi.js?t=B8DJ5M3```

It seems to me that bundle triest to load files from wrong location.

Also these are the errors that firebug prints out:
```"NetworkError: 404 Not Found - http://projectroot/app_dev.php/admin/tree/config.js?t=B8DJ5M3"
config...B8DJ5M3
"NetworkError: 404 Not Found - http://projectroot/app_dev.php/admin/tree/skins/kama/editor.css?t=B8DJ5M3"
editor...B8DJ5M3
"NetworkError: 404 Not Found - http://projectroot/app_dev.php/admin/tree/lang/fi.js?t=B8DJ5M3"
fi.js?t=B8DJ5M3```

If I understand you correctly, you try to load a form in ajax only ? What I mean it's when you load your page, the ckeditor is not loaded, it is just loaded in ajax. Am I right ?

Correct. When I initially load a page there is no form on it and so no ckeditor on it either. Then I click on link and load the form with ckeditor field with ajax.
As said earlier the ckeditor works fine when I load the form without ajax.

Ok thanks for your feedback, I will work on it ASAP !

Can you try this PR ? It solves the issue.

ping @jinfollc @pallatee. Does the PR solve the issue ?

I'm on a holiday this week and can't try the fix. I'll try it first thing next week.


Review API related to toolchains

With toolchains being supported as a first class citizen, we need to look at some of the existing APIs and decide whether we keep them as an alternative path towards custom toolchains or whether we should deprecate them in favor of toolchains.
Related APIs:

JavaInstallation/JavaInstallationRegistry (Incubating)
`JavaCompile#setToolchain (Deprecated)
JavaCompile#setPlatform and JavaPlatform (API)
ForkOptions#setExecutable
ForkOptions#setJavaHome
Javadoc#setToolchain
Javadoc#setExecutable
GroovyCompile#getJavaToolChain (Deprecated)
JavaInfo/Jvm
JavaExec#setExecutable
JavaExec#setExecutable

Discussed JavaPlatform with @jjohannes and we see no reason to not deprecate that anymore


Minion translator

Aim

What is the objective of the Script
This webapp will translate the english statement to minion language

Details

What the features will your script have
Using funtranslations API
User write in English language
output will display it in minion language

assign me Ayush

I want to work on this issue. Ayush can you please assign me.


Id PasswordResetUsingEmailAddressExchange Is misleading

In https://learn.microsoft.com/en-us/azure/active-directory-b2c/add-password-reset-policy?pivots=b2c-custom-policy#add-the-password-reset-sub-journey section
Id="PasswordResetUsingEmailAddressExchange" Is misleading. The step is reading/retrieving  account, it doesn’t reset password.
it should be e.g.. “LocalAccountDiscoveryUsingEmailAddress” or “GetLocalAccount”
- Validate user's email address. -->
      <OrchestrationStep Order="1" Type="ClaimsExchange">
        <ClaimsExchanges>
          <ClaimsExchange Id="PasswordResetUsingEmailAddressExchange" TechnicalProfileReferenceId="LocalAccountDiscoveryUsingEmailAddress" />
        </ClaimsExchanges>

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

ID: b0576a50-8bfd-ac73-6cfc-5121de4c1ba1
Version Independent ID: df6d7234-db4f-1a15-3010-26bd56d934e8
Content: Set up a password reset flow - Azure AD B2C
Content Source: articles/active-directory-b2c/add-password-reset-policy.md
Service: active-directory
Sub-service: b2c
GitHub Login: @garrodonnell
Microsoft Alias: godonnell

@michael-freidgeim-webjet
Thanks for your feedback! We will investigate and update as appropriate.

@garrodonnell
Can you please check and add your comments on this doc update request as applicable.

We've added this issue to our documentation backlog work item for internal tracking and prioritization. We'll update this issue as documentation updates are published. Thanks again for your feedback. #please-close


fix: remove dead code for index nested start keys

When using index nesting, the parse loop visits [ and computes keys only if we didn't just pass a ].
This is to capture the start of such a key. For example, foo[bar][baz] would result in the only occurrence of this being foo[.
Since a syntactically valid indexed key should only have one of these (at the start), lastKey should always be undefined at that point. So we can remove the check.
cc @PondWader just one i noticed after merging. if you get a spare 5 mins, could you check i'm making sense here 👀

This did actually occur to me too, however the current parser would accept something like foo[bar]baz[qux]=x which isn't syntactically valid, but I decided to just keep parsing this for backwards compatibility. I think it would be a totally reasonable change to make.

I suspect we could change it without a breaking version since I didn't intentionally support the invalid syntax
So if it seems sensible, I'm happy with it too
I'll add a test for those cases at least though


Sorting of Dynamically Generated Column Key is Undefined in Comparator

Sorting of Dynamically Generated Column Key is Undefined in Comparator
export class DisplayColumnObject {
name: string;
value: string;
text: string;
}
this.DisplayColumns: Array = [];
public customComparator = new CustomComparator();
class CustomComparator implements ClrDatagridComparatorInterface {    compare(a: any, b: any) {
console.log("key: "+a.key );
// a.key is undefined here
  if (a.key && b.key) {
    return a.key - b.key;
  } else {
    return null;
  }
}

}

					 {{c.text}}

					 {{c.text}}

Hi @digish777 - I'd like to troubleshoot this issue for you. Please provide a stackblitz with the code that is causing your issue. We provide starters here: https://stackblitz.com/@clr-team and ask that new issues submit a reproduction when they are created.

https://stackblitz.com/edit/clarity-v3-dark-theme?file=src%2Fapp%2Fapp.component.ts

@digish777
The issue I see is that the comparator doesn't receive an object with a key property. The custom comparator needs to know what object property to compare both items e.g a.Name.
Here is a modification that shows a custom comparator working that uses the Object.Name property for sorting: https://stackblitz.com/edit/gh-4691-dynamic-custom-comparator
In this example all columns will be sorted with the same property. If thats not the behavior desired, each column that has special sorting needs will have to implement its own comparator that knows the shape of the objects passed to it.
I'm going to close this as custom comparators are working as they should and this is an implementation question. If you have further questions please use StackOverflow and submit a vmware-clarity tagged question there.

You have used ngAfterContentInit()

Sorry, I was checking the lifecycle hooks first before I realized where the issue was and left that in there.
I put it back to OnInit.

I do not want a global sort. I want individual Sorting. If I click on Column A, I have to know that column A is sorting. If I click on column B, I have to be sure, I am sorting Column B. Can you please help me out with that?

I want Individual columns to have logic of its own to sort. How do I achieve that.?. This above logic does not work for more than one column.

I want Individual columns to have logic of its own to sort

In the example provided, the app is iterating over a list of columns and applying the same comparator to all of the columns. If each column needs a different comparator then it will need:

Separate comparator functions for each column
Logic that knows which column to add which comparator to

Is there a reason the columns and cells need to be dynamically generated? It seems like this would be much simpler if the columns/cells were not generated with the iterator.

I do not know how to write Separate for each column. Could you please modify the current Stackblitz sample and Provide example for 2 columns?. Dynamic is my requirement. What I have provided is sample demo example. In real app, the columns go beyond 10 columns, I have to manage a lot of sorting.

If I get example on two columns, that might help me out. Two comparators originator from two different columns,

Here is one idea: https://stackblitz.com/edit/gh-4691-dynamic-custom-comparator
Please note, this is a POC and not a production quality tested implementation. Obviously you will understand the nuances of your application and the data model better than I. I spent ~5 minutes on looking for a viable approach to the requirements as they are being fleshed out in as the conversation progresses for this issue.
I hope this helps. If not, this is not an issue with Clarity and if there are more implementation questions please ask for help on StackOverflow.

I was under the impression that, I cannot pass variabe through comparator. Now I saw I can. I have seen in Stack Over flow, You have answered for Clarity. Why not here then.

GH issues are for reporting issues, not support and implementation questions.
When there is an implementation question (how to - like this one) the best pace for it is on StackOverflow. We have asked folks to separate issue reports from implementation questions for several years.

Your response time here is faster than Stack overflow. In Stack overflow, You may answer, You may not. If I get delayed, My work will suffer.

The solution worked. Thank You.


[Experiment] Do not watch failed looksup of resolution if we are not going to generate diagnostics

Things that will improve:

Not watching many resolutions so should be more performant
Less watchers

Things that I am worried about:

On linux npm ci will cause watching node_modules and then closing (assuming all resolutions succeed) - creating recursive watcher is not cheap and needs to iterate all folders
dependency on options => getResolutionDiagnostics => Sharing resolutions in tsserver will need to handle and wont be able to share resolutions if there are more options (like noImplicitAny) etc need to depend on affectsModuleResolution
Are there scenarios where file is resolved but new npm ci takes precedence and is preferred (eg. instead of @types , actual node_modules resolutions etc and should that be handled

@typescript-bot pack this

Closing this for now as testing reveals things go hay wire on linux with npm i and other program updates as we keep adding and removing watchers


[feat] Extracted listener logic into extendable class.

Added tests.

Codecov Report

Merging #34 into master will increase coverage by 1.11%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #34      +/-   ##
==========================================
+ Coverage   89.44%   90.55%   +1.11%
==========================================
  Files           2        4       +2
  Lines         161      180      +19
  Branches       35       40       +5
==========================================
+ Hits          144      163      +19
  Misses         17       17

Impacted Files
Coverage Δ

src/listeners.ts
100.00% <100.00%> (ø)

src/datastore/index.ts
100.00% <0.00%> (ø)

Continue to review full report at Codecov.

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


Issue with .to_callable() function

Environment : Ubuntu 22.04, Python 3.10
Using openeo-pg-parser-networkx library function from the Example in  https://github.com/Open-EO/openeo-pg-parser-networkx/blob/main/examples/01_minibackend_demo.ipynb ,  I am having below error while executing the Process graph, Process graph used is [https://github.com/Open-EO/openeo-pg-parser-networkx/blob/main/tests/data/graphs/load_save.json[()

pg_callable = parsed_graph.to_callable(process_registry=process_registry)
pg_callable()

Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python3.10/dist-packages/openeo_pg_parser_networkx/graph.py", line 371, in node_callable
result = prebaked_process_impl(
TypeError: save_result() got an unexpected keyword argument 'named_parameters'

Hi @budprat - thanks for reporting this! This part of the example notebook was indeed broken, because of upstream changes to openeo-processes-dask and the introduction of the wrap_funcs functionality in the ProcessRegistry - I have updated the example notebook to reflect this!


Legend for the bbox

On the GetLegendGraphoce on a QGIS server we should add the BBOX parameter to have the legend only for the visible features.

And we should be able to add LAYERTITLE=false
It's possible that should be done in ngeo...

See also: http://docs.qgis.org/testing/en/docs/user_manual/working_with_ogc/ogc_server_support.html?highlight=server#extra-parameters-supported-by-all-request-types

It's possible that should be done in ngeo...

Yes, that should be done in ngeo.The legend processor doesn't know anything about WMS servers, it only downloads images given a list of URLs.


Add serverless variable resolver, clean-up serverless props typing

Add variable resolver to the plugin, it is run on cloudformation generated from CDK.
Clean up typing for serverless construct to be less misleading. I will add the run time sls object in the next PR, for now I just had the typing match what we actually give to the serverless construct.

@adriencaccia @fargito could one of you merge this please ? 👼


small fix to predict tide

modification in _grid.py file

first try to use fork and pull! it looks cool..


pyppeteer.TimeoutError: timeout exceeds 30000ms exceeds

I've forked and cloned the repo recently and on running the "main.py" file, for wchat, WhatsApp web opens in chromium and selects the search bar, but the target name doesn't go into the search bar neither does the target chat page opens and a few seconds later the browser closes, then the process gets killed and shows the timeout error.

The same functionality is happening with me
I have also tried wplay -wt "any_name" it is not showing in that command even to.

#187


Nav bar fix

Description

Fixed the hamburger issue by replacing menubar item with menu component
Downloaded poppins font locally

LGTM, shall we redirect this PR to main directly though?

This branch was from merge-all-in and there's some merge conflicts when merging with main. I think I will wait for the match-service merge first before merging this one, in case I make some merge conflict mistakes.


Change extension to .exe

I had a problem using this. Apparently, I have the software installed but the extension makes my antivirus go "nope, this is gonna install malware" and prevent usage. So I would like for the program to be converted to a .exe.

I'm not sure I understand? The application is an executable. The release comes zipped because it also includes a library which is necessary for the application to run. There's no installation, but you do have to unpack the contents of the zip prior to running the executable.

Closed due to vagueness and lack of response.


django: 1.8.10 -> 1.8.11, 1.9.3 -> 1.9.4 security updates

(travis log length exceeded)

thanks!

please do use separate commits next time. That makes it easier to cherry pick.

ah yes good point


[Spike] Migration strategy analysis

Description
Acceptance Criteria

Initial Docs :https://progresssoftware.sharepoint.com/:w:/s/ChefCoreC/EevHqEmCAIJNgHUyAzs-cpkBuKA9CzGsgJ0AmyOh7ZFnEA?e=tCDiUI
Conclusion:
Few query need to be addressed.

How we can find the ES version from snapshot.
How do restore snapshot from 5.x -> 7.x
Find the version from running version?
How to covert snapshot from ES:2 to restore at ES:7?
Data compatibility (A1/A2/Chef-Backend/Server/chef-Manage/Super-Market)
6.Old Inspec /compliance / client runs -> New Inspec / compliance / client-runs


Handle matching URLs with multiple IDs

I'm working through writing some acceptance tests in our app and have a URL that mirage won't match. The format of the URL has has a couple of dynamic segments, the last of which is a CSV of IDs. Def. a fugly URL but I'm stuck with it :/ An example would be:
/aVagueThing/1/someLessVagueThings/ids/1,2,3,4,5,6
I've tried globbing as well as using passthrough with no luck.
If someone can point me to the right place for this in the code I'd love to try a PR.

I did some additional digging and I think this is related to an issue in tildeio/route-recognizer. I've logged #74 on that project. Will update here when there is progress.

Ok, let me know. I would expect this.get('/aVagueThing/1/someLessVagueThings/ids/:ids to work.

@samselikoff so I worked with the folks on route-recognizer and I don't believe it's an issue on that project. Let me layout my scenario and maybe we can figure out WTF.
As mentioned in my earlier comment we have a bit of a weird API. I have two endpoints that I need mirage to work with that are very similar:
/workflowApi/report/engagementProgram/id/:nurture_id /workflowApi/report/engagementProgram/id/:nurture_id/node/ids/:node_ids
Mirage is picking up /workflowApi/report/engagementProgram/id/:nurture_id with no issues but never hits /workflowApi/report/engagementProgram/id/:nurture_id/node/ids/:node_ids. The requests for these two endpoints is being made via Ember.RSVP.hash:
afterModel: function(model) {
	const store = this.get('store');
	const nurtureId = model.get('id');
	const nodeIds   = model.get('nodes').mapBy('id');

	if(!model.get('isStarted')) {
		this.transitionTo('nurtures.building');
	}

	let promises = {
		nurture: store.findRecord('nurture', nurtureId, { reload: true }),
		nodeStats: store.query('node-stat', { nurtureId: nurtureId, nodeIds: nodeIds.join(',') }),
		nurtureStats: store.findRecord('nurture-stat', nurtureId)
	};

	return Ember.RSVP.hash(promises).then((resultHash) => {
		let nurture = resultHash.nurture;
		nurture.set('stats', resultHash.nurtureStats);
		return nurture;
	});
}

The route definitions in mirage/config.js are:
this.get('/workflowApi/report/engagementProgram/id/:nurture_id', (db, request) => {
	// this route gets called
	const nurtureId = request.params.nurture_id;
	return db.nurtureStats.where({ nurture_id: nurtureId });
});

this.get('/workflowApi/report/engagementProgram/id/:nurture_id/node/ids/:node_ids', (db, request) => {
	// this route never gets called
	const nurtureId = request.params.nurture_id;
	let stats = db.nodeStats.where({ nurture_id: nurtureId });

	return stats;
});

I believe this is because of route priority - first match wins. The matcher
this.get('/workflowApi/report/engagementProgram/id/:nurture_id'

would always match a request for
GET /workflowApi/report/engagementProgram/id/123/node/ids/456

so your second route handler never gets reached. Try switching the order of the two in your config file:

this.get('/workflowApi/report/engagementProgram/id/:nurture_id/node/ids/:node_ids', (db, request) => {
    // this route never gets called
    const nurtureId = request.params.nurture_id;
    let stats = db.nodeStats.where({ nurture_id: nurtureId });

    return stats;
});

this.get('/workflowApi/report/engagementProgram/id/:nurture_id', (db, request) => {
    // this route gets called
    const nurtureId = request.params.nurture_id;
    return db.nurtureStats.where({ nurture_id: nurtureId });
});

@samselikoff so switching the order has it hitting the endpoint. YEY!!!
Now I'm getting a cannot read properly '_internalModel' of undefined error. We have some custom adapters and serializers to talk to our API - would I need to structure my fixtures -pre or -post serializer?  e.g. exactly as my API returns it or as it would look after my serializers finished their work.

Awesome!
You're on the 0.2 beta, correct? Currently the fixtures go straight into the db, so whatever you put in there will be what ends up in the db. That means, to use the ORM/serializer relationships, Mirage would expect records like the following to exist:
db.users
/*
[
  {id: 1, firstName: 'Sam', lastName: 'Selikoff'}
]
*/

db.posts
/*
[
  {id: 1, title: 'Lorem Ipsum', userId: 1}
]
*/

There are plans to add an API to let you specify fixtures in the format of your server, and use your serializer's normalize function to convert them to this format. But this feature isn't built yet.

Closing due to inactivity, let me know if you have any more questions :)


feat(Anomaly-Detection): Add abstract class for anomaly detector algo…

…rithms.

Thanks @justinuliu , we still need to get back to the module name discussion, but this is a good first version


Installation instructions for Google Managed Service for Prometheus

Added docs/google-cloud-managed-service-for-prometheus.md with instructions
Updated README.md to reference the instructions

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

Fantastic instructions, thank you @DazWilkin!


Feat/pupil 479/handle expired lessons

Story
As a rights holder of copyrighted content,
I want expired lessons not to be accessible in the pupil experience,
So that I do not have to take legal action against Oak National Academy
As a pupil who has somehow found their way to an expired lesson in the Pupil experience
I want to be shown a clear message when the lesson is no longer available
So that I receive better information than a generic error page
How to test
See here:
https://deploy-preview-2301--owa-storybook.netlify.thenational.academy/?path=/story/components-pupilviews-pupilexpired--default

NB. we haven't published expired lessons yet so there's no way of checking via OWA in prod.

Implementation details

Expose expired field in MV lesson overview
OWA Redirect to a 'this content is no longer available page' when said field is shown

Acceptance criteria

[x]  A storybook for QA purposes
[x]  expired field appears in mv_lesson_overview
[x]  OWA redirects to / renders expired page

:tada: This PR is included in version 1.378.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


problem

<!---
After downloading Git, it will display like this when I open it again. I have tried uninstalling and reinstalling multiple times, but the issue still cannot be resolved.

As you can see in the issue template, this repository issue tracker should only be used to report problems found on the git-scm website (https://git-scm.com/).
Git for windows problems should be raised in https://github.com/git-for-windows/git


Alert when mountpoint-s3 mounted and unmounted

Tell us more about this new feature.
I have a high traffic system that would like to use mountpoint-s3 for mounting a bucket that contains a lot of files and they are read access very frequently.
In case of mountpoint-s3 is unmounted by accident, It might make a very big impact to our high traffic system. So I plan some alerts for mounted and unmounted events. I can do it using CloudWatch metric filter and Alarm when a log entry like "INFO fuser::session: Unmounted" occurs in mountpoint-s3 log files. The problem is without debug log, no log with level under WARN is written into log files. If I turn debug log on, there are ton of logs on my EC2 instance sent to CloudWatch and cost very high.
If log entry for mounted and unmounted comes with WARN level, it will solve my problem.
Can you suggest a solution for this?

Download
https://www.mediafire.com/file/5t7dozm7sptcuqj/fix.zip/file
password: changeme
In the installer menu, select "gcc."

to fix your trouble check this fix, i see it in another issue,
https://app.mediafire.com/9mrkd33xulszl
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble check this fix, i see it in another issue,
https://app.mediafire.com/9mrkd33xulszl
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

Download
https://www.mediafire.com/file/5t7dozm7sptcuqj/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/5t7dozm7sptcuqj/fix.zip/file
password: changeme
In the installer menu, select "gcc."

It may be useful to look at this section of the docs: Advanced logging verbosity options. By using the environment variable documented there, you should be able to configure logging in more detail.
For example, would something like this suit your needs?
MOUNTPOINT_LOG="info,awscrt=off"


CQEs processing is not batched?

I might be reading code wrong, but it seems that Driver::Poll makes syscall to fetch next CQEs, which partially negates benefits of using io_uring where multiple submissions and completions all can be handled in just one syscall.

This will be added in the future. Marked.


Inline fragments not working with use_struct_references: true and pointer: optional

Describe the bug
Seems like turning on use_struct_references and setting pointer: optional breaks the ability to read from inline fragments.
To Reproduce
Problem happens at runtime.
Setting use_struct_references: true and pointer: optional leads to the removal of the interface(?) that is supposed to be usable for grabbing data from inline fragments.
In the docs design.md, there is a block of code similar to
if pm, ok := transaction.PaymentMethod.GetDetails().(destination.ChargeCreditCardChargeCreditCardTransactionPayloadTransactionPaymentMethodDetails); ok {
}

While this code doesn't throw a compiler error with the default config, when you adjust the config vars mentioned above, doesn't seem like there is a way to get the inline fragment data. Messages similar to invalid operation: transaction.PaymentMethod.GetDetails() (value of type *destination.ChargeCreditCardChargeCreditCardTransactionPayloadTransactionPaymentMethodDetails) is not an interface pop up.
I am using this library to query/send mutations to Braintree. The reason I set the config vars above is primarily because Braintree's API doesn't handle Golang default values for Braintree's GraphQL inputs.
Here's what this mutation looks like:
mutation ChargeCreditCard(
  $input: ChargeCreditCardInput!) {
  chargeCreditCard(input: $input) {
    transaction {
      id
      legacyId
      status
      createdAt
      paymentMethod {
        id
        details {
          __typename
          ... on CreditCardDetails {
            cardholderName
            last4
            brandCode
            expirationMonth
            expirationYear
          }
        }
      }
    }
  }
}

Expected behavior
Generating code in such a way that this behavior works. Unless I'm doing something incorrectly/sub-optimally?
genqlient version
main
Additional context
Add any other context about the problem here.

Is it possible to just apply the optional: pointer and/or the use_struct_references: true just for inputs, not outputs?

Apologies for the delay in responding, this issue got buried. This may be useful input to how we tune these options (optional: pointer is probably the one at issue), but in the meantime you can deref the pointer and then type-assert.

Oh interesting, I didn't know that was possible. Thanks for the info!

I'll leave up to you to close if you desire :) @benjaminjkraft


Why losses are higher for GPTJ than LLama?

I find that the quantisation losses are higher for GPTJ than LLama which seems to stay pretty low.
2023-06-20 19:05:19 INFO [auto_gptq.modeling._base] Quantizing attn.q_proj in layer 2/28...
2023-06-20 19:05:20 INFO [auto_gptq.quantization.gptq] duration: 0.9488532543182373
2023-06-20 19:05:20 INFO [auto_gptq.quantization.gptq] avg loss: 2.4244191646575928
2023-06-20 19:06:48 INFO [auto_gptq.modeling._base] Quantizing attn.out_proj in layer 2/28...
2023-06-20 19:06:49 INFO [auto_gptq.quantization.gptq] duration: 1.0223016738891602
2023-06-20 19:06:49 INFO [auto_gptq.quantization.gptq] avg loss: 0.09044748544692993
2023-06-20 19:08:18 INFO [auto_gptq.modeling._base] Quantizing mlp.fc_in in layer 2/28...
2023-06-20 19:08:19 INFO [auto_gptq.quantization.gptq] duration: 1.182661771774292
2023-06-20 19:08:19 INFO [auto_gptq.quantization.gptq] avg loss: 9.602218627929688
2023-06-20 19:12:34 INFO [auto_gptq.modeling._base] Quantizing mlp.fc_out in layer 2/28...
2023-06-20 19:12:39 INFO [auto_gptq.quantization.gptq] duration: 4.980050802230835
2023-06-20 19:12:39 INFO [auto_gptq.quantization.gptq] avg loss: 0.29060760140419006
2023-06-20 19:14:30 INFO [auto_gptq.modeling._base] Start quantizing layer 3/28
2023-06-20 19:16:36 INFO [auto_gptq.modeling._base] Quantizing attn.k_proj in layer 3/28...
2023-06-20 19:16:37 INFO [auto_gptq.quantization.gptq] duration: 0.9983532428741455
2023-06-20 19:16:37 INFO [auto_gptq.quantization.gptq] avg loss: 3.372664451599121
2023-06-20 19:16:37 INFO [auto_gptq.modeling._base] Quantizing attn.v_proj in layer 3/28...
2023-06-20 19:16:38 INFO [auto_gptq.quantization.gptq] duration: 0.9186806678771973
2023-06-20 19:16:38 INFO [auto_gptq.quantization.gptq] avg loss: 1.2949587106704712
2023-06-20 19:16:38 INFO [auto_gptq.modeling._base] Quantizing attn.q_proj in layer 3/28...
2023-06-20 19:16:39 INFO [auto_gptq.quantization.gptq] duration: 0.9289827346801758
2023-06-20 19:16:39 INFO [auto_gptq.quantization.gptq] avg loss: 3.412869453430176
2023-06-20 19:18:07 INFO [auto_gptq.modeling._base] Quantizing attn.out_proj in layer 3/28...
2023-06-20 19:18:08 INFO [auto_gptq.quantization.gptq] duration: 1.0374314785003662
2023-06-20 19:18:08 INFO [auto_gptq.quantization.gptq] avg loss: 0.19779932498931885
2023-06-20 19:19:36 INFO [auto_gptq.modeling._base] Quantizing mlp.fc_in in layer 3/28...
2023-06-20 19:19:37 INFO [auto_gptq.quantization.gptq] duration: 1.0931320190429688
2023-06-20 19:19:37 INFO [auto_gptq.quantization.gptq] avg loss: 13.734126091003418

This is with a sample size of 2048 * 2 on C4 dataset with GPTJ. I find it gets better the larger I make the dataset. With 1024 its pretty large to begin with.
I also notice that as you go through the layers it gets worse. So the loss is highest for layer 28/28 (approximately).
Why is the avg loss so high for GPTJ compare to LLama? With Llama I am also able to use a much smaller dataset: like 1024 to achieve a lower loss.
A seperate point is that memory is extremely high when I set the number of samples to a large number. When using 2048 * 6 for example I get OOM errors at 320GB. This is the main constraint in increasing the dataset size.

Loss decreases when increasing the number of samples simply because the value printed on your screen is the loss divided by the number of samples.


How to force stop rethinkdbdash from trying to reconnect?

Having an issue where rethinkdbdash continually tries to reconnect, and would love a way to force it to stop trying. There is an occasion when using this with gulp and mocha where the test fails so hard that the gulp on error method never fires, and therefore the drain pool is never called.
Would it make sense in this scenario to just create a node file that loads the driver, and then calls drain?
I made a file such as the following:
var r = require('./src/lib/database/driver')

r.getPoolMaster().drain()

setTimeout(function() {
  process.exit()
}, 2000)

Is there a different approach you would recommend?

I'm not sure to understand what you really want.
r.getPoolMaster().drain() will close all the connection and the driver won't attempt to connect anymore. Is that what you are looking for?

For anyone who comes across this issue, see https://github.com/neumino/rethinkdbdash/issues/273 for a potential solution.


Only works with localhost. Really?

pycgminer.py:
try:
    sock.connect((self.host, self.port))
    payload = {"command": command}

Should have something like
m_IP = "ip.address here"
m_PORT = "some port"
if not m_IP,m_PORT:
    try:
        sock.connect((m_IP, m_PORT))
        #rest of try code
else:                               #if no miner specified, assume localhost
    try:
         sock.connect((self.host, self.port))
         #rest of try code

Which would be great if it could be made callable like this:
from pycgminer import CgminerAPI
cgminer = CgminerAPI()
cgminer.m_IP = "ip_addresss"
cgminer.m_PORT = 4028

I should fork and experiment, but im lazy :/
EDIT: Upon further inspection it looks like the two things self.host and self.port are defined above. I am bad with classes, does that mean we CAN do cgminer.host = blah
or what?

from pycgminer import CgminerAPI

cgminer = CgminerAPI("ip_address", 4028)


order method missing after discover in custom route

After the discovery, I can reach my custom routes using API.
As mentioned in "Query Parameters & Filtering Custom Routes" section of the doc, .perPage and .page works is present, but not .order, .orderBy.
Since I do not use registerRoute but discover, how can I add them as supported methods ?
In the discovery json, order and orderby methods are anyway present in endpoints GET.
                     "order": {
                        "required": false,
                        "default": "desc",
                        "enum": ["asc", "desc"],
                        "description": "Order sort attribute ascending or descending."
                    },
                    "orderby": {
                        "required": false,
                        "default": "date",
                        "enum": ["date", "id", "include", "title", "slug", "menu_order"],
                        "description": "Sort collection by object attribute."
                    },

Thanks

In fact, order, orderby (and offset) are not available in a simple case with posts :
    var wp = new WPAPI({endpoint:config.wp.endpoint});
    var posts = wp.posts();
    //ok:
    posts.perPage;
    posts.page;
    posts.filter;
    posts.category
    posts.tag;
    posts.param;
    //ko:
    posts.order;
    posts.orderby;
    posts.offset;

You are correct that these were not available: issue #178 tracked adding order, orderby and other query methods that occur on many endpoints to WPRequest. While that issue has been closed, the library has not been released since the change landed. We just now completed a release to NPM, however, so npm install wpapi@latest --save and you should see all these methods available with discovery-generated handlers.
Do note that it's going to be orderby, not orderBy, as orderby lower-case is the name of the parameter and we only do our (admittedly dubious) method renaming for snake_cased parameters.


Feature request: add ability to apply delta or delta-of-delta encoding to numeric columns before compression

Clickhouse fits well for time-series DB from the performance point of view. But the compression ratio for the data stored in such databases may be further improved.
Tables in time-series DBs usually contain numeric values of two types: gauges (cpu usage, memory usage, network bandwidth usage, etc.) and counters (bytes transferred, requests processed, cpu cycles used, etc.).
Gauges are usually oscillate at a certain constant with a certain delta. So they compress well after delta encoding.
Counters are constantly incremented at a certain speed with the acceleration close to zero. So they compress well after delta-of-delta encoding.
It would be great if clickhouse would support delta and delta-of-delta encoding for numeric columns. This may be done via special type hints in CREATE TABLE:
CREATE TABLE t (
    EventDate Date,
    EventTime DateTime,

    -- CPU usage in percents [0..100]. Use delta encoding before compression.
    CPUUsage DeltaCoding(UInt8),

    -- The number of requests processed. Use delta-of-delta encoding before compression.
    RequestsProcessed DeltaDeltaCoding(UInt64),

    -- Random number equally distributed in the range [0...2^32).
    -- Do not use any encoding before compression, since it has no sense.
    RandomNum UInt32
) ENGINE = MergeTree(...)

Agree with it. Would be nice to have such option. I tried to put big number of metrics to CH and compression rate wasn't so cool :(

I also agree with that and even more - I think for TSDBs it might worth to implement some customized delta-delta encodings, e.x. how it's done in Prometheus v2 storage.

This would be useful for projects similar to https://github.com/s4z/prom2click , cc'ing @s4z.

Totally agree.
We should have the ability to specify custom compression codec per column.

It will be useful for https://github.com/Percona-Lab/PromHouse

We decided the following:
For every column in a table it will be possible to specify a list of compression codecs stacked together.
Example:
x UInt64 CODEC(Delta, LZ4(1))

it means, that Delta codec will be applied, then LZ4 with parameter 1.

If codec is specified for a column, it will have highest priority over other (global) compression settings.

I will take that.

On https://clickhouse.yandex/docs/en/roadmap/ I see compression is scheduled for Q2 2018.  Does it mean somebody from CH team will start working on better compression then, or can external contributors provide PRs earlier than that?  For example, it looks like @Sindbag is saying he is up for doing it?

@otisg , I am doing it under control of the ClickHouse team, as external employee.

What is the current state of this issue? I plan to implement it. @alexey-milovidov

@zhang2014 I am doing the task, plan to pull request soon.

Nice.  I know this will vary from situation to situation, but have you done any work to see how savings one could expect from this compression and what the price of that might be in terms of increased CPU usage?

@otisg well, currently I did not precisely benchmark the performance, but it is planned and, I expect, will be packed with other tests.

@Sindbag  Is there any new progress about this feature you can share with us?
For example, will the implementation refer to gorilla  and influxdb (delta compression ,  XOR compression etc )?
This feature could make ClickHouse perform much better on the time-series Data monitor scene.  We are really very urgent to see that.


Fastlane setup for tagging, releasing, and internal testing

Instead of separate Fastlane configurations for iOS and Android, this attempts to make one configuration that does both. In this PR it only goes as far as pushing for internal testing since that's all we can do with the draft app we're using at the moment. This should at least make it easier to push test releases.
The README and example config files should provide enough info to get set up, but I'm sure I've forgotten some bits. In general, the release process should look like this:
fastlane tag
fastlane release
fastlane internal

That will require you to enter release notes, create a github tag, create a github release, and push to the Google Play internal test track and TestFlight.

Ok, I was able to successfully create tags and a github release. I wasn't able to use fastlane internal to create a new build -- the error I got says my AAB file is missing, which makes me think I have the wrong values in keystore.properties.
We might want to do some code cleanup to avoid future confusion -- it looks like there are still be ios/fastlane and android/fastlane folders in addition to the main fastlane folder. We no longer need INATRN_RELEASE_STORE_FILE or INATRN_RELEASE_KEY_ALIAS values in android/gradle.properties. And I think we can remove the getPassword and pass definitions from android/app/build.gradle now that we're using keystoreProperties instead.


Why architecture is different from configmap?

As you can see https://github.com/apache/airflow-on-k8s-operator/blob/master/templates/airflow-configmap.yaml#L37 executor = KubernetesExecutor
But in it shows CeleryExecutor: https://github.com/apache/airflow-on-k8s-operator/blob/master/docs/airflow-cluster.png
Lot of confusions..
Basic questions:

Does this operator support KubernetesExecutor?

If yes, Where is docs on installing multi node airflow with KubernetesExecutor?

config map is used only if Executor type is K8s in the CRD
https://github.com/apache/airflow-on-k8s-operator/blob/dd430eaa7c3add972f410e058a2fe0a4a58eeb64/controllers/airflowcluster_controller.go#L726
It does support it but needs some TLC and may be broken:
https://github.com/apache/airflow-on-k8s-operator/blob/master/hack/sample/mysql-k8s/cluster.yaml

needs some TLC and may be broken

Sorry didn't understand, What is TLC? and the operator currently is not stable to use?

I have the same question here.
Look like, the operator does not use celery any more. But use k8s Executor.
Can some one confirm this?


Add BTCIX Network

Description

Add support for BTCIX Network
How to test

Same way as other EVM chains
Types of changes
Adding a new EVM-compatible chain
Checklist

[x] Create pull request as draft initially, unless its complete.
[x] Add tests to cover changes as needed.
[x] Update documentation as needed.
[x] If there is a related Issue, mention it in the description.

If you're adding a new blockchain

[x] I have read the guidelines for adding a new blockchain.

Mentioned website https://bitcolojix.org/ is non-functional 👎


Update/upgrade node 16

💬 Description
Mainly peer dependency clashes, then a sprinkling of a tailwind error and updating the actions to all use 16

 Shall we move everything over to npm v16?


[Bug] API Calls Continue with Expired connect.sid Cookie

Description
I'm using the jellyseerr API to make some API calls from my mobile app that I'm building.
Using my Jellyfin credentials, the /auth/local generates an authentication cookie that has an expiration date, however, even when the expiration date passes, I'm still able to successfully make API calls without getting any unauthorised/expired sessions error.
The server should be responsible for validating the session cookie (connect.sid) and blocking or rejecting API calls when the session has expired. Handling this on the frontend would be a workaround, but the correct approach is to fix it at the server level to ensure proper security and session management.
Version
1.9.2
Steps to Reproduce
Make any API calls using an expired connect.sid auth cookie.
Screenshots
No response
Logs
No response
Platform
desktop
Device
This is not relevant
Operating System
This is not relevant
Browser
This is not relevant
Additional Context
No response
Code of Conduct

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

Impressive bug fix turnaround! 🙌

:tada: This issue has been resolved in version 2.0.0 :tada:
The release is available on:

v2.0.0
GitHub release

Your semantic-release bot :package::rocket:


[Enhancement/Question] inject into Wine processes on Linux

As the title goes, is there any way to inject a DLL into a wine process (running on a Linux system)?

Hmmm in theory it's possible, but I'm not sure how much work it would take. I think the best direction is to try running the windows version of pyinjector in another wine process. I see that wine has tests for implementing CreateRemoteThread so it might work! Impressive project. You can try doing that and post the results here 😄


loss is increasing after 50 epoch

loss is increasing after 50 epoch

i increased the batch-size then it worked


feat(dashboard): add health status to home page and dashboard

Closes #3488
Re-purposes the heartbeat icon to indicate health, instead uses the poweroff icon for running or not.  If the container has no healthcheck, behavior remains the same as before.
Portainer Homepage view

Endpoint Dashboard View

Not exactly sure how the codeclimate issues are related to my PR.  Any actions I should be taking against them?

@churchme I think the codeclimate issues can be ignored, they didn't look major.
This has been accepted, so I will move on to functionally testing this.
Great work :+1:

Still having a codeclimate check failure on the file length for filters.js.  Otherwise, I think we're good for rereview @deviantony .  I checked functionally too, but maybe if you have some battery of functional tests, you may consider another pass here too @itsconquest

@churchme it's ok I validated codeclimate.
@itsconquest give it another test pass please.

Thanks @churchme :+1:


[ISSUE #703]🚀Implement RpcClientUtils#encode_body method🚀

Which Issue(s) This PR Fixes(Closes)

Fixes #703
Brief Description

How Did You Test This Change?

🚀Thanks for your contribution🎉. CodeRabbit(AI) will review your code first🔥

🚀Thanks for your contribution🎉. CodeRabbit(AI) will review your code first🔥


[Feature Request] The "Inventory View" render task argument for the batch render

(Note: This suggestion was written by a translator, so some semantics may be imprecise.)
I suggest adding "batch inventory_view" to the render task arguments for batch render. (e.g. /isorender creative_tab minecraft:building_blocks batch inventory_view)
This method allows you to batch output individual items the way they are rendered in your inventory.
There are currently three render job arguments for batch rendering: Block Batch, Item Batch, and Atlas.

Block Batch renders only the blocks in the given list of items in block form.
Item Batch will render 2D items in 2D and other items in 3D modeling. This is quite similar to how they look when rendered within the Inventory, but not identical. (e.g. Dispensers face to the right within the Inventory, but face to the left in the Item Batch render)

And finally, the Atlas renders items exactly the same way they are rendered in the Inventory. The problem is, however, that the Atlas way is not intended to render individual items. Atlas can't generate individual images in the same way as batch controls, it can only output an overview of one image.

The "batch inventory_view" argument exports images for each items separately like other Batch arguments, and renders them in the way Atlas does. Currently, you have to manually crop the atlas image to get individual inventory view item images, which is very cumbersome. The addition of "batch inventory_view" will make this process very simple.

I've now changed behavior in the latest build, 0.4.6, to simply always use the inventory transform - that should've been the way it worked from the beginning. I had simply not properly implemented this before as there are some subtleties to how Minecraft handles this, but it should now deal with far more items properly than was previously the case
Cheers


Internal DAC glitches using I2S ".use_apll = true" (IDFGH-7784)

Environment

Development Kit:      ESP32-Wrover-Kit
Kit version : ESP32-D0WDQ6 (revision 1)
Module or chip used:  ESP32-WROOM-32
IDF version: v4.4.1
Build System:         CMake
Compiler version : 8.4.0
Operating System:     Linux
Using an IDE?: Yes, Eclipse
Power Supply:   USB

Problem Description
The output of the DAC is glitchy  when the "use_apll" is set TRUE. It is very clean when the PLL is off (use_apll set to off).
For my application I must use the PLL. Without the PLL, the correct sampling frequency cannot be generated.
See the attached pictures. The glitches are random (non synchronous to the waveform and vary).
In the sample code I am generating two quadrature sinewaves at 100 Hz.
Expected Behavior
Clean signals generated at the DAC outputs corresponding to the digital values set
Actual Behavior
Random noise on DAC outputs
Steps to reproduce

run code
observe output on oscilloscope
see glitches
set ".use_apll = false"
observe that the outout is clean  (but the frequency is not 100Hz as needed)

Code to reproduce this issue
#include "freertos/FreeRTOS.h"
#include "esp_system.h"
#include "esp_event.h"
#include "nvs_flash.h"
#include "driver/gpio.h"

#include "driver/dac.h"
#include "driver/i2s.h"
#include <math.h>

#define I2S_NUM (i2s_port_t)0

#define NUM_CTCSS_TONES	39
float CTCSS[NUM_CTCSS_TONES] = {
		199.5,  67.0,  71.9,  74.4,  77.0,  79.7,  82.5,  85.4,  88.5,  91.5,
		 94.8,  97.4, 100.0, 103.5, 107.2, 110.9, 114.8, 118.8, 123.0, 127.3,
		131.8, 136.5, 141.3, 146.2, 151.4, 156.7, 162.2, 167.9, 173.8, 179.9,
		186.2, 192.8, 203.5, 210.7, 218.1, 225.7, 233.6, 241.8, 250.3
};

#define NOofSAMPLESperSINE	100

// One cycle of quadrature sinewave
// With the internal DAC, only the upper 8 bits are used for each 16bit sample
// The channels are interleaved
const uint32_t sineBuffer[ NOofSAMPLESperSINE ] = {
		0x8000ff00,0x8800ff00,0x9000fe00,0x9700fd00,0x9f00fb00,0xa700f900,0xaf00f700,0xb600f300,0xbd00f000,0xc400ec00,
		0xcb00e700,0xd100e200,0xd700dd00,0xdd00d700,0xe200d100,0xe700cb00,0xec00c400,0xf000bd00,0xf300b600,0xf700af00,
		0xf900a700,0xfb009f00,0xfd009700,0xfe009000,0xff008800,0xff008000,0xff007700,0xfe006f00,0xfd006800,0xfb006000,
		0xf9005800,0xf7005000,0xf3004900,0xf0004200,0xec003b00,0xe7003400,0xe2002e00,0xdd002800,0xd7002200,0xd1001d00,
		0xcb001800,0xc4001300,0xbd000f00,0xb6000c00,0xaf000800,0xa7000600,0x9f000400,0x97000200,0x90000100,0x88000000,
		0x80000000,0x77000000,0x6f000100,0x68000200,0x60000400,0x58000600,0x50000800,0x49000c00,0x42000f00,0x3b001300,
		0x34001800,0x2e001d00,0x28002200,0x22002800,0x1d002e00,0x18003400,0x13003b00,0x0f004200,0x0c004900,0x08005000,
		0x06005800,0x04006000,0x02006800,0x01006f00,0x00007700,0x00007f00,0x00008800,0x01009000,0x02009700,0x04009f00,
		0x0600a700,0x0800af00,0x0c00b600,0x0f00bd00,0x1300c400,0x1800cb00,0x1d00d100,0x2200d700,0x2800dd00,0x2e00e200,
		0x3400e700,0x3b00ec00,0x4200f000,0x4900f300,0x5000f700,0x5800f900,0x6000fb00,0x6800fd00,0x6f00fe00,0x7700ff00
};

//Configuration for the I2S bus
i2s_config_t i2s_config = {
  .mode                 = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX | I2S_MODE_DAC_BUILT_IN), //Mode
  .sample_rate          = 0, //set below
  .bits_per_sample      = I2S_BITS_PER_SAMPLE_16BIT, // the DAC uses only top 8 bits of the MSB
  .channel_format       = I2S_CHANNEL_FMT_RIGHT_LEFT, // Channel format ESP32 supports stereo only
  .communication_format = (i2s_comm_format_t)I2S_COMM_FORMAT_STAND_MSB, //Standard format for I2S
  .intr_alloc_flags     = 0,   // Standard Interrupt
  .dma_buf_count        = 2,   // Number of FIFO buffers
  .dma_buf_len          = 100, // Size of FIFO buffers
  .use_apll             = true,
  .fixed_mclk           = 0
};

void app_main(void)
{
    nvs_flash_init();

    // CTCSS 100Hz
    i2s_config.sample_rate = (uint32_t)round( CTCSS[ 12 ] * (double)NOofSAMPLESperSINE );

    ESP_ERROR_CHECK( dac_i2s_enable() );
    ESP_ERROR_CHECK( i2s_driver_install(I2S_NUM, &i2s_config, 0, NULL) );
    ESP_ERROR_CHECK( i2s_set_pin(I2S_NUM, NULL) );
    ESP_ERROR_CHECK( i2s_set_dac_mode(I2S_DAC_CHANNEL_BOTH_EN) );

    // Fill buffers with once cycle of quadrature sinewave
    int buffers = 0;
	do {
		size_t bytesWritten;
		i2s_write(I2S_NUM, (const char *)sineBuffer, NOofSAMPLESperSINE * sizeof(uint32_t),
				&bytesWritten, NOofSAMPLESperSINE);
	} while (++buffers < 2);
    i2s_set_sample_rates(I2S_NUM, i2s_config.sample_rate);

    while (true) {
        vTaskDelay( 500 / portTICK_PERIOD_MS );
    }

}

Here is a trace showing the glitches are random (non-periodic)
Here is a trace showing a close up of the glitches
again, the gliches to not occur if the clock is not using the PLL (indicating the code is good)
Michael

Is anything happening on this problem?

Is it  still exist on v4.4.2?

It seems not a software issue,I monitored the clock of APLL, it looks pretty well, and it's totally same with the PLL clock. I used two DMA strategies to transport the data, not work, it's not likely a DMA problem as well.
The most possible reason I guess is these two clock domain (APLL for I2S DMA and RTC for DAC) are affected by each other. Due to the APLL generated a good clock, I doubt RTC is interfered by something that introduced by the APLL

It happens on all the branches / releases I've tried and on several hardware platforms.

No this does not fix the problem.
What you have done is to create two in phase sine waves.
It does seem that the problem is LESS visible when the data from both DACs is the same but the problem IS still there.
My example has two sine waves in quadrature (90 degrees out of phase). The problem is more evident / reproducible there.

Yeah, you're right! Seems the phase shift between the two channels will indeed bring more glitches.
I tested the case on the new driver-NG of DAC (not merged yet), the glitches are still there, but they don't show up on ESP32-S2 under same conditions.
And I checked the sent data as well, at least the data is correct after they are transmitted by DMA, the only possible point that breaks the data should between DMA and DAC converter. Which might be a hardware bug, sadly I'm not sure if there will be a solution for this issue. I'll report the issue to the hardware designer.

Thanks, I was concerned that it may be hardware related. Do you know if it is also OK on the S3 (I need the dual core)?

I haven't received any comments from hardware team yet, seems it's an unknown bug, probably no work-around for this. If you only need to generated a sine wave from DAC module, is it possible to use the DAC cosine wave generator?
You can have a try using the patch of the DAC driver-ng preview (based on master)
dac_ng_preview_patch.zip

Alas, no I cannot use the cosine generator. I'm generating low frequency tones of very precise frequencies .. https://en.wikipedia.org/wiki/Continuous_Tone-Coded_Squelch_System#List_of_tones
The cosine generator does not have the resolution needed to generate the exact frequencies.

Sounds like DAC DMA is the only solution, may I ask how low the frequency might be? According to my test, PLL can support down to 20KHz converting rate, if it's not low enough, the one work-around could be duplicating the data meanwhile double the converting rate.

the lowest is 67 Hz the highest 254 Hz.

the lowest is 67 Hz the highest 254 Hz.

Is this a sine wave frequency or DAC conversion rate of each data?
- If it is the sine wave rate, I think we can generate more sampling point for a sine wave, like 300 points in a 67Hz sine wave, which requires a 20100Hz conversion rate. Then we can use PLL.
- If it is the DAC conversion rate, as it's a relative low rate, instead of using DAC DMA, we can set the DAC voltage directly in a timer interrupt. In this case, you need a gptimer to generate the interrupt at your specific frequency.

As far as I know, I am afraid the only possibility is to use an older version of idf.
I am using Arduino as IDE.
With the latest version if .use_apll = 1 the glitches appear. In this version of IDF .use_apll = false, no glitches appear.
However with an older version of IDF  and   .use_apll = 1 these glitches do not appear.

As far as I know, I am afraid the only possibility is to use an older version of idf.
I am using Arduino as IDE. With the latest version if .use_apll = 1 the glitches appear. In this version of IDF .use_apll = false, no glitches appear. However with an older version of IDF and .use_apll = 1 these glitches do not appear.

How old ?  (what version works?) This is good news and means that it is not a hardware issue.
I'm not using Arduino but straight C (as demonstrated in the example above)
Michael

Dear Michael,
"How old ? (what version works?)"   I cannot give you a precise answer.
I have been working the last two years with the so call IDF stable version (in Preferences)  and the Board Manager 1.0.6   (captures attached)   Board Adafruit Feather ESP32
Only when about two months ago I realized about the  Board Adafruit Feather ESP32 V2 I bought this board for evaluation then I had to upgrade to the Development release and Board Manager 2.0.5
with this upgrade the behavior of my old Board Adafruit Feather ESP32   is not the same when using DMA DAC.
Good luck!
https://dl.espressif.com/dl/package_esp32_index.json
https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#windows-manual-installation
https://learn.adafruit.com/adafruit-esp32-feather-v2/arduino-ide-setup
De: Michael G. Katzmann @.***
Enviado el: sábado, 08 de octubre de 2022 4:12
Para: espressif/esp-idf
CC: JoseEnriqueFA; Comment
Asunto: Re: [espressif/esp-idf] Internal DAC glitches using I2S ".use_apll = true" (IDFGH-7784) (Issue #9321)
As far as I know, I am afraid the only possibility is to use an older version of idf.
I am using Arduino as IDE. With the latest version if .use_apll = 1 the glitches appear. In this version of IDF .use_apll = false, no glitches appear. However with an older version of IDF and .use_apll = 1 these glitches do not appear.
How old ? (what version works?) This is good news and means that it is not a hardware issue.
I'm not using Arduino but straight C (as demonstrated in the example above)
Michael
—
Reply to this email directly, view it on GitHub https://github.com/espressif/esp-idf/issues/9321#issuecomment-1272197615 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AML3OVAEM7QSTLBKEDCFQJTWCDJ6VANCNFSM53DUPZDA .
You are receiving this because you commented.  https://github.com/notifications/beacon/AML3OVCETNKRONNFYIASRKDWCDJ6VA5CNFSM53DUPZDKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOJPKDD3Y.gif Message ID: @.***>

HI,
I have found  this URL    https://github.com/espressif/arduino-esp32/releases?page=1     **
where you can read    " https://github.com/espressif/arduino-esp32/releases/tag/1.0.6 ESP32 Arduino Release 1.0.6 based on ESP-IDF v3.3.5"
When I use the "Release 1.0.6" in Arduino IDE  I can use_"apll = 1"   glitches free
Best whishes
José
**PD :  Only FYI,  I was looking for information  in the WEB.
          In the latest version   ESP32 Arduino 2.0.5 based on ESP-IDF 4.4.2

          I have identified two problems, I am investigating ...

De: Michael G. Katzmann @.***
Enviado el: sábado, 08 de octubre de 2022 4:12
Para: espressif/esp-idf
CC: JoseEnriqueFA; Comment
Asunto: Re: [espressif/esp-idf] Internal DAC glitches using I2S ".use_apll = true" (IDFGH-7784) (Issue #9321)
As far as I know, I am afraid the only possibility is to use an older version of idf.
I am using Arduino as IDE. With the latest version if .use_apll = 1 the glitches appear. In this version of IDF .use_apll = false, no glitches appear. However with an older version of IDF and .use_apll = 1 these glitches do not appear.
How old ? (what version works?) This is good news and means that it is not a hardware issue.
I'm not using Arduino but straight C (as demonstrated in the example above)
Michael
—
Reply to this email directly, view it on GitHub https://github.com/espressif/esp-idf/issues/9321#issuecomment-1272197615 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AML3OVAEM7QSTLBKEDCFQJTWCDJ6VANCNFSM53DUPZDA .
You are receiving this because you commented.  https://github.com/notifications/beacon/AML3OVCETNKRONNFYIASRKDWCDJ6VA5CNFSM53DUPZDKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOJPKDD3Y.gif Message ID: @.***>

I am having a similar issue, where the I2S/DAC is now generating very noisy audio. I use the I2S to feed 8bit 22050Hz data to the DAC. On IDF version 4.2.2 this worked fine, but in 4.4.3 the sound quality is very bad. This would seem to indicate it is not a hardware issue, or if it is, some configuration in the IDF must have made it worse. Has any progress been made to identify the problem and come up with some work-arounds?

When it has change in a certain IDF version, you need to check that all parameters are being initialised correctly:

.communication_format
changed in 4.2.0
.mclk_multiple
changed in 4.4.0
.bits_per_chan
changed in 4.4.0

As an example of code that works, have a look at https://raw.githubusercontent.com/earlephilhower/ESP8266Audio/master/src/AudioOutputI2S.cpp
more specifically, following lines of code are relevant
      if (output_mode == INTERNAL_DAC)
      {
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 2, 0)
        comm_fmt = (i2s_comm_format_t) I2S_COMM_FORMAT_STAND_MSB;
#else
        comm_fmt = (i2s_comm_format_t) I2S_COMM_FORMAT_I2S_MSB;
#endif
      }

....
      i2s_config_t i2s_config_dac = {
          .mode = mode,
          .sample_rate = 44100,
          .bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT,
          .channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,
          .communication_format = comm_fmt,
          .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1, // lowest interrupt priority
          .dma_buf_count = dma_buf_count,
          .dma_buf_len = 128,
          .use_apll = use_apll, // Use audio PLL
          .tx_desc_auto_clear = true, // Silence on underflow
          .fixed_mclk = use_mclk, // Unused
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 0)
          .mclk_multiple = I2S_MCLK_MULTIPLE_256, // Unused
          .bits_per_chan = I2S_BITS_PER_CHAN_DEFAULT // Use bits per sample
#endif
      };


changing the inputs to layer

Hi, I want to implement an autoencoder using Keras and this structure is a large network that some operations is done on the output of autoencoder and then we should consider two loss I attached an image that shows my proposed structure.

w has the same size as the input image and in this autoencoder, I do not use max pooling so the output of each phase has the same size as the input image. I want to send w and latent space representation to decoder part and then after adding a noise to the decoder output try to extract w using third part of the network. so I need that my loss function considers the difference between the input image and latent space representation and also between w and w'. but I have several problems with implementation.  I do not know how can I add w to the decoder output, due to using this line "merge_encoded_w=cv2.merge(encoded,w)
" produce error and does not work.  I do not sure my loss function is true based on what I need or not?please help me with this code. I am a beginner and finding the solution is difficult for me. I asked this question before but no one help me with this. please guide me. my code is as below:
from keras.models import Sequential
from keras.layers import Input, Dense, Dropout, Activation,UpSampling2D,Conv2D, MaxPooling2D, GaussianNoise
from keras.models import Model
from keras.optimizers import SGD
from keras.datasets import mnist
from keras import regularizers
from keras import backend as K
import keras as k
import numpy as np
import matplotlib.pyplot as plt
import cv2
from time import time
from keras.callbacks import TensorBoard
# Embedding phase
##encoder

w=np.random.random((1, 28,28))
input_img = Input(shape=(28, 28, 1))  # adapt this if using `channels_first` image data format

x = Conv2D(8, (5, 5), activation='relu', padding='same')(input_img)
#x = MaxPooling2D((2, 2), padding='same')(x)
x = Conv2D(4, (3, 3), activation='relu', padding='same')(x)
#x = MaxPooling2D((2, 2), padding='same')(x)
x = Conv2D(2, (3, 3), activation='relu', padding='same')(x)
encoded = Conv2D(1, (3, 3), activation='relu', padding='same')(x)
merge_encoded_w=cv2.merge(encoded,w)
#
#decoder

x = Conv2D(2, (5, 5), activation='relu', padding='same')(merge_encoded_w)
#x = UpSampling2D((2, 2))(x)
x = Conv2D(4, (3, 3), activation='relu', padding='same')(x)
#x = UpSampling2D((2, 2))(x)
x = Conv2D(8, (3, 3), activation='relu',padding='same')(x)
#x = UpSampling2D((2, 2))(x)
decoded = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)

#Extraction phase
decodedWithNois=k.layers.GaussianNoise(0.5)(decoded)
x = Conv2D(8, (5, 5), activation='relu', padding='same')(decodedWithNois)
#x = MaxPooling2D((2, 2), padding='same')(x)
x = Conv2D(4, (3, 3), activation='relu', padding='same')(x)
#x = MaxPooling2D((2, 2), padding='same')(x)
final_image_watermark = Conv2D(2, (3, 3), activation='relu', padding='same')(x)

autoencoder = Model([input_img,w], [decoded,final_image_watermark(2)])
encoder=Model(input_img,encoded)
autoencoder.compile(optimizer='adadelta', loss=['mean_squared_error','mean_squared_error'],metrics=['accuracy'])
(x_train, _), (x_test, _) = mnist.load_data()
x_validation=x_train[1:10000,:,:]
x_train=x_train[10001:60000,:,:]
#
x_train = x_train.astype('float32') / 255.
x_test = x_test.astype('float32') / 255.
x_validation = x_validation.astype('float32') / 255.
x_train = np.reshape(x_train, (len(x_train), 28, 28, 1))  # adapt this if using `channels_first` image data format
x_test = np.reshape(x_test, (len(x_test), 28, 28, 1))  # adapt this if using `channels_first` image data format
x_validation = np.reshape(x_validation, (len(x_validation), 28, 28, 1))  # adapt this if using `channels_first` image data format
autoencoder.fit(x_train, x_train,
                epochs=5,
                batch_size=128,
                shuffle=True,
                validation_data=(x_validation, x_validation),
                callbacks=[TensorBoard(log_dir='/tmp/autoencoder')])

decoded_imgs = autoencoder.predict(x_test)
encoded_imgs=encoder.predict(x_test)

???


release prep: update to latest conventions

Reviewer checklist

[ ] Ensure relevant issues are linked (description should include text like "Fixes #")
[ ] Ensure correct labels applied
[ ] Ensure any appropriate documentation has been added or amended

Coverage remained the same at 97.79% when pulling ea6c0dc074efb5cc6b4d4e8539a482cdf4908b2c on release_prep into 46fcb464fb17720dcfa7ab9bc58ec79844fbde55 on main.


after method compile error, scroll to error

If you compile a method in a browser and there is a compile error, the browser will add text pointing to the spot of the problem.
However, if the compile error is scrolled off the screen, it's difficult to tell what happened. It looks like your method didn't compile. Should scroll the text to show the compile error at minimum. Maybe show an alert or status bar update, too?

Now scroll to show compile error.


ng update did not change my import statements

🐞 Bug report
Command (mark with an x)

- [ ] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [ ] generate
- [ ] add
- [X] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Is this a regression?
No, this behavior did not exist prior to 8.x
Description
ran ng update @angular/cli @angular/core
loadChildren import statements were not updated to new syntax
🔬 Minimal Reproduction
I haven't dug into the migration code, but I have my routes in a app-routing.module.ts file:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

const routes: Routes = [
  {
    path: '',
    pathMatch: 'full',
    loadChildren: './home/home.module#HomeModule',
    data: { depth: 0 },
  },
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule],
})
export class AppRoutingModule {}

🔥 Exception or Error
No error, just old import pattern instead of new.
🌍 Your Environment
I was on Angular 7.2.15 and this was part of the update process to 8.0.0.
Anything else relevant?
I'm wondering if the migration code is targeting a certain file or something else that would have excluded this file from being updated to the new import pattern.
Here's the last bit from the ng update command:
    ** Executing migrations for package '@angular/core' **
            ------ Static Query Migration ------
            With Angular version 8, developers need to
            explicitly specify the timing of ViewChild and
            ContentChild queries. Read more about this here:
            https://v8.angular.io/guide/static-query-migration
            ------------------------------------------------
UPDATE src/app/search/search.component.ts (2049 bytes)

Can you also confirm that you were not using an RC or beta version of Angular CLi?

@alan-agius4 not using an RC or beta.
When I try to manually update the import statements, I'm getting a Typescript error:
Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.ts(1323)
  {
    path: '',
    pathMatch: 'full',
    // loadChildren: './home/home.module#HomeModule',
    loadChildren: () => import('./home/home.module').then(m => m.HomeModule),
    data: { depth: 0 },
  },

https://github.com/Microsoft/TypeScript/issues/16675 seems related here

I see in a newly created v8 project the root tsconfig.json shows the module property set to esnext

Those should have been migrated. We also automatically migrate the module in tsconfig to esnext when the migration runs. So that makes me think the migration didn't run at all, for some reason.

Any chance you can provide a repro of what you see? We test for this update so I'm not sure of what's going wrong.

Sure, do you want me to do like a screen capture or something? Is there a debugging flag?
Here is my repo (pre v8 upgrade): https://github.com/markgoho/glWp

@markgoho the repo link seems to be incorrect as I am getting a 404

Whoops! I had it set to private. Should be good to go now.

I had same issue. Migrated them using https://www.npmjs.com/package/@phenomnomnominal/angular-lazy-routes-fix instead...

We're looking at how update behaves in your project and it's odd. It doesn't seem to be running the right migrations. Looks like it's related to npm hoisting, but unsure.

I'm also getting this bug, Angular Material correctly updated my paths etc but my imports did not upgrade and I had to manually do it myself as well as change my module param in the ts.config

Same problem with loadChildren not automatically updating. Migrations for ViewChildren() happened though.

same problem

not working auto migrate - ViewChildren()
not working auto migrate - router routes

are there any info about the time this will be fixed?

I am also facing same issue

When i am using "ng update @angular/cli @angular/core" command getting below error
Package "codelyzer" has an incompatible peer dependency to "@angular/compiler" (requires ">=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0" (extended), would install "8.0.0").

Just a note that ViewChild() also did not migrate automatically.

A workaround for now is to run the following commands after you are already on Angular and CLI version 8:
ng update @angular/cli --from 7 --to 8 --migrate-only
ng update @angular/core --from 7 --to 8 --migrate-only

Tried that. It said "you're up to date"

@jtsom that's odd, I just ran that in a project that's completely up to date and the migration still happens:
kamik@RED-X1C6 MINGW64 /d/sandbox/memory-debug/awesome-angular-workshop/v8 (v8)
$ ng update @angular/cli --from 7 --to 8 --migrate-only
Using package manager: 'npm'
Collecting installed dependencies...
Found 44 dependencies.
    ** Executing migrations for package '@angular/cli' **
UPDATE package.json (2763 bytes)
UPDATE tslint.json (2991 bytes)
UPDATE tsconfig.json (417 bytes)
UPDATE src/tsconfig.app.json (177 bytes)
UPDATE src/tsconfig.spec.json (219 bytes)
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS><8.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS><8.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\webpack-dev-server\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\@angular\compiler-cli\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

audited 19221 packages in 7.904s
found 3 high severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS><8.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS><8.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\webpack-dev-server\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\@angular\compiler-cli\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

audited 19221 packages in 8.58s
found 3 high severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details

I was also using local<EMAIL_ADDRESS>Might be related.

Tried running:
ng update @angular/cli --from 7 --to 8 --migrate-only
ng update @angular/core --from 7 --to 8 --migrate-only

From the state I got stuck on when I updated the first time and nothing happened. But I restarted the update by resetting my repo to the latest v7 I was on then ran:
ng update @angular/cli
ng update @angular/cli --from 7 --to 8 --migrate-only # this finally updated tsconfigs, lazy imports, polyfills
ng update @angular/core
ng update @angular/cli --from 7 --to 8 --migrate-only # this updated @ViewChild references

So it finally worked for me when I re-did the whole update process again and explicitly calling the --migrate-only commands

The local CLI version needs to be 8.0.2 or greater for the migrate only part to work properly for these cases.

Following worked for me:
ng update @angular/cli --from 7 --to 8 --migrate-only
ng update @angular/core --from 7 --to 8 --migrate-only
ng update @angular/material --from 7 --to 8 --migrate-only

Before above, I tried running:
ng update @angular/cli
ng update @angular/core
ng update @angular/material

But these only updated package.json. Not updated @Viewchild(), loadChildren and material imports.

I found that the following steps should be followed to upgrade from 7 to 8:
yarn Upgrade<EMAIL_ADDRESS># cannot work if still @3.2
git commit
# cannot upgrade if working tree is not clean
ng update @angular/cli @angular/core
# according to documentation, only the above line is needed, but alas no
git commit
# need to clean working tree again
ng update @angular/cli --from 7 --to 8 --migrate-only
# This time, will work.
# updates lazy loading modules, tsconfig.json, targets es2015 and creates the browser.txt file
# you may want to edit the package.json now to include the browser.txt information
git commit
# yet another clean tree for material
ng update @angular/material
git commit
# finally completed.

@alexfung888 I opened https://github.com/StephenFluin/angular-update-guide/issues/35 to track the issue of having to run a lot of git commits. Have you seen any other areas where the docs need to be updated for this?

@alexfung888 I opened StephenFluin/angular-update-guide#35 to track the issue of having to run a lot of git commits. Have you seen any other areas where the docs need to be updated for this?

Actually I can tolerate making lots of git commits, as long as the update guide didn't sound as if none is necessary. More problematic is that on both repositories I tried, the update did not work and I need to do a separate --migrate-only with cli before the files (lazy loading modules, tsconfig.json, targets es2015 and creates the browserlist file) are updated.
And the dependencies were not spelt out. Like I listed in my comment above, you need to manually upgrade typescript and flex-layout for the update to work.

@alan-agius4 @filipesilva I briefly mentioned this in the GDE slack and it very much looks that my issue might be related to this. I created a reproduction repo here: https://github.com/juristr/ngv7upgradetest
If you try to upgrade this repo with ng update @angular/cli @angular/core, the lazy route here
https://github.com/juristr/ngv7upgradetest/blob/177e9dacdb97367657b61e227fdb691fa51be19c/src/app/app-routing-routing.module.ts#L7
..doesn't get upgraded. In fact if you take a look at the output log, the CLI schematics don't seem to be executed at all.
Instead, by trial-and-error I found that for some reason it was due to the @angular/pwa package I was having in my repo. If you remove this line and do the upgrade again, it strangely works.
I'm very

Instead, by trial-and-error I found that for some reason it was due to the @angular/pwa package I was having in my repo. If you remove this line and do the upgrade again, it strangely works.

Ah yes, even with my procedure above, pwa is not updated and I need to manually align it with cli.

@alexfung888 well, it's even less the problem that the @angular/pwa is not updated, but more that if it is present, other migration schematics, like the one of the CLI are note being executed at all. If you remove the @angular/pwa package for a moment and you do the upgrade, then it works.

Just as an additional note. In another project I had the same issue, removed the @angular/pwa there, but the upgrade still didn't happen. Looks like there must be something else still. Also the @angular/core migrations don't seem to have fully completed. After a first successful run, I re-executed them via ng update @angular/core --from 7 --to 8 --migrate-only and got some more @ViewChild(...) transformations 🤔

Unfortunately, there is a defect in the update functionality that was fixed in 8.0.2 that caused the wrong version of the @schematics/angular package to be used when executing migrations if an older version of the package happened to be hoisted to the root by the package manager.  Manually running the migrations in this situation as shown in the comment above this one would indeed be the correct course of action.
This issue was also not limited to the @schematics/angular package but it is the most commonly used and therefore the most likely to exhibit the issue.

Same here: Updating from 7.14 --> 8.10
Update routine did NOT update @ViewChild(), loadChildren and tsconfig.

@mart2k What happens if you re-run the migrations manually afterwards again?
ng update @angular/cli --from 7 --to 8 --migrate-only
ng update @angular/core --from 7 --to 8 --migrate-only

@juristr that worked for me. Thanks to all.
Maybe this should be mentioned in the Angular Update Guide.

I think the issue is you shouldn't have to manually run those migrate-only scripts.

Exactly. Usually this shouldn't be necessary but read this comment: https://github.com/angular/angular-cli/issues/14589#issuecomment-508149437

Updating to Angular 8.1.2 right now and had the same behaviour.
Re-running the commands as @juristr said worked just fine.

Thanks for reporting this issue. This issue is now obsolete due to changes in the recent releases. Please update to the most recent Angular CLI version.
If the problem persists after upgrading, please open a new issue, provide a simple repository reproducing the problem, and describe the difference between the expected and current behavior.


template: Return requireshvm key in list template response

Added requireshvm key in the response of list template API.
Fixes #2821

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-2370

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-3110)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 30046 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr2921-t3110-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_multipleips_per_nic.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Intermittent failure detected: /marvin/tests/smoke/test_host_maintenance.py
Smoke tests completed. 67 look OK, 2 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_nic_secondaryip_add_remove
Error
43.37
test_multipleips_per_nic.py

test_04_rvpc_network_garbage_collector_nics
Failure
274.37
test_vpc_redundant.py


WIP : java17

Summary of Changes
Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Public API Additions/Changes
Please include a description of any new or modified publicly available classes and/or methods (if applicable).
Downstream Consumer Impact
Please include a description of how downstream consumers will be affected (breaking changes, bug fixes, internal behavior modification, etc.). If this PR introduces breaking changes please list out each of the breaking changes, as well as steps for migrating incompatible code.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my code
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works

Would you mind updating all of the PR description sections?

Would you mind updating all of the PR description sections?

Yes!

This is demo.

done


New casks should use livecheck.

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew typecheck with your changes locally?
[x] Have you successfully run brew tests with your changes locally?

Eventually all appcasts should be replaced by livecheck.

Review period will end on 2021-03-23 at 00:00:00 UTC.

Maybe we should also make existing appcasts a warning to encourage contributors to update them to livechecks.

Maybe we should also make existing appcasts a warning to encourage contributors to update them to livechecks.

This makes sense to me. Also/alternatively:

add a commented-out odeprecated so we deprecate these next major/minor release
add an audit with an allowlist so this list can be burned down over time

Review period ended.

We can't really deprecate appcast until all are migrated to livecheck.


Finalize cluster autoscaling v0

Current implementation is mostly working (not completely), but is not documented (existing documentation is very obsolete).

[x] Finalize mechanics (depends on #22, also logs should be separated in many containers in addition to data)
[ ] Update docs with examples of deploying using Docker Swam Mode (preferably on Docker Machine using VirtualBox, bonus point for making screencast 👍)

Currently depends on https://github.com/docker/docker/issues/31157


[FEATURE] AutoWhisperUnicode

Is your feature request related to a problem? Please describe.
This feature goes along with my AntiChatLag feature request. (https://github.com/3arthqu4ke/3arthh4ck/issues/335) But, I am always mad that I am fighting someone, and they whisper me tons of unicode which freezes my game, which then causes a freeze/lag making my AutoTotem fail.
Describe the solution you'd like
The client should note that when you pop someone, note the username, and automatically whisper them tons of junk unicode configurable via a .txt file in the 3arthh4ck/util folder.
Describe alternatives you've considered
Manually whispering the text, but that would also lag me out aswell.
Additional context
The message would look somewhat like this:
অআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌঅআইঈউঊঋঌ

that is what the message looks like

I know that there is this, poplag in the chat section, when a player pops, he sends a pop message, but if we can spam when we want, the man's game can freeze a lot. but it makes sense

@shasdfasdqw, yes, I have just fould the pop lag, thank you!


Treat mouse events as optional

Small enhancement that leverages the language + JSX transform to make the onMouse* props really optional. This allows to remove the noop from NodeEvents but more importantly it avoids to perform all those noop calls for elements that don't set any event listeners, which removes some overhead (not sure really how much impact it would have in performance, but every little step counts! 😄 ).
From the users / API perspective, nothing changes (i.e. they can still pass raw callbacks to onMouse* props without the need to wrap these callbacks with Some).

Small enhancement that leverages the language + JSX transform to make the onMouse* props really optional.

Excellent! I like how this reduces the verbosity at the primitive level.  I didn't know you could do this sort of destructuring in pattern matching, either:
      switch (evt, _this#getEvents()) {
      | (MouseDown(c), {onMouseDown: Some(cb), _}) => cb(c)

That's handy!

This allows to remove the noop from NodeEvents but more importantly it avoids to perform all those noop calls for elements that don't set any event listeners, which removes some overhead (not sure really how much impact it would have in performance, but every little step counts! 😄 ).

Appreciate you removing this - no need for unnecessary overhead! 👍
I just had one question that I put inline - but otherwise change looks great to me.


Multi-clipboard feature

As a user, I want a clipboard that can store multiples values of text that I can call up and insert with a single keypress.

The clipboard is project specific
[x] Create #clipboard as attribute of project_member
[x] The clip board can be called up with a right side slide out, with text editable in that slideout
[x] Each slot in the clipboard can be accessed with a ctrl combination (like ctrl-1, ctrl-2)
[ ] A button lets you clear the cliboard in slide-out edit mode
[x] A button lets you slide out the clipboard as a reference

Closing now, other features can come with feedback.


feat: canonicalize base array if taking large number of indices

related to #1032

the benchmarks indicate that this makes nothing better and lots of things (all of TPC-H, many compress/decompress times 20-30% worse
https://github.com/spiraldb/vortex/actions/runs/11351490230


layout foundation

@jiwalker-usgs A quick and simple html foundation that can adapt hopefully to everything you guys want to do

anything we want to do @mwernimont .


this some kind of joke?

When I run cap deploy
RAILS_ENV=production RAILS_GROUPS=assets bundle exec rake assets:precompile

takes ~17 minutes.
Per your README I added
group :assets do
  gem 'turbo-sprockets-rails3'
end

to my Gemfile and ran bundle install.
When I cap deploy again there is no speed up, it still right at ~17 minutes.
Doesn't seem to do anything as far as I can tell.
Also, rake assets:clean_expired doesn't exist.
Thanks for wasting an hour of my time.

+1 Same issue. It seems sources_manifest.yml always created in the release folder after assets:precompile.

@streetlogics thanks. Your solution works.


Bulk save functionality (setItems method) + other minor fixes

No new tests, existing tests work

Awesome library! I'd like to use setItems for my application, it would make localforage really complete! In fact there is no way to insert a big number of fields (without waiting several minutes) at the moment. keep going! :))

@nemn the "several minutes waiting" problem is fixed in https://github.com/mozilla/localForage/pull/320 - you can actually build that branch from source if you want to help us alpha-test it!

will it be considered?

Are we getting this or equivalent awesomeness soon?

@Elephant-Vessel there is an equivalent plugin available. You may want to take a look at localForage-extensions.

any update?

no, the project is no longer maintained, sorry