feat(builder): add support for @remarks tag

PR Checklist
Please check if your PR fulfills the following requirements:

[ ] Tests for the changes have been added (for bug fixes/features)
[ ] Docs have been added/updated (for bug fixes/features)

PR Type
What kind of change does this PR introduce?

[x] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build related changes
[ ] CI-related changes
[ ] Documentation content changes
[ ] Other... Please describe:

Issue Number

Issue Number: #218
Resolves #218
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

There can also be remarks in the description of property, method, method overload which, I believe, will not be visible with this solution, I'll add support for these templates too.

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

v18.2.0
GitHub release

Your semantic-release bot :package::rocket:


updating contributing.me with my details.

updating contributing.me with my details

Hey @Raju6302 ! Can you do something more so that it will benefit the repo?


Feat(#44) add re export support

What has been added?

All components are exported asynchronously in the components/index.ts folder.
Solutions for possible problems that may occur with asynchronous loading are included in the components/index.ts file

What has changed?

all application wide imports are replaced according to path aliases and re-export

LGTM!


Provide FlatMap and FlatMapTuple for Python 3 users.

These are like Map and FlatMap but expand out tuple input elements across
several arguments.  This will be useful as tuple argument unpacking has been
removed in Python 3.  Instead of having to convert
Map(lambda (k, v): expresion(k, v))

into
Map(lambda k_v: expression(k_v[0], k_v[1]))

one can now write
MapTuple(lambda k, v: expression(k, v))

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

R: @tvalentyn I was reminded yesterday of a complaint someone had about migrating to Python 3. Here's a potential solution, let me know what you think. (It'd be good to get this into 2.15 if you think it'd be helpful.)

nit: s/FlatMap/MapTuple in PR title and add a JIRA.


[Feature] Priority Support for rayJob

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
Currently, rayJob has no priority class field, but this is important for Job queueing system when enqueueing, e.g. kueue community here https://github.com/kubernetes-sigs/kueue/pull/667#discussion_r1197996509, what I found we can do today is

query the annotation ray.io/priority-class-name as volcano does
use the headGroup's pod priority as rayJob's priority for workerGroups start after headGroup

Or we can add a new priorityClass filed to rayJob and populate it to headGroup and workerGroups.
Use case
Priority is important for Job queueing system.
Related issues
No response
Are you willing to submit a PR?

[X] Yes I am willing to submit a PR!

cc @architkulkarni

@andrewsykim is working on https://github.com/ray-project/ray/pull/42903, and this issue is tracked by #1890. Close this issue.


Write instructions to setup the project

Write instructions to setup the project to give people the possibility to develop on their local machines.

Closed with a43dee68eb08e6ecd39684a4c31e1654bd3d6e2f


XLInternalError "Path does not exist in zip archive (xl/xl/worksheets/sheet1.xml"

I get this error when trying to open an xlsx file with the current commit of OpenXLSX. It did not happen with a version from june 2024, and the file also opens fine in Excel. The xlsx file is attached
	XLDocument doc;
	doc.open(std::string(file_name));

	auto wb = doc.workbook();
	auto n_tabs = wb.sheetCount();

	for(uint16_t tab = 1; tab <= n_tabs; ++tab) {

		try {
			auto basesheet = wb.sheet(tab);
			if(!basesheet.isType<XLWorksheet>())
				continue;

			auto sheet = basesheet.get<XLWorksheet>();

			//read_series_data_from_sheet(data_set, series, file_name, sheet, doc, tab);

		} catch (XLInternalError err) {
			//log_print("WARNING: In file ", file_name, " Unable to open sheet: ", err.what(), "\n");
			std::cout << "Unable to open sheet" << err.what();
			continue;
		}
	}

I encountered the same error both on Windows and Linux
101_inputs.xlsx

Sorry about that, this is a side effect of https://github.com/troldal/OpenXLSX/commit/06453c0734781ee4893d256c550f550ae5f9fbba#diff-5e5f69e09f37b0db26e52c1545c003fbbdf544cbdcc537bb1f26c2f999beb489R333 - it's an easy fix except I am trying to remember why I introduced this change (it was to support some other document which had inconsistent document relationship paths, but I do not remember which issue this was), before I fix it - in order to ideally fix it in a way that doesn't break anything else.

Duplicate of #297

I just realized I have an open issue for this where I had a question back that never got answered. Thank you for providing the example file which allowed me to track down the actual bug & confirm the other issue.

Should be solved in the development-aral branch with https://github.com/troldal/OpenXLSX/commit/5dfa70a6e462cdaf6efe7758dde0957b3cab3970

Thank you for the quick reply!
If it is interesting, this was happening with xlsx files that were created using a pandas.ExcelWriter from the pandas python package.

Yes, thank you - that helps to confirm it's a duplicate of #297 - the author also mentioned the same library. I had adjusted the workbook relationships in the past to accept absolute paths to a worksheet, but broke it with the update on 29 July - I think I have it fixed properly now in a way that also allows global document relationships (in _rels/.rels) to begin with a leading slash or omit it (which seems to be the standard).

I can confirm that this fixed my problem

Glad to hear - I will close this issue when merging the patch into the main branch.

Patch has been merged into main branch. Closing as resolved.


Add a new OpenCage provider

Add the geocoder https://geocoder.opencagedata.com as a provider
Fixes: https://github.com/jonataswalker/ol-geocoder/issues/24

OK. I've done that

Please, bring back your changes to README.


WIP - Overhauled groovy utility

Overview
Initial restructured approach built on top of #3246 but not ready yet. Still works and has some early improvements but I'm still working on it. Pushing to GitHub in part so I can switch local workspace easily, it might be cool to see update-all hit 140ish modules in one go but that's not necessarily ideal for testing ... :D
I'm using frequent commits to be able to highlight the changes better. The overall diff will be about as hard to read as the related all-at-once PRs as entire files change, get moved/renamed, etc, but look at the individual commits for clean diffs of very specific changes
As of this initial state everything should roughly work as with #3246 with some bug fixes. I mostly just restructured things and cut out the duplication in the type scripts. Currently they just hold a dummy method to prove the concept, next up I aim to make the common script seek type-specific updates by calling into those scripts
Execution entry has changed to where groovyw itself is hard coded to target the new util.groovy which then enters the functions.groovy class where it dynamically picks the type-specific script the user indicated, or advises if that didn't work. This way new scripts can be added very easily. It may even make sense to include an interface the type scripts must implement. Gasp, could unit tests be next?!?
All script files are now in config/groovy with only the wrapper scripts living in the root, so that's one less file to add clutter than before. Later on in my pending Gradle overhaul the config and templates also get consumed and end up under gradle for even less clutter, but that's for another day.
Impact
When this is complete and merged the impact:

Closes #3099 - the current issue requesting improvements
Closes #3246 - this PR is built directly on top of that one
Closes #3206 - includes / supersedes those changes
Closes #3191 - same
Closes #3176 - same
Closes #3189 - same
Should lead to updates that include https://github.com/MovingBlocks/DestinationSol/pull/242 and a separate PR to update the setup for DestSol

May be of interest to @digitalripperynr @mjuvekar7 @MaxBorsch and anybody else who enjoys utilities and logistics. Just keep in mind it isn't quite complete yet!
I've tried to write this PR as a solid example of how to do PRs well, to go in line with the new page https://github.com/MovingBlocks/Terasology/wiki/How-to-Work-on-a-PR-Efficiently in the wiki - feedback for that page and how this PR (and others) could be improved in general is also welcome
How to test
Grab the changes and do command line things that start with groovyw - there is usage text to help educate the user and a bunch of validation that tries to catch unexpected input! You may want to use a throwaway workspace as the commands can heavily affect what sort of stuff is present in your workspace.

Uh oh, something went wrong with the build. Need to check on that

Hooray Jenkins reported success with all tests good!

Glad to see that this is being worked on.

Hooray Jenkins reported success with all tests good!

Have added more commits with several more ready locally and one interesting thought came to mind: I'm ending up with a template file check that could run for both retrievals of existing modules (example: modules get checked for the presence of a module.txt and if missing gets a placeholder with a warning logged for the user) as well as creation of new things (current behavior)
This means modules, facades, anything really that drifts out of alignment with current templating goals would get some potential attention when retrieved. A sort of "Hey did you know it looks like this thing is missing? Might want to look into that" sort of thing. One of the main new additions to that may be a template module readme, that could thus slowly trickle out to existing modules rather than us spam-push to every single known place needing it in one go
Of course that could also get annoying if something has a reason to violate standards. But, really, wouldn't that indicate an issue with the standard? 🤔 💭

Hooray Jenkins reported success with all tests good!

Happy with it for now :-) Added an edit to the top post (the stuff before "Overview")
Would appreciate some testing and feedback. May still add new functions and tweak here and there but the restructuring / overhaul / refactoring bits are done for now so that would complete this PR and the linked issues/PRs.
Aiming to merge soon if no major issues are found so we can shove this into DestSol as well, pick up the module listing from there, and then I can rebase my Gradle overhaul on top of this.

Are you talking about my module listing PR ?
Is that fine or needs some work ?

Hooray Jenkins reported success with all tests good!

@digitalripperynr I'm going to add in https://github.com/MovingBlocks/DestinationSol/pull/242 to this batch of changes, then push all of it (well, all that makes sense) back to DestSol so both places will be at the same level :-)

Okay, last new bit of functionality for this PR is in. At least I think I'm finally done but every time I do stuff I get more ideas ... :p
https://github.com/MovingBlocks/DestinationSol/pull/242 has been manually merged in on the Terasology side of things, then given the same overhaul to make it generic and support all 4 current types of items. So for instance you can now do:

groovyw module list -> gets you the Terasology modules available in a list (but wait! Not actually all of them as we have more than the max page size for the GitHub API allows ... boo. Separate improvement issue coming)
groovyw lib list -> gets you the Terasology specific libs that are considered compatible for embedding in a mega-workspace. Currently I've set that to be TeraBullet, TeraMath, and the CrashReporter by adding  "Automation category: Terasology Library" to their repo description, which is handily available in the same API results

Should be able to apply all this to DestSol as well. I figured the repo description trick was the easiest to sort out the less obvious items for libs and facades, while modules and meta modules are already sorted via GitHub org (minus an occasional exclusion or two)

Hooray Jenkins reported success with all tests good!

One more thing! As the prior commit details.
A welcome observation as I tweak and change: I am getting increasingly uncomfortable doing all this without having a bunch of unit tests watching my back. I can almost feel @oniatus' heart growing by two sizes as I think and type this :-)

Hooray Jenkins reported success with all tests good!

The usage details contains an example which has wrong syntax.
groovyw list libs --> groovyw libs list
Please fix. Everything else looks fine.

Hooray Jenkins reported success with all tests good!

Fixed example and merged, thanks all :-)
Now to clean up all the related stuff and go apply it to DestSol as well sometime yay!


switch to use github4 instead of github

This should address problems with proxies reported in #142.

Based on my testing, all tests passing and the feedback in https://github.com/Hackafe/atom-sync-settings/issues/142#issuecomment-171420735 I will go ahead and merge this.


⚠ Bofrost.fr has degraded performance

In 6d9dd91, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1689 ms

Resolved: Bofrost.fr performance has improved in 29211d3 after 14 minutes.


Require guzzlehttp/psr7 ^2

The upgrade to embed/embed v4 uncovered the need to only allow recent versions of guzzlehttp/guzzle
ACs

[ ] Update framework composer.json to require guzzlehttp/psr7 ^2
[ ] Update 4.11 changelog
[ ] Update ckan-registry to use guzzlehttp/guzzle ^7
[ ] Update frameworktest to use guzzlehttp/guzzle ^7

References

6 to 7 upgrade notes

PRs

[x] https://github.com/silverstripe/silverstripe-framework/pull/10254
[x] https://github.com/silverstripe/silverstripe-assets/pull/481
[ ] https://github.com/silverstripe/silverstripe-ckan-registry/pull/263
[ ] https://github.com/silverstripe/silverstripe-frameworktest/pull/100

guzzlehttp/guzzle is not required by embed/embed v4
guzzlehttp/psr7 ^2 is supported by embed/embed v4, though not a composer required.  A few other psr7 implementation are supported by embed/embed b4 https://github.com/oscarotero/Embed/blob/master/src%2FHttp%2FFactoryDiscovery.php#L15
silverstripe/assets requires intervention/image https://github.com/silverstripe/silverstripe-assets/blob/1/composer.json#L26
intervention/image requires guzzlehttp/psr7 ~1.1 || ^2.0 https://github.com/Intervention/image/blob/master/composer.json#L17
guzzlehttp/guzzle ^6, and 7.0.0 < 7.3.0  will require guzzlehttp/psr7 ^1.6.1 https://github.com/guzzle/guzzle/blob/6.5/composer.json#L28
guzzlehttp/guzzle ^7.3.0 requires guzzlehttp/psr7 ^1.8.1 || ^2.1 https://github.com/guzzle/guzzle/blob/master/composer.json#L57

I think we need to update silverstripe/webauthn-authenticator as well because it relies on guzzlehttp/psr7.

I merged what I could. But I would like to get this in an installable state so I can make sure ckan and webauth work with the newer version of Guzzle.

The parts that were blocking the embed upgrade have been resolved.

All done.


Fatal error on startup - DB bug

32bit version will not launch and produces a fatal error:
Cannot open the DB file: QSqlError("","Driver not loaded","Driver not loaded")
Happens both when running from a fresh folder and with an old SkauTan.sqlite file present.

Most likely a problem with static linking of Qt...


Minor html changes

As per subject. All really minor.
Initially the missing </head> was the only thing I added, but then I noticed some other things as well. Only 64030e6 is really 'important', the rest is up to you.
If you agree with all changes, I can squash some of them if desired.

O and I don't know whether the charset declaration is really correct: I haven't tested with non-English systems.

Good catch on the missing </head> tag. That's what I get for squashing it all into one line quickly.
RE: encoding, I think we should specify utf-8 over iso-8859-1. Do you mind making the change, then I will accept the PR.
Also RE: KUnit itself, are you using it for any projects? I haven't added anything new to this project in a while, but I did use it with some success not too long ago on a pretty complex KAREL program.

RE: encoding, I think we should specify utf-8 over iso-8859-1. Do you mind making the change, then I will accept the PR.

Yeah, I figured UTF-8 might make sense, but wasn't too sure about Fanuc actually sticking to it (and not use some weird extended ascii mashup). I'll change it though.

Also RE: KUnit itself, are you using it for any projects? I haven't added anything new to this project in a while, but I did use it with some success not too long ago on a pretty complex KAREL program.

Yes, I'm currently using it in a project. Have some more stuff I'll PR as well. Thanks for putting it together.

Just checked and Fanuc claims
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">

when loading any pages from an English controller.
The server itself does not return any headers. I guess that makes it safe to claim utf-8 in pages that are under our (KUnit's) control.

@unreal: updated. Would you like some of this squashed?

@unreal: updated. Would you like some of this squashed?
Great, thanks! I don't mind the extra commits -- merged.

Yes, I'm currently using it in a project. Have some more stuff I'll PR as well.
Awesome. Looking forward to seeing it. I'm actually beginning a possibly intense KAREL project using the standard Forms/Dictionaries. I'm sure I'll find some things to add too.


prune options doesn't works

Hi,
I found this project very useful, I'm trying to perform some test, but I think that something is not working with prune options.
In my .sar.conf file, I have:
keep-hourly = 1
keep-daily = 7
keep-weekly = 4
keep-monthly = 12
keep-yearly = 5

when I run, sar backup I see:
Prune in src/.saf.conf, [TEST] ==> dst

Backup in src/.saf.conf, [TEST] ==> dst

created directory dst/in-progress

In dst folder I see a lot of subdirectories, but from config point of view, I should found only one for the specific hour. This is what I see in dst folder:
2023-08-19-134552  2023-08-19-144911  2023-08-19-145208  2023-08-19-145233  2023-08-19-145258  2023-08-19-145316  2023-08-19-145325  2023-08-19-145335  2023-08-19-145458  2023-08-19-145540
2023-08-19-134615  2023-08-19-145019  2023-08-19-145226  2023-08-19-145235  2023-08-19-145300  2023-08-19-145317  2023-08-19-145327  2023-08-19-145339  2023-08-19-145530  2023-08-19-145542
2023-08-19-134643  2023-08-19-145203  2023-08-19-145227  2023-08-19-145236  2023-08-19-145302  2023-08-19-145319  2023-08-19-145329  2023-08-19-145343  2023-08-19-145533  2023-08-19-145545
2023-08-19-134648  2023-08-19-145205  2023-08-19-145228  2023-08-19-145240  2023-08-19-145304  2023-08-19-145321  2023-08-19-145331  2023-08-19-145346  2023-08-19-145536  backup.marker
2023-08-19-144804  2023-08-19-145206  2023-08-19-145229  2023-08-19-145250  2023-08-19-145306  2023-08-19-145323  2023-08-19-145333  2023-08-19-145455  2023-08-19-145538

Am I running something wrong?

keep-hourly = 1
keep-daily = 7
keep-weekly = 4
keep-monthly = 12
keep-yearly = 5

Please note that all the parameters are in days, so keep-weekly , keep-monthly, and  keep-yearly  should be in days too. All the backups listed above seem to done be within one hour, so no prune could kick in.
It would be smart to add additional check that lower prune criteria doesn't contain period in days lower than higher prune criteria (meaning that keep-monthly value is always lower than keep-yearly and so on), so I'll add that soon.
In your example, since everything is in days, criteria should be something like
keep-hourly = 1
keep-daily = 7
keep-weekly = 30
keep-monthly = 365
keep-yearly = 1825

but each criteria to prune anything would require that backup folder name (date) falls behind date period.

keep-hourly = 1 (meaning keep everything for 1 day)
keep-daily = 7 (meaning keep daily backups for 7 days, one for each day)
keep-weekly = 30 (meaning keep weekly backups for 30 days, one for each week)
keep-monthly = 365 (meaning keep monthly backups for a year, one for each month)
keep-yearly = 1825 (meaning keep yearly backups for 5 years, one for each year)

I just added sanity check for prune criteria, which will stop with error if any keep-* value is below minimal value that makes sense or if values overlap. Please pull and try.
I'll close this issue but feel free to reopen it if it is not clear.

Hi,
thanks for fast reply :)
So keep-hourly is always related to DAYS, right?
I think that this created confusion, because I was referring to “keep” parameters like borg/restic systems.

Yes, sorry, all keep-* parameters are in days, I'll improve documentation.

Also, keep-hourly is bit misleading since it actually means 'keep all', but since most backups of this kind run hourly in cron or similar, from one angle 'hourly' is the correct term.

I think that it should be considered as a simple number, instead of "days" and use that number to refer to the right unit like:

keep-hourly   -> number of hourly archives to keep
keep-daily    -> number of daily archives to keep
keep-weekly   -> number of weekly archives to keep
keep-monthly  -> number of monthly archives to keep
keep-yearly   -> number of yearly archives to keep

like borgbackup/restic
They're using the same parameters (and this is why is a little bit confusing on this)

saf backups are not making any difference between daily, weekly, or monthly, they all have the same format for folder names that keep date and time of creation. Same backup you created today will be day old in a day, week old in a week and so on, this way falling into one of the brackets for prune logic. Please see saf list output, or rather check it in couple of days, it will be clearer then. Since you can create ten backups in ten minutes, if you specify number of backups to keep that would prune all the others which is a bad idea.
If you have regular hourly backup (remember backup is backup, it will slide down the time but there is no such thing as 'monthly' backup), and want to keep about 50 of them, isn't that similar to specifying 2 days before purging hourly?
Give it few days to see how backups slide back in time (use saf list often) then it will make all the sense.

you can create ten backups in ten minutes, if you specify number of backups to keep that would prune all the others which is a bad idea.

Really, this is the idea! Every backup system works like this, and it's correct that if you specify keep-hourly = 1 and you run 10 backup in that 60 min, it will leave only the latest. It's the expected behavior.

If you have regular hourly backup (remember backup is backup, it will slide down the time but there is no such thing as 'monthly' backup), and want to keep about 50 of them, isn't that similar to specifying 2 days before purging hourly?

Yes, at the end is the same, but it's tricky if all around the world the standard works in another way.

Give it few days to see how backups slide back in time (use saf list often) then it will make all the sense.

Ok, but the main issue starts with “hourly” parameter…as I said, if I run 10 times a backup in an hour and I have all the versions in my destination.
The day after, when you push a new backup, the prune process will keep all the 10 backups for 7 days. This is not correct because you want to keep “one daily backup only” (also if you executed it several times, for testing it for example)

Sorry, no, that's the wrong way and not the industry standard. If you create 10 backups in 10 minutes that's because you are experimenting or want to keep something between changes, and that definitely should not kill previous backups.
Industry standard goes the both ways at best, for backups that differentiate daily/weekly/monthly it may make sense, for backups that don't (and there is lots of them) if you make multiple quick backups you want to keep them, or wait for prune to pick them up after some days, or manually delete them.
Backups are hardlinked and taking very little space anyway, see saf realsizes.

As a illustration:
https://github.com/laurent22/rsync-time-backup#backup-expiration-logic

I completely agree with the space efficiency, but I can link also documentation that explain what I want to tell:

https://borgbackup.readthedocs.io/en/stable/usage/prune.html
https://restic.readthedocs.io/en/stable/060_forget.html#removing-snapshots-according-to-a-policy

for sure, you need to be careful, prune is a potentially dangerous command, it will remove backup archives.
For sure, if you don't want to remove, you'll set up the right parameter for your setup, but this can't be the “general case” IMHO.

I understand the logic but most or all of the Apple time machine like programs, including Apple time machine, follow the logic of sliding backups that got pruned with time difference. Borg is completely different snapshot tool, I use it too, but its logic is not fully applicable to rsync-based or harlinked backups. I could link tens of tools more similar to saf that follow the date expiration logic.
I still think that you need to see saf list in a few days, preferably in a month. There is no such concept as daily/hourly/weekly/monthly/yearly backups in saf. Each backup is any of them if enough time passes.

I still think that you need to see saf list in a few days, preferably in a month. There is no such concept as daily/hourly/weekly/monthly/yearly backups in saf. Each backup is any of them if enough time passes.

I think that we're confusing using “time based retention policy parameters” like “number based retention policy”
Also new checks that you added in the latest commit, are forcing a policy that you're considering right, but users don't.
e.g.
I want to keep only the latest backup on a hetzner storage box because i don't want to version on cloud system, but I want to keep only the “live data”.
This is not possible at the moment (.saf.conf [T1] error: keep-weekly must be at least 7 days), and I think that a tool should act as the user prefer and not like the programmer wants.

I want to keep only the latest backup on a hetzner storage box because i don't want to version on cloud system, but I want to keep only the “live data”.

You don't need any backup solution for this, create one line script that rsync-s your data to single folder on Hetzner? Rsync with --delete flag to single location is exactly what you need to cover that case.

Really?
So you created a tool for what? Do only what you want that people should do?
About my example, and not only, I really don't need your tool, I have a big choice and a lot of solutions already in place… I like the idea to have a configuration file for rsync and the possibility to version, and I was giving a try…but really no new stuff under the sun. So, if for you, suggestions are not useful… I wish you all the best with your development. :+1:

Sigh. There is nothing to fix for anybody that needs proper backup and not a toy. Significant time spent trying to reasonably explain rationale is wasted. Oh well.


Integrate Zenodo DOI reservation into ETL process

Zenodo provides a RESTful API for interaction with their repository, which allows you to reserve a DOI before uploading a resource. We can use this feature to embed the DOI of a data package inside the package before uploading it.
They also provide a sandbox DOI minter for testing, and maybe we can use that when we aren't actually publishing a package, just to make sure that everything is working.
In the ETL process, we could have several options:

Reserve no DOI, and leave the id field of all the generated data packages blank.
Reserve a sandbox DOI for testing purposes and populate the id field.
Reserve a real DOI for release purposes, and populate the id field.

Alternatively, we could not insert a DOI into the id field of the data packages unless we are actually creating a data release -- in which case we would stamp the DOI into the existing data package metadata after the fact -- the release script would obtain the DOI, and edit each package's datapackage.json before uploading the package to Zenodo.
Which of these approaches seems better?

This is my favorite scenario:

Alternatively, we could not insert a DOI into the id field of the data packages unless we are actually creating a data release -- in which case we would stamp the DOI into the existing data package metadata after the fact -- the release script would obtain the DOI, and edit each package's datapackage.json before uploading the package to Zenodo.


Adding more downloader tasks

Adding:

Downloaded: abductive_nli, swag, qamr, qasrl, scitail
NLP: socialiqa

Minor refactoring of download script to support more downloaded tasks.

Don't merge until after meeting tomorrow.

Agreed, I can see that being a future improvement (along with shifting the evaluation logic as well)


Progress Table Refresh

The table does not refresh when changing units.

Fixed in sandbox version (mobilecsp-201608).  Waiting to push to live site.


A lot of improvements.

I know, that you will not agree with that, so, I created separate fork for developing it. Sorry, for that. If you wish, connect with me

Hi @Razzwan
What is the main idea of your improvements?
You added isVersionAtLeast as a hook, and Tma loader.
Can you use isVersionAtLeast directly from useWebApp() hook?

Hi @Razzwan What is the main idea of your improvements?

Main idea is add TmaLoader

You added isVersionAtLeast as a hook, and Tma loader.

Can you use isVersionAtLeast directly from useWebApp() hook?

For sure. But it works incorrectly. Differently with numbers and with string version number. That's why I added this hook.
There are two main reasons:

Find the project, where I can be not only one mainteiner
Add TmaLoader to simplify application start and be able support two version: Simple Web Application and Telegram Web Application

I am suggesting

Create an organization responsible for this package
Add joint ownership of this organization to more than one person
Jointly support and develop this project for a long time

Hi @Razzwan! Thank you for the activity!
I am closing this request for several reasons

Some components and hooks are not related to the basic goals of the project. Of course, they can be convenient for any project, but you can always do this as a custom component in your project.
No need to change basic project settings such as styling settings and branch names unless really necessary https://github.com/vkruglikov/react-telegram-web-app/pull/48/files#diff-87db21a973eed4fef5f32b267aa60fcee5cbdf03c67fafdc2a9b553bb0b15f34R6

Thank you very much for your desire to make the project better, please follow the instructions and first discuss all changes in the discussion section
https://github.com/vkruglikov/react-telegram-web-app/discussions/49#discussioncomment-7563305


Move closure compilation to its own script

LG, you can merge this when travis is green if I don't get to it first.

ARGH. Travis is having issues. Builds are taking forever.


Added blogpost: 🐫(CAML) Query: What is it

Category

[ ] Content fix
[x] New article

Related issues
None
Contents of the Pull Request
This is a post going over the basics of CAML query and why it might still be relevant in todays world, despite it's XML structure that us younglings hate so very much, covering some great tools to help you write CAML easily, and some of the things that make CAML better then it's alternatives like SP REST.
Twitter teaser could be something along the lines of

Query your SharePoint lists efficiently to not only improve performance, but also improve your user experience with CAML query 🔎

Note: I've not yet published the post that's set as canonicalUrl, I'll do so if/when this PR is approved and the post goes up

great post @Tanddant  - thanks for contributing! I only made minor formatting changes. PR is merged, site is building again.

Thanks @LuiseFreese - great couple of markdown ticks I didn't know! 😎
And thanks for spotting my typos! 😊


Various Pages Out of Date on JSHint.com

Just a heads up that the domain (JSHint.com) needs a current sync from the Github repo for September/October. Docs, About, Install pages, etc. are missing some updates vs. the source code on the repo.

This is controlled in the website repository. Should be good, now.


Lab >=13.0.3 compatibility

Hi,
I just opened an issue on lab when I updated above 13.0.2: Lab #702
Your generator is still using Lab v11.x.x but I thought you might have an idea.

Nice. Thanks for opening an issue. Feel free to open a PR.


add an option to change input-icon

cater for Vuetify stack that uses custom icons.

ahh, you are right, will make the changes. thanks

Thanks so much! :)


License question

Seeing this fine app is fully FOSS (no non-free dependency as far as my library scanner told me, mostly thanks to #15) I wonder if it's also F/LOSS, meaning "libre" – that is, standing under a libre license. I've searched the repository, but could not find any declared. Mayb you just forgot to include it? Which license might it be?

Thanks a lot! Now I just wonder why the APK at tag v2.0 identifies as
package: name='com.example.pancake' versionCode='2001' versionName='1.0.0'

Is it the correct APK? (Digging in…) Oh, or did you just forget to adjust the version? :flushed:
And, cautious question: Would it be possible to have a foss flavor without Firebase & GMS? :pray:


pull request for e2e test at 01/05/2017 16:26:12

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


:: marker { content: ""; } prevents list-styling

The following code from lines 69-72:
/* remove default dot (•) sign */
/* ::marker {
  content: "";
} */

overrides list-style on all ul and ol elements, preventing the use of list-styling entirely.
This can be fixed by the user by resetting ::marker via ::marker { content: initial } for the li in question, but some users might not be accustomed to using ::marker to style their lists, and so might not realize what is going wrong. (It's me. I am 'some users'.)
If this is intended, maybe the comment on this section could be updated for clarity.

Yes, this is correct in the case of this CSS Reset. Updated in the new version 1.8.3
Thanks for the follow-up :-)


«File | Open File ...» does not work when there is no window opened

Prerequisites

[X] Put an X between the brackets on this line if you have done all of the following:

Reproduced the problem in Safe Mode: http://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
Followed all applicable steps in the debugging guide: http://flight-manual.atom.io/hacking-atom/sections/debugging/
Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
Checked that your issue isn't already filed: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aatom
Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages

Description
Cannot open a file when there is no window opened.
Steps to Reproduce

Open Atom
Close All Windows
Click on «File | Open File...» (or use the keyboard shortcut, "CMD+O" for me)

Expected behavior: The Open dialog appears
Actual behavior: Nothing actually happens
Reproduces how often: 100% when there is no window opened, 0% when at least one window is already opened
Versions
macOS Sierra Version 10.12.6 (16G29)
atom --version
Atom    : 1.20.1
Electron: 1.6.9
Chrome  : 56.0.2924.87
Node    : 7.4.0
apm --version
apm  1.18.4
npm  3.10.10
node 6.9.5 x64
python 2.7.10
git 2.8.1

Thanks for taking the time to contribute!
We noticed that this is a duplicate of #12508. You may want to subscribe there for updates.
Because we treat our issues list as the Atom team's backlog, we close duplicates to focus our work and not have to touch the same chunk of code for the same reason multiple times. This is also why we may mark something as duplicate that isn't an exact duplicate but is closely related.
For information on how to use GitHub's search feature to find out if something is a duplicate before filing, see the How Can I Contribute? section of the Atom CONTRIBUTING guide.

It's weird i didn't find this issue using this search :
https://github.com/atom/atom/issues?utf8=✓&q=is%3Aissue is%3Aopen file open window dialog
Anyway, thank you for your response :)
I subscribed to issue #12508.


compound token resolver

Research How to handle assets borrowed by users from Compound.
Here's the borrowBalance function: https://compound.finance/docs/ctokens#borrow-balance, To get the borrow balance from blockchain I think we need to loop through all the cTokens. An alternative would be to use compound.fi API,
We can create Account Resolver for compound borrow tokens separately.

I think we can call getAssetsIn on the comptroller contract to get a list of cTokens a user is borrowing.
https://github.com/compound-finance/compound-protocol/blob/master/contracts/Comptroller.sol#L99
We can then loop through the tokens, summing the values returned from calls to borrowBalanceStored on the cToken contracts.
https://github.com/compound-finance/compound-protocol/blob/master/contracts/Comptroller.sol#L99

I think we can call getAssetsIn on the comptroller contract to get a list of cTokens a user is borrowing.
https://github.com/compound-finance/compound-protocol/blob/master/contracts/Comptroller.sol#L99

We can add this as an accountResolver. So, the compound account resolver will call this function and return the token-balance pair, token-resolver then try to resolve it into underlying assets. (We can keep balance in negative to point that it's borrowed amount). This will also help calculate net worth since we just need to sum all of it up.

Research How to handle assets borrowed by users from Compound.
Here's the borrowBalance function: https://compound.finance/docs/ctokens#borrow-balance, To get the borrow balance from blockchain I think we need to loop through all the cTokens. An alternative would be to use compound.fi API,
We can create Account Resolver for compound borrow tokens separately.

I created a separate issue for this: https://github.com/defiwrapper/defiwrapper/issues/136


Remove duplicate call to mergeConfigFrom method

The mergeConfigFrom method is called twice:

in the boot method
in the registerPostmarkDriver method which is called from the boot method

Removed the duplicate call in the registerPostmarkDriver method

@craigpaul Released this as a patch in v2.9.1 which also includes PR #111


Errors on CS scheme operations via query service

Any scheme operation, which I try to execute in YDB monitoring embedded UI with Query type = "YQL - QueryService (default)", fails.
Example:
Query: CREATE TABLE ... WITH (STORE = COLUMN)
Error: Scheme operations cannot be executed inside transaction
Tried on cluster OLAP Perf VLA 1 with YDB version main.93089ee

We should use NoTx (do not specify TxControl) for QueryService when working from UI. It will execute query in implicit transaction, which allows scheme operations.
@adameat

what is the version of YDB server?

@adameat is this issue still relevant?

@adameat is this issue still relevant?

I don't think it is


Window isn't closed

I'm trying to use this with google oauth 2.0
It works but for some reason the window doesn't close when authWindow.close() is called.
I'm using a Nexus 6 running lollipop 5.0.1 and c ordova version 4.2.0

some problem here

Install inappbrowser plugin
On Sat, Oct 24, 2015, 3:47 PM RusEu<EMAIL_ADDRESS>wrote:

some problem here
—
Reply to this email directly or view it on GitHub
https://github.com/mdellanoce/google-api-oauth-phonegap/issues/5#issuecomment-150780802
.

thanks a lot for the project. i allready found the soultion: in the command line type: phonegap plugin add cordova-plugin-inappbrowser --save


but i cannot find Console class

Type: Bug
i create a new file with command "dotnet new console....." but after file is created, i cannot encounter anything about Console class when i write it in the file's text screen. i mean Console.WriteLine is not appeared. What is the problem ?
VS Code version: Code 1.78.2 (b3e4e68a0bc097f0ae7907b217c1119af9e03435, 2023-05-10T14:39:26.248Z)
OS version: Windows_NT x64 10.0.19045
Modes:
Sandboxed: Yes

hi Tyler. i uninstalled and reinstalled the VSCode and the problem has been fixed. thanks for the comment.


Update teams-toolkit-fundamentals.md

updated Teams Toolkit isn't supported in Government Community Cloud (GCC) and GCC-High environments.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/toolkit/teams-toolkit-fundamentals.md
92
5
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.


Make legacy LD projects endpoint support JSON & form-data

Currently, our endpoint for fetching LD projects that lf-classic and chorus will use, only supports form-data.
However, the old API handled both (LF-classic sent JSON). So, to be on the safe side we should probably continue to do so (unless @hahn-kev vetos this due to the ugly complexity that probably(?) isn't necessary).

edit the hosts file on your machine to point api.languageforge.org to our staging env

🧪 Testing JSON (on staging.languageforge.org)
JSON is used here.

When this is testable, I'm quite curious to make sure that our endpoint supports &s in passwords, confirming that it's not a Chorus issue that & can't currently be used. That would confirm that we don't need to migrate any of the password info from the Redmine help/welcome page. https://sil-language-software.slack.com/archives/CGDKZ7NTV/p1693404570859379

Domain has been setup. I tested it by setting LANGUAGEFORGESERVER=-staging.languagedepot.org I didn't test any weird password stuff just our current admin and manager accounts.


CDN URL returns 403 forbidden

It works before but I just noticed these CDN URLs mentioned in the README.md no longer work:

https://min.gitcdn.xyz/repo/wintercounter/Protip/master/protip.min.css
https://min.gitcdn.xyz/repo/wintercounter/Protip/master/protip.min.js

No longer the case.


Create a Chinese version of readme

/good-first-issue

/good-first-issue

/help

/good-first-issue


build out api server scaffolding

Need to setup rpc/codegen, etc.

Closing this issue since we completed codegen for the API server/client.


update help menus

Actually point help menu links to our resources. Also adds a Check for Updates link in appropriate places.

 Uploader 2.0 Help menu

@gniezen - It is only in the Tidepool Uploader menu (on darwin). But there isn't one of those for Windows, so it seems that most Electron projects drop it under the Help menu for Windows.

@gniezen - Yup, the Help menu update check should be (and was supposed to be - my bad) Windows only, as there isn't a Tidepool Uploader menu item on Windows. I moved it into the appropriate block.


variable substitution in db.query fails with this driver

have sql query that i have that needs variable substitution for better consumption of my gokit service
i have dep & org as user inputs which are part of my rest service dep = 'abc' org = 'def' rows, err := db.Query("select name from table where department='&dep' and organisation='&org'")
i have tried various scenarios like rows, err := db.Query("select name from table where department=? and organisation=?", dep , org)
and i get error message as : sql: statement expects 0 inputs; got 2
only hard-coded values work and substitution fails .
i haven't found much help from oracle blogs regarding this and wondering if there is any way to approach this
I am leveraging this driver with following connection
func NewOracleConnection(cfg config.Config, log log.Logger) (Connection, error) {
var err error
o := &Oracle{
Driver:        cfg.DB.Driver,
ConnectString: cfg.DB.ConnectString,
logger:        log,
}
o.Db, err = sql.Open(o.Driver, o.ConnectString)
if err != nil {
log.Log("event", "connecting to database", "err", err.Error())
}
return o, err
}

`package main
import (
"database/sql"
_ "gopkg.in/rana/ora.v4"
"fmt"
)
type name struct {
Env string json:"name"
}
func main() {
db, err := sql.Open("ora", "XXXXX")
fmt.Println("db info:", db)
if err != nil {
	fmt.Println("event", "sql connection", "err", err)
}
var dept = "inventory"
    var org = "na"
rows, err := db.Query("select name from table where department= :1 and organisation= :2", dep , org)
if err != nil {
	fmt.Println("event", "sql connection", "err", err)
}
defer rows.Close()
var j name
for rows.Next() {
	if err := rows.Scan(&j.Env); err != nil {
		fmt.Println("event", "sql connection", "err", err)
	}
	fmt.Println(j.Env)

}

if err := rows.Err(); err != nil {
	fmt.Println("event", "sql connection", "err", err)
}

}
`


Make interfaces of C++ correction types more uniform

Before this commit, most correction types implemented an evaluate method while some implemented a child method. When walking a correction's compute graph, the node_evaluate visitor had to know which ones required recursive visiting and which did not.
With this patch, all correction types implement evaluate. This simplifies the implementation of the node_evaluate visitor considerably and keeps the logic related to the handling of each type of correction local to the corrections themselves.
@nsmith- just an idea, feel free to close if you don't like the direction.

can merge? :grimacing:


HTTPS Breaks it ?

Hi,
After I do the login, then I'm redirected on the page, but insted of showing protected content, it shows content as if $_SESSION['steamid'] was still not set when going back on the page, but the login button disapear. Also the URL contains many parameters. If I reload the page, then protected content shows up fine (URL still shows many parameters).
However if I'm testing it up on an other browser, using http instead of HTTPS then it works fine.
Is there some way to make it work correctly in HTTPS ?
Thanks

Pictures plz

I will test on my https server tonight and see if it works for me. I assume it's probably sorted due to no response in 2 months.

k

Actually ity's not because of HTTPS I was wrong. It works correctly in microsoft edge, but it doesn't on Google Chrome and in the Browser Integrated into Garry's mod game. In edge I don't need to reload the page after login, in the other two I need to do it.
I didn't post any new reply because I wrote on the page to reload it if the thing that needs login doesn't load.
In chrome, it actually shoots this error (I think I changed my PHP settings because I had no errors before) : Notice: A session had already been started - ignoring session_start() in /var/www/donate/steamauth/steamauth.php on line 37

odd, try getting the latest download of the library.

New version fixed it, nice !

--closed--
Fixed in new version


Support for Structure Guide Lines

F# is a language for whom indent guides are super useful.  Roslyn provides support for indent guildes we should enable indent guides for F#.

Wtf is that?
Am 12.12.2016 8:26 nachm. schrieb "Kevin Ransom (msft)" <
<EMAIL_ADDRESS>
F# is a language for whom indent guides are super useful. Roslyn provides
support for indent guildes we should enable indent guides for F#.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/visualfsharp/issues/1997, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AADgNGcUftI_8mcYZc7hV-Qe63xQKNIdks5rHZ_UgaJpZM4LK7RX
.

Indent Guides

we have logic that calculates positions of indent guides, it's a bit buggy but worth to port I think.

From the screens, it seems it doesn't follow the source code structure, but rather fixed at whatever VS is set to (4).

Tagging @cyrusnajmabadi - can you point to the Roslyn APIs needed to implement this for F#?

@vasily-kirichenko i'm not sure it's worth porting, I think we could make a better version using the same UAST traversal we use for outlining. DepthParser.fs is just a worse version of it, they're fundamentally looking for the same range information before they do their own sets of filters and transformations on them.

I suspect it's a single "structure" roslyn service, providing which automagically enables both outlining and the guides.

Yes.  Roslyn uses a single service to enable all these scenarios.  You need to provide your own implementation of "BlockStructureService" to make this work.
Let me know if you need any more info.

fixed


bug: Need to run yarn install on build command as the node_modules are outdated

Hey, I just made a Pull Request!

:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)

Tugboat has finished building the preview for this pull request!
Link:

https://pr4301-i0yfplnt2agf6ijzt3mlixceq0f6nnyj.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/6013e0f8353bbb3a1e9ac48f

Tugboat has finished building the preview for this pull request!
Link:

https://pr4301-i0yfplnt2agf6ijzt3mlixceq0f6nnyj.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/6013e0f8353bbb3a1e9ac48f

Tugboat has finished building the preview for this pull request!
Link:

https://pr4301-i0yfplnt2agf6ijzt3mlixceq0f6nnyj.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/6013e0f8353bbb3a1e9ac48f

Tugboat has finished building the preview for this pull request!
Link:

https://pr4301-i0yfplnt2agf6ijzt3mlixceq0f6nnyj.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/6013e0f8353bbb3a1e9ac48f

Tugboat has finished building the preview for this pull request!
Link:

https://pr4301-i0yfplnt2agf6ijzt3mlixceq0f6nnyj.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/6013e0f8353bbb3a1e9ac48f

Tugboat has finished building the preview for this pull request!
Link:

https://pr4301-i0yfplnt2agf6ijzt3mlixceq0f6nnyj.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/6013e0f8353bbb3a1e9ac48f


Create PPI module

Based on the paper from JJ:
https://pubs.rsc.org/en/content/articlelanding/2020/ra/d0ra01127d#!divAbstract
Create a PPI module based on global + IF exploration
Dani

Done in pull request #33


added new apps

Goal

Testing

Release Notes

WHAT:
WHY:

#1012  👈
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @nelsitoPuglisi and the rest of your teammates on  Graphite


Add explanation to Part 1 introduction

Explain the meaning of Stage, Scene, Root node and Node in Part 1 introduction for clarity.
Fixes #90

Fix #90

Fix #90

@laney0808 This should be in the PR description (not a separate comment), and should be Fixes #90

Thanks for this PR @laney0808
I've adapted its content in https://github.com/se-edu/guides/commit/c7a42cf1376d074c5d043275be4b82d24da45342
In future, remember to preview the changes locally first. The code in this PR doesn't render as intended because it doesn't have a blank line below the <box> tag. Local previewing can catch errors like that one.


Not raise NewPeer/LostPeer for ourselves

This change is

r? @canndrew
(maidsafe_highfive has picked a reviewer for you, use r? to override)


Communication Error 8 on AA 2.9 and GPS 12.2

Carstream was working fine for me for a long time with the Dow grading of both apps. Recently After having downgraded GPS to v 12.2 to enable carstream on a non rooted device with AA 2.9.5 I now get a communication Error 8 when I connect to the car with the following message "make sure date and time are same and Google play services is updated". It's not a date and time issue since both are synchronized.
Anyone faced the same issue or is able to help resolve it?

#203

This is for a non rooted device. Is it no longer possible to run the AA 2.9 and the old GPS (12.2) For non rooted device?

not sure on that but this is what we are getting Error 8

I am getting same error.. Is there a working version gps?

how i can downgrade the gps?

Since 3 weeks aauto works anymore. If the handy connectet with Ford sync 3 a red display text with Connection error 8 is diplayed.
I use aa 2.9 and GPS 12.2.21
Has everyone a sollution for me please!!

Bende bu hatayı alıyorum ses de uygulama görünüyor ama video akışı olmuyor çözümü bulamadım


Fix iOS error with hook script on cordova@7

This fixes a build issue on iOS when using cordova@7 caused by the add_embedded_ios_frameworks.js hook script which adds the frameworks to the Xcode project.
The error occurs because cordova@7 itself now adds the embed configuration to the Xcode project, so running the hook script causes an error.
Subsequently, Xcode will not open the project: Project /projects/@scratch/cordova-plugin-braintree-test/platforms/ios/Braintree Test.xcodeproj cannot be opened because the project file cannot be parsed.
I've added a line to the hook script to abort if the Cordova CLI version is >= 7.
This is a similar issue to this one encountered with the Tealium plugin, and is possibly the cause of #34.
See below the console output using your current version of the plugin (which results in the error) vs the console output using my modified version:

console output for taracque/cordova-plugin-braintree

$ cordova -v
7.1.0

$ cordova plugin add https://github.com/taracque/cordova-plugin-braintree.git
Adding cordova-plugin-braintree to package.json
Saved plugin info for "cordova-plugin-braintree" to config.xml

$ cordova platform add ios
Using cordova-fetch for<EMAIL_ADDRESS>Adding ios project...
Creating Cordova project for the iOS platform:
    Path: platforms/ios
    Package: io.cordova.braintree.test
    Name: Braintree Test
iOS project created with<EMAIL_ADDRESS>Installing "cordova-plugin-braintree" for ios
Embedded Frameworks in cordova-plugin-braintree
Added Arch stripping run script build phase
Installing "cordova-plugin-whitelist" for ios
--save flag or autosave detected
Saving<EMAIL_ADDRESS>into config.xml file ...
Embedded Frameworks in cordova-plugin-braintree
Added Arch stripping run script build phase

$ cordova prepare ios
Error: Expected "/* Begin ", "/* End ", "\"", or [A-Za-z0-9_.] but "/" found.
$

console output for dpa99c/cordova-plugin-braintree

$ cordova -v
7.1.0

$ cordova plugin add https://github.com/dpa99c/cordova-plugin-braintree.git
Adding cordova-plugin-braintree to package.json
Saved plugin info for "cordova-plugin-braintree" to config.xml

$ cordova platform add ios
Using cordova-fetch for<EMAIL_ADDRESS>Adding ios project...
Creating Cordova project for the iOS platform:
    Path: platforms/ios
    Package: io.cordova.braintree.test
    Name: Braintree Test
iOS project created with<EMAIL_ADDRESS>Installing "cordova-plugin-braintree" for ios
Installing "cordova-plugin-whitelist" for ios
--save flag or autosave detected
Saving<EMAIL_ADDRESS>into config.xml file ...

$ cordova prepare ios
$

I tried this locally, it does fix the error in .xcodeproj file. However, when I try to upload my app to AppStoreConnect, it failed due to "Unsupported Architectures" error.


Build script fails

Hello,
I could not build project. Can you write build & run information to README file?
npm run build
command fails, here is dump:
rollup -c rollup/rollup.config.cjs.js && rollup -c rollup/rollup.config.es.js no such file or directory, lstat '/Users/alperunal/Dev/pokemon/emerald-engine/rollup/rollup.config.cjs.js'

Hey there, I didn't touch this project for a long time, but as far as I remember right, I used npm run browser for building the client and npm run server to build the server.

Thanks for quick response.
It is worked, how to run?

Server is bundled in dist/bundle-server
Client in dist/bundle-client
I don't remember how to run the client - the client uses nw.js
The server requires mysql, I don't have the database anymore, but you should be able to re-build it on your own based on the login-server code e.g. here
No problem though I'm having hard times remembering the internals, can't help much on this.. :)

Ok, I'll take a look at this. Thanks for your help.


Website blocked by LLNL

Hello!
I cannot access the website https://software.llnl.gov/blt and am instead taken to a "LLNL URL/IP Block!" page (I am not located at LLNL). I have reproduced this on my home connection, office VPN, and mobile network.

Thanks for letting us know Shaden. We will look into it.
Here is link to the tutorial on readthedocs: https://llnl-blt.readthedocs.io/en/latest/

@ShadenSmith -- It looks like the issue has been resolved, so I am closing the ticket.
Please reopen if this is still a problem for you.

Looks like it works now, thanks!


IllegalStateException: could not find file ... in commit ...

The problem occured during a test with the following 2 projects:

https://github.com/square/leakcanary
https://github.com/iluwatar/java-design-patterns

Stacktrace:
java.lang.IllegalStateException: could not find file 'decorator/src/main/java/com/iluwatar/App.java' in commit<PHONE_NUMBER>ce7d1265025be8eb754a4738a81b8
at org.wickedsource.coderadar.job.analyze.CommitAnalyzer.findInCommit(CommitAnalyzer.java:206) ~[main/:na]
at org.wickedsource.coderadar.job.analyze.CommitAnalyzer.storeMetrics(CommitAnalyzer.java:168) ~[main/:na]
at org.wickedsource.coderadar.job.analyze.CommitAnalyzer.walkFilesInCommit(CommitAnalyzer.java:159) ~[main/:na]
at org.wickedsource.coderadar.job.analyze.CommitAnalyzer.analyzeCommit(CommitAnalyzer.java:95) ~[main/:na]
at org.wickedsource.coderadar.job.execute.JobExecutor.execute(JobExecutor.java:46) ~[main/:na]
[...]

Cannot reproduce with leakcanary project. Analysis runs through completely. However, only 165 commits are analyzed and the repository contains over 300. Maybe connected.
Will try same thing with iluwatar project.

Hi,
I also spent some time to reproduce the exception (I analyzed the Coderadar project itself), and for me they can be reproduced. Additionally I found some strange and random behaviour:  I did 7 runs and observed the number of rows that existed in some of the tables after the jobs had finished. Before each run, I emptied the whole database and started over. You can see the result in the following table.

Run
commit
commit_log_entry
commit_file
file
file_identity
findings
metric_value

1
293
3856
79550
1746
983

2
293
4097
92347
1864
983

3
293
4086
55388
1597
983

4
293
4097
92347
1864
983

5
293
4061
74902
1680
983

6
293
4097
92347
1864
983
26163
36035

7
293
4097
56114
1609
983
12810
17534

Explanation
In run 1 to 5, I only created the project in the database and let the analyzer fill the columns "commit" to "file_identity". This works with no exception, but as you can see there are some huge differences in the amount of tabel entries, especially in table commit_file.
In run 6 and 7, I did the same as before but additionally added two analyzers and an analyzingJob, so that "findings" and "metric_value" are filled. In run 6, no exception occured, so here all tables seem to be completely filled. But in run 7, I had the exception you can see in the 1st post numerous times.
Maybe there is something wrong with the jobs or the timing of those. Especially the table "commit_file" shows some huge differences concerning the number of rows after each run. And this seems to be the table where the relation between commit and file cannot be found during analyzing, which then results in the IllegalStateException.
Hope that helps ;-)

Thanks for the analysis!
I fixed a bug that skipped some commits due to an error in (the usage of?) JGit. All commits are being scanned now.
I ran a few tests similiar to run 1 through 5 of your test and all had the same numbers. However, since I couldn't reproduce the problem in the first place, could you please run your test runs again?

Alright. I ran 13 tests, but still some of them failed :-(
Here are the results:
The first 10 tests were successful. I created only the project in the database (no analyzing):

run
commit
commit_log_entry
commit_file
file
file_identity

1-10
374
5.117
113.694
2.467
1.119

Then, I ran some tests with analyzers. Steps were as follows:

create project
add file pattern
add analyzer config
add analyzing job
add modules

I sent those requests directly in a row to the API.

run
commit
commit_log_entry
commit_file
file
file_identity

11
374
5.117
62.979
1.768
1.111

12
374
5.117
93.042
2.307
1.119

13
374
5.117
113.694
2.467
1.119

In run 11 and 12, I didn't let the analyzing jobs run through, because I saw that there were entries missing. In run 13, all tables seemed to be completely filled. While I was waiting for the analyzing being done I observed the console, and although the row counts are the same as in the first 10 runs, I got IllegalStateExceptions...
I searched the log for those exceptions and figured out that all in all there are 10 different files that cannot be found in 15 different commits. See the attached txt file for the list: exception-analysis.txt
It's noticeable that most of those commits were made by other contributors. One of the commits is a merge commit. Don't know if this could be the reason?!

Thanks. At least the first part is stable now.
I will look further into this tonight.

OK, I can reproduce it now and did some investitating. The source of this evil lies in the (lack of) handling of commits with multiple parents (merges), which ironically is the first issue I created for coderadar: https://github.com/reflectoring/coderadar/issues/1.
I have to do some more thinking on how to handle multiple parents, since all mechanisms currently rely on sequential commits.

The coderadar project is successfully running through, now. I made some changes to handle commit parents in a consistent way, which is only to always only consider the first parent, which should be the one interesting for us.
Please try again and report if it works :).

Hi,
nice, it seems to work now 👌 I tested with Coderadar itself and 2 additional repos, and didn't receive any exception.
I will close this issue.


Option to create a file in the workspace if it's not found using search.

It would be nice to have an option to create a file right from the search bar if it doesn't exist in the workspace.
This is useful when input files are required in tests.

I don't think that we would want something like that in the file search, since it's focused on searching existing files. This might also create issues, as people who are used to the current UI may end up creating files accidentally.


issue #1452 - split EvalContext issues and only add errorDetails if constraint failed

split EvaluationContext.issues into 2 lists:  supplementalWarnings and errorDetails
from FHIRValidator, only add errorDetails to the resulting issue list if the constraint actually fails

This addresses the issue because if the overall constraint is true, this will prevent us from adding the erroneous error details for the part of the "or" clause that failed.
Signed-off-by: Lee Surprenant<EMAIL_ADDRESS>

The more I think about this the more it seems like moving in this direction is making the semantics quite messy. I'm almost inclined to just to revert to the way it was before and change the severity from ERROR to WARNING or INFO in the places where this issue occurs.

closed in favor of #1465


Add a comboBox to choose the current layout

In InteractiveSegmentTubes module
See Issue #36

Did you think about the following case: the user opens opens this module,
selects the red view. Then a module that has a red view (not the default).
Then selects this module again.
Would the red view be selected ? Because the user would probably expect it
:)
On Tuesday, February 10, 2015, Matthieu Heitz<EMAIL_ADDRESS>wrote:

In InteractiveSegmentTubes module
See Issue #36 https://github.com/KitwareMedical/VesselView/issues/36
You can view, comment on, or merge this pull request online at:
https://github.com/KitwareMedical/VesselView/pull/81
Commit Summary

Add a comboBox to choose the current layout

File Changes

M
Modules/Scripted/InteractiveSegmentTubes/InteractiveSegmentTubesWidget/InteractiveSegmentTubesWidget.py
https://github.com/KitwareMedical/VesselView/pull/81/files#diff-0
(33)
M
Modules/Scripted/InteractiveSegmentTubes/Resources/UI/InteractiveSegmentTubes.ui
https://github.com/KitwareMedical/VesselView/pull/81/files#diff-1
(107)

Patch Links:

https://github.com/KitwareMedical/VesselView/pull/81.patch
https://github.com/KitwareMedical/VesselView/pull/81.diff

—
Reply to this email directly or view it on GitHub
https://github.com/KitwareMedical/VesselView/pull/81.

--
Sent from Gmail Mobile

Should it be Red because you come from another module that had a Red View, or because last time you left this module, it had a Red View.
Example: If I go in InteractiveSegmentTubes, select the Green slice. Then, I go to another module where the Red slice is the layout. When I go back to InteractiveSegmentTubes, should the layout be Red or Green ? (or default, aka Quad View)

I don't populate a list anymore since I only look for one value. Instead, I use findText()
And I saw with Stephen, for now, we keep the behavior of always going back to the default layout = Quad View.

@jcfr can you review ?

Updated ! Thank you @jcfr , it's much cleaner.

Re-updated

Updated again

@jcfr can you review please ?


Consistent tech path

Is your feature request related to a problem? Please describe.
Almost every planet add a specific tech to unlock the planet.
Muluna break this "rule" by not adding a tech for it.
Describe the solution you'd like
Adding a specific tech to unlock travel to muluna

This technology has been added. Muluna is discovered upon building a thruster.


Slow step through and watch variable expansion when debugging in a Docker contianer

There's a performance difference between native debugging and Docker container debugging. The problem can be observed when expanding variables in VS Code. In this test project https://github.com/jamiegs/dotnet-debugging-performance the difference between native and docker is small but still visible. On a real code base,  it is much more significant. See this video https://youtu.be/V_jWtOHjvOg for a demonstration.
The details here are on macOS + VS Code. But we have observed the same on Window + VS Code and Windows + VS. Run on high spec Mac Book Pros and Dell XPS hardware. Changes to resources allocated to the container does not seem to make a difference.
Environment data
.NET Core SDK (reflecting any global.json):
 Version:   2.1.300
 Commit:    adab45bf0c

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.13
 OS Platform: Darwin
 RID:         osx.10.13-x64
 Base Path:   /usr/local/share/dotnet/sdk/2.1.300/

Host (useful for support):
  Version: 2.1.2
  Commit:  811c3ce6c0

.NET Core SDKs installed:
  1.0.1 [/usr/local/share/dotnet/sdk]
  1.0.4 [/usr/local/share/dotnet/sdk]
  1.1.4 [/usr/local/share/dotnet/sdk]
  2.0.0 [/usr/local/share/dotnet/sdk]
  2.0.3 [/usr/local/share/dotnet/sdk]
  2.1.4 [/usr/local/share/dotnet/sdk]
  2.1.300-preview2-008533 [/usr/local/share/dotnet/sdk]
  2.1.300 [/usr/local/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.0-preview2-final [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.0-preview2-final [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 1.0.4 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.4 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.9 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.3 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.0-preview2-26406-04 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

VS Code version:
1.25.1
C# Extension version:
1.15.2
Steps to reproduce
Based on code in https://github.com/jamiegs/dotnet-debugging-performance
There are two Launch Methods, Docker and Native.

Add breakpoint to 'return View()' line in Home Controller. HomeController.csd
Run application
When it hits breakpoint, expand the 'this' variable. Natively it takes about 3 seconds, Docker takes 5.

While this difference isn't that big, the difference grows dramaticly with larger applications.

Also hitting 'Step over' or 'Step into' is slower in Docker vs Native.

Expected  behavior

I would expect docker and native to have very little difference in debugging performance.

Actual behavior

The difference is noticable and increases with application size.

Demo video comparison using https://github.com/jamiegs/dotnet-debugging-performance
https://youtu.be/lkDnFPGOumM
Demo video comparison using a larger, 20,000 line application.
https://youtu.be/V_jWtOHjvOg

@gregg-miskelly This sounds like it's probably a debugger issue?

@jamiegs this happens with VS2017 also right?

@janaka it does anecdotally, I haven't taken any timings of the performance though.

@janaka Are you using linux containers with docker on both windows and mac?

@chuckries yes

I want to let you guys know that I'm looking into this, but I haven't had a tremendous amount of time yet. I am trying to instrument our code to get some timing data on either side of the pipe (docker.exe in this case). I also have installed Ubuntu side by side on my macbook so that I can try to get some mac/linux numbers on the same hardware.
My guess upfront is that vsdbg is just slower running on the virtualized linux kernel in docker on mac. I will respond to this when I have some actual numbers. Thanks for reporting this!

Thanks @chuckries this is very useful. We are having a discussion internally about your results and conclusions. Might have a more questions/comments in a bit.

@chuckries Nice analysis! One suggestion--I think the original post notes that this issue also reproduces if you debug a docker from windows. If you're more familiar with perf tools on Windows that might be a good way to get an actionable trace.

@rchande Thanks for the feedback. I considered this, but this would still require linux perf investigation, as docker on windows would still be running a virtualized linux environment. One thing that I think I have shown is that the perf investigation needs to be done entirely within the docker container. There is not much to be gained from investigating on the host side.

@chuckries Hey Chuck - thanks for all the work so far! From my perspective, some of what led to this issue for us is making sure we can have a "first class" development environment using Docker as opposed to the traditional setup (Windows + full VS). While the Windows side won't be as beneficial for tracing down the underlying reason for slowness in Docker, it could be a nice baseline to compare everything to. That would primarily be for our benefit in comparing though, and less about the overall issue itself.

Oh hey Ryan! Yeah I'll try to get some Windows numbers so we cat at least see local windows vs docker on windows.

Windows Data

Windows

Local

Docker

iteration
Engine
Adapter
Engine
Adapter

1
479288
479536
4851175
4852634

2
512262
512498
4858059
4859198

3
488561
488953
4797241
4798359

4
484271
484535
4899063
4900303

5
509923
510162
4785430
4786509

6
503807
504068
4688882
4690064

7
482689
482995
4859941
4861161

8
498618
498891
4861770
4863226

9
498642
499017
4702413
4703720

10
517726
518042
4706336
4707903

On my machine, docker is about 10x slower than windows local. It may be worth noting that there is a larger difference between the windows and linux builds of the debugger than there is between linux and mac. Both linux and mac are built with clang, Windows is built with MSVC. Linux and Mac run on top of coreclr's Platform Adaptation Layer, Windows has no such abstraction. Etc.
Machine Specs
Windows:

OS Name
Microsoft Windows 10 Enterprise

Processor
Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz, 3401 Mhz, 4 Core(s), 8 Logical Processor(s)

Installed Physical Memory (RAM)
32.0 GB

Docker:

CPUs
2

Memory
2048 MB

Swap
1024 MB

I tried increasing all Docker specs and saw only a negligible increase in performance.

@janaka @jamiegs One thing that I meant to address is how this relates to Visual Studio vs VS Code. When debugging on docker, both VS and VS Code run the cross platform C# debugger "vsdbg" inside the container. The performance of either fronted should be similar for docker scenarios; they are both dependent on vsdbg inside the container.

@chuckries thanks for getting the Windows stats.
"may be worth noting that there is a larger difference between the windows and linux builds of the debugger than there is between linux and mac." Does this explain the difference native/local performance between Windows and macOS/Linux?
One of the reason we were interested in seeing the Windows stats.
How I/O bound is vsdbg? there seems to be some known limitations in the detault Docker for mac/win config. But there might be some options we can try. I'll share links to docs when at a keyboard.

I will do my best to answer your questions, but until I can do the actual perfview analysis, these are best guesses.

It all started on Windows. Both coreclr and vsdbg are ports of the Windows .NET Runtime and VS Debugger, respectively. These had been worked and tuned for years and years on Windows, and the Windows versions of the ports benefit from this. I do not know exactly how much pure perf work has been done for coreclr on *nix systems, but it is certainly more than has been done for vsdbg. That is why we're here now.

The primary difference between the Windows and *nix builds of vsdbg is that the *nix versions use the coreclr Platform Adaptation Layer, or PAL. The Windows build does not use this layer because it builds directly against Windows API's. I have no proof that the PAL has such a high perf impact, but it likely has some.

The .NET Debugging Interfaces likely have a higher cost on *nix that Windows. Vsdbg is built on top of the .NET Debugger Interface. These are implemented by the runtime of the target application, not by vsdbg (specifically these are ship in mscordbi, part of the platform specific Microsoft.NETCore.App packages, like this). These APIs are what vsdbg uses to read memory out of the target process, among other things. It is likely that these code paths are not as performant on *nix as they are at windows.

Expression Evaluation requires a lot of ReadProcessMemory. It is my understanding that reading from another process's virtual memory space on *nix boils down to ptrace. I have heard anecdotally that this is far slower on *nix that it is on Windows. I hope to confirm/deny this once I do my analysis.

Expression Evaluation should not be I/O bound. We load the symbol files (.pdb's) when the module instance loads. By the time we are expanding variables, we shouldn't be hitting the disk for anything. We are likely bound by reading memory from the target process, as describe above.

Just an FYI: I won't have a chance to do a more in depth perf analysis on this in the next week or two. I will add to this issue when I have more info/results.

@chuckries In doing some more testing and troubleshooting with other devs it seems that the debug slowness can be improved by collapsing the "Variables" pane in vscode. Task<T> objects specifically seem to exacerbate the performance issue, even crashing vsdbg entirely in some scenarios.

Update: I have not had time to test this, but there was a recent fix in the CoreCLR debugging interfaces that improves performance on XPLAT. I would expect this to improve Expression Evaluation performance both on Linux/Mac as well as Docker.
The specific commit is here. This is currently in coreclr master, meaning that it is only available in the latest .NET Core 3.0 Preview. I have confirmed that the fix is in the latest 3.0 SDK Shared Runtime available here.

@chuckries just catching up on this thread. Thanks for the update. Hopefully one of our crew will have a little time to test this out our end.

I found some interesting differences related to this. I don't have measurements, but qualitatively:
(all on a beefy new macbook pro)

Docker Desktop for Mac + k8s debugging was extremely slow
Docker Desktop for Mac (no k8s) debugging was slow, but improved significantly if the CPU count is held to 1 in Docker settings.
Minikube (using the same exact hyperkit as Docker Desktop for Mac) was blazing fast, regardless of the number of CPUs given to it

I first thought that the issue was within hyperkit, but based on the last point it seems more likely that it's something to do with the (linuxkit) kernel/VM image Docker Desktop uses, compared to what minikube uses (buildroot).

A couple additional tests, on Windows this time:

Docker Desktop for Windows (hyper-v + linuxkit) + k8s debugging was extremely slow
Docker Desktop for Windows (WSL2) + k8s debugging was FAST

This further points to the issue being related to LinuxKit / the LinuxKit images used by both versions of Docker Desktop.

Hi Everybody,
I may have found some explanations for the performance issues. Recently I decided to do development in an environment that is as production-like as possible, using the same containers used in production and just docker exec-ing vsdbg inside them for debugging. I immediately hit the issue described here - watches, stepping and the like suddenly took seconds (running on Docker Desktop for Mac).
The first thing I noticed was that during the expression evaluation "hang", the com.docker.hyperkit process pegs one CPU core, while running top inside the docker VM shows just a few percent for the vsdbg process.
The other one was the following in Console:
ptrace attach of "dotnet <project>.dll"[2451] was attempted by "/vsdbg/vsdbg --interpreter=vscode"[5554]

So it seems like vsdbg is not able to use ptrace at all! Playing around with it some more, I've found that the docker VM has kernel.yama.ptrace_scope = 1 set in sysctl, which effectively means that only descendants of a process may be ptrace-d (https://www.kernel.org/doc/Documentation/security/Yama.txt). Changing this to 0 is probably not practical (does not survive a reboot of the docker host VM which is locked down pretty tight with a read-only boot volume), but using docker exec --privileged for the vsdbg process is actually quite enough. After doing this, the above warning disappeared and debugging is (at least subjectively) even faster than regular local debugging on a Mac!
Not sure if my fix is applicable to other scenarios here, but I definitely hope it will help to move this issue forward.

@ssimek This answer may help narrowing docker security changes down.
docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --security-opt apparmor=unconfined


Support running ansible using feature outside fmf root

Pull Request Checklist

[ ] implement the feature
[ ] write the documentation
[ ] extend the test coverage
[ ] update the specification
[ ] adjust plugin docstring
[ ] mention the version
[ ] include a release note

This PR blocks #2985

It looks like this PR also fixes the #3032.

It looks like this PR also fixes the #3032.

Hm, yes and no. Yes, I think this PR might fix #3032, because the plugin and tmt will now use a better way when speaking about paths of playbooks that are shipped with tmt. But also no, because the cause is not the one mentioned in #3032, i.e. a missing fmf root - that's actually a second issue. prepare/epel had to perform some black magic mangling of its playbook paths, which did involve fmf root, and this PR removes this magic, therefore fmf root is no longer involved, therefore prepare/feature will work. But not because tmt suddenly learned to run any playbook without having an fmf root - when it comes to user-provided playbooks, like those for prepare/ansible or finish/ansible, they will still fail outside of fmf root. We discussed both issues with @falconizmi and agreed on addressing them both, in separate PRs.

marked as must, users are hitting this in Testing Farm

Assuming @falconizmi was not available on such late notice on Friday afternoon, I tried to address the comments above. I think there will be failed tests, I'll check them in the morning.

And before the merge, $SUBJ & commit message should be updated - it's not fixing "outside fmf root" issue, it's fixing "feature can't run its own playbooks".


setBackgroundMessageHandler , didReceiveRemoteNotification not working For IOS , Please Help !

hello I am trying to catch notifications when the application is closed or at the bottom.
Notifications on the front work, but notifications on the back. I am trying to capture with setBackgroundMessageHandler, but I cannot receive a message in the log or console.
I run it once but I don't remember the codes Please help me I have been dealing with it for 2 days.
AppDelegate.m
`#import "AppDelegate.h"
#import <RNCPushNotificationIOS.h>
#import <UserNotifications/UserNotifications.h>
#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
// Firebase
@import Firebase;
@implementation AppDelegate

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
#ifdef FB_SONARKIT_ENABLED
InitializeFlipper(application);
#endif
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
moduleName:@"Psikolog"
initialProperties:nil];
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
// Push notification
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[application registerForRemoteNotifications];
center.delegate = self;
[FIRApp configure];
return YES;
}

// Push Nofitication
// Required to register for notifications

(void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
[RNCPushNotificationIOS didRegisterUserNotificationSettings:notificationSettings];
}
// Required for the register event.

(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
NSLog(@"APP_PUSH from Device Token ");
[RNCPushNotificationIOS didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
}
// Required for the notification event. You must call the completion handler after handling the remote notification.

(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
NSLog(@"APP_PUSH from Background ");
[RNCPushNotificationIOS didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
}

// Required for the registrationError event.

(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
NSLog(@"APP_PUSH from Error ");
[RNCPushNotificationIOS didFailToRegisterForRemoteNotificationsWithError:error];
}
// IOS 10+ Required for localNotification event
(void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:(void (^)(void))completionHandler
{
[RNCPushNotificationIOS didReceiveNotificationResponse:response];
completionHandler();
}
// IOS 4-10 Required for the localNotification event.
(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
[RNCPushNotificationIOS didReceiveLocalNotification:notification];
}

-(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler
{
NSLog(@"APP_PUSH from foreground %@ ",completionHandler);
NSLog(@"APP_PUSH from foreground2 %@ ",completionHandler);
completionHandler(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge);
}
// Sistem

(NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
}

@end
`
Package.json:
 "@react-native-firebase/app": "6.7.1",   "@react-native-firebase/messaging": "6.7.1", @react-native-community/push-notification-ios": "^1.2.0", "react-native-push-notification": "^3.1.9",
App.js
`
messaging().setBackgroundMessageHandler( remoteMessage => {
PushNotification.localNotification({
title: "xxxx",
message: "testxxxting", // (required),
        });
        console.log('Message handled in the background!', remoteMessage);
    });

PushNotification.configure({
// (optional) Called when Token is generated (iOS and Android)
onRegister: function (token) {
    console.log("TOKEN:", token);
},

// (required) Called when a remote or local notification is opened or received
onNotification: function (notification) {

    console.log("NOTIFICATION:", notification);

    // process the notification

    // required on iOS only (see fetchCompletionHandler docs: https://github.com/react-native-community/react-native-push-notification-ios)
    if (!notification.foreground) {
        notification.finish(PushNotificationIOS.FetchResult.NoData);
    }
},

// ANDROID ONLY: GCM or FCM Sender ID (product_number) (optional - not required for local notifications, but is need to receive remote push notifications)
senderID: "503601710565",

// IOS ONLY (optional): default: all - Permissions to register.
permissions: {
    alert: true,
    badge: true,
    sound: true
},
// Should the initial notification be popped automatically
// default: true
popInitialNotification: true,

/**
 * (optional) default: true
 * - Specified if permissions (ios) and token (android and ios) will requested or not,
 * - if not, you must call PushNotificationsHandler.requestPermissions() later
 */
requestPermissions: true

});
`

hey did you find a solution?
I am unable to get token with getAPNSToken() but with react-native-push-notification I am able to get token and work for background and foreground. But I need to get the token without the need of react-native-push-notification.
In android it works fine.
    try {

        let tries = 0;
        let apnsToken = null;
        while (tries < 5) {
            const apnsToken = await messaging().getAPNSToken();
            if (apnsToken !== null) return apnsToken;
            await new Promise((resolve) => setTimeout(resolve, 1000));
            tries++;
        }
        // await syncStorage.set('firebaseToken', apnsToken);
        // report({firebaseToken: syncStorage.get('firebaseToken')}, 'firebaseToken IOS');
        report(apnsToken, 'getAPNSToken()');
        return apnsToken;
    } catch (e) {
        reportErrorInstabug(e, 'registerAppWithAPN()', 'ERROR');
        return null;
    }
}```


fix: self hosted etcd

See https://github.com/coreos/etcd-operator/issues/594#issuecomment-270475704

@aaronlevy fixed. PTAL

@aaronlevy
fixed. PTAL

@hongchaodeng A couple nits.

Started a review, but I think this is still being tested. Ping me when I should take another look

retest this please

@aaronlevy
Ready for review

How is this being tested? Without additional changes - it doesn't seem like I could test this with any of the hack/* installation methods  or existing tests.

@aaronlevy We need to ensure the etcd TPR status is running after the destructive tests. I think either @pbx0 or @hongchaodeng can add that checking bit.

@xiang90 @hongchaodeng As this PR stands, this code won't even be exercised at all (as far as I can tell) -- like none of the installation methods or tests use it -- so how is it being verified manually?
For reference, these were the changes I had to make last time I was testing to get it to launch a cluster at all: https://github.com/kubernetes-incubator/bootkube/compare/master...aaronlevy:sh-etcd

--etcd-quorum-read=true on bootkube and self-hosted apiserver (https://github.com/kubernetes-incubator/bootkube/commit/f43a1ba02976314e83ed05b2bb581702a0c8ba51#diff-1a342de84d1bbb83d110cdca78afa143R144 & https://github.com/kubernetes-incubator/bootkube/commit/f43a1ba02976314e83ed05b2bb581702a0c8ba51#diff-b2cbe19f6b4883d7cdc511917ceccad1R92)
modifying bootkube render and bootkube start flags (https://github.com/kubernetes-incubator/bootkube/commit/f43a1ba02976314e83ed05b2bb581702a0c8ba51#diff-4999be0b076d54f1ccb80eb692d76e9e) then also changing the status check to just use first endpoint (https://github.com/kubernetes-incubator/bootkube/compare/master...aaronlevy:sh-etcd#diff-4b418a1b1ee3602f77393018ab019352R27
May not be an issue anymore - but I had to explicitly ignore notFound errors: https://github.com/kubernetes-incubator/bootkube/compare/master...aaronlevy:sh-etcd#diff-2d3c8cde0a58be225d2f6d6b5d64059fR68

@xiang90 @hongchaodeng I added a PR against this branch:
https://github.com/kubernetes-incubator/bootkube/pull/265
That should help with testing against local multi-node installation. But as far as I got was this still needing: https://github.com/kubernetes-incubator/bootkube/compare/master...aaronlevy:sh-etcd#diff-4b418a1b1ee3602f77393018ab019352R27
Otherwise it fails because multiple etcd servers are specified during bootkube start

@aaronlevy With all your change merged in, I think we should expect self hosted etcd to work by specifying self-hosted flag to the muti node setup. You already got it works the other day. The issue what the operator failed to pick up the migrated cluster after a restart. It should be fixed now. So if we try to restart the node, everything should come up correctly assuming checkpoint works.

The checkpointing still won't work until we "checkpoint" the iptables rules too (can probably start with just enabling iptables-store.service / iptables-restore.service on host)

May not be an issue anymore - but I had to explicitly ignore notFound errors:

This still need to be fixed. Talking directly to TPR outside the operator programmatically is annoying. I am working on an etcd operator client. So we can hide TPR completely from operator user point of view.

Finally we have the fix PR ready and tested again hack/multi-node

have self hosted etcd
have scaled etcd cluster from 1 -> 2

Unachieved items:

scale >2 because we only have two nodes
reboot doesn't work (no ip tables checkpointing)

Here's what the fix is:

Since we changed to rest.Interface, we need to check error now instead of status code.
We need to wait cluster TPR status.phase to switch to "Running". Otherwise, stopping apiserver will cause the restore of the cluster to fail.
We need to wait boot etcd to be removed. Otherwise, after apiserver restarts, restore of the cluster won't remove the boot member.

If all is successful, we shall see from bootkube logs:
I0112 22:18:23.357220    1454 migrate.go:160] etcd cluster status.phase: Running
I0112 22:18:23.357278    1454 migrate.go:62] etcd cluster RUNNING...
I0112 22:18:33.365627    1454 migrate.go:196] Still waiting boot etcd to be deletd...
...
E0112 22:18:58.928740    1454 errors.go:63] apiserver received an error that is not an unversioned.Status: rpc error: code = 13 desc = transport is closing
I0112 22:19:03.360928    1454 migrate.go:67] boot etcd deleted...

We see that apiserver erroring because boot etcd is removed. At that point, in bootkube, it will detect that as well independently of apiserver using etcd API and etcd service IP. Then bootkube shall exit successfully.
We shall see
$ kubectl --kubeconfig cluster/auth/kubeconfig -n kube-system get pod
kube-etcd-0000                             1/1       Running           0          6m

No "kube-etcd-$(IP)" for the boot member.
After scaling up, we shall see pods:
kube-etcd-0000                             1/1       Running           0          6m
kube-etcd-0001                             0/1       PodInitializing   0          9s

kube-etcd-0000                             1/1       Running   0          6m
kube-etcd-0001                             1/1       Running   0          11s

cluster TPR:
$ kubectl --kubeconfig cluster/auth/kubeconfig -n kube-system get etcdcluster kube-etcd -o yaml
...
spec:
  ...
  size: 2

There is prerequisite for above comment that I need to mention:

In our testing, we disabled GC in apiserver and controller manager. This is known k8s 1.5 regression issue.
This depends on #270 #271

I'll try and take a closer look tonight, but just skimmed your message. FWIW you can launch as many nodes as you want: https://github.com/kubernetes-incubator/bootkube/blob/master/hack/multi-node/Vagrantfile#L12-L15

cleaned up

@hongchaodeng Can you rebase the code with master?
@aaronlevy @pbx0 and I tested this with CI, it works. Can you give this a review and hopefully get this merged? Thank you!

Overall these changes lgtm
@xiang90 @hongchaodeng - one thing I'd like to see changed (which caused me issues when testing in the past):
Add an explicit tag to the etcd-operator manifest(https://github.com/kubernetes-incubator/bootkube/blob/master/pkg/asset/internal/templates.go#L516) and then not modifying the image for that version tag after release.

Can the conflicts also be resolved (sorry about that -- bumped the k8s version)

@aaronlevy
Rebased.
We pushed a special tag 'bootkube' in etcd operator quay image for bootkube right now for stability purpose. After releasing beta of etcd operator image, we would change the tag to
that.

Is there a particular reason you want to use a "bootkube" tag rather than maybe the git hash? I have would have no good way of mapping a particular etcd-operator image back to the repo to debug

@aaronlevy
Pushed a new tag based on current etcd operator master's git hash.

When I test this locally, I get a running cluster but only see the boot-etcd pod (no self hosted pod):
aaron@aa:$ kubectl get pods --all-namespaces
NAMESPACE     NAME                                       READY     STATUS    RESTARTS   AGE
kube-system   boot-etcd-<IP_ADDRESS>                     1/1       Running   0          2m
kube-system   checkpoint-installer-ftmw5                 1/1       Running   0          5m
kube-system   kube-apiserver-svrvp                       1/1       Running   2          5m
kube-system   kube-controller-manager-3654003418-kb6v8   1/1       Running   0          5m
kube-system   kube-controller-manager-3654003418-rsq0d   1/1       Running   0          5m
kube-system   kube-dns-4101612645-lr026                  4/4       Running   0          5m
kube-system   kube-flannel-9dclv                         2/2       Running   1          5m
kube-system   kube-flannel-gp2md                         2/2       Running   3          4m
kube-system   kube-proxy-l4bhq                           1/1       Running   0          5m
kube-system   kube-proxy-pkw0g                           1/1       Running   0          4m
kube-system   kube-scheduler-850181384-1bv9p             1/1       Running   0          5m
kube-system   kube-scheduler-850181384-rtl5m             1/1       Running   0          5m
kube-system   pod-checkpointer-<IP_ADDRESS>              1/1       Running   0          4m

Actually, ignore my previous comment this likely was my fault - testing again

When I test this locally, I get a running cluster but only see the boot-etcd pod (no self hosted pod):

etcd operator is not even started. How did you test it?

Actually, ignore my previous comment this likely was my fault - testing again

ah. ok. i was too fast.


Fix and improve error messages and docs

Is this PR reviewd by yourself ? :-D I cannot see any tag from @LeanderK or someone else ...

Except for new Notification cons

You wrote 2 comments above that this PR was reviewed. Which is obviously not true.
And also the patch also includes the change from notification to template in a route, and errormessage changes. Its okay to have them in one PR, what I want to say is to split them up into several commits.
And B.T.W it would be cool if you could just attach the persons which are working with this exceptions to the commit (or PR) so they can see the new api.

I meant "reviewed" as that others will see the change, because you said the commits should have been split.

dont understand why a closed PR should be reviewed by anyone.