Last_reset attribute resets too often / doesn't match sensor value

Version of the custom_component
v0.2.0
Configuration
Installed via HACS. Configured via GUI config flow. No errors to report (this is a logic issue, not an error/exception).
Describe the bug
The new energy management stuff in Home Assistant expects that you have an entity which "counts up" as usage is measured, and then at some point if that entity resets to 0, the last_reset attribute on the sensor should be updated to the current timestamp.
The current charge sensor is not behaving this way.

Because the last_reset attribute was updated without the sensor resetting, Home Assistant doesn't track any usage in the energy dashboard:

Essentially, the last_reset value must be updated nightly at 12 AM, and at the same moment, the sensor must be reset to 0.
Future Thoughts
Today - in 2021.8.x - this is broken.
However, as of 2 days ago, they announced that this mechanism was "deprecated": https://developers.home-assistant.io/blog/2021/08/16/state_class_total (Of course, just as people were starting to implement this whole thing... 🙄)
And instead, they are adding state_class: total_increasing which represents an entity that counts up forever (unless HA restarts).
Ideally, since this custom component is developed much more rapidly than the official integration (ahem...OAuth... 🙄), it would be awesome if we could:

Fix the last_reset attribute issue and push a new version, so that energy monitoring starts working today for users that have this configured
Add support for state_class: total_increasing (or just use the existing state_class: measurement since it sounds like they are tweaking the logic behind this?) and wait for HA to release with these changes
Remove or end support for the last_reset attribute (or leave it... it probably doesn't hurt anything? HA just won't read it.)

I am not a strong Python developer, but if this is really easy to fix and someone could point me in the right direction, I can take a crack at it. I can write Python but I don't have familiarity with running tests or anything like that, sorry. 😅 I want to help if I can, because I think it would be really cool for HA to track my overall kWh used for charging my Tesla!

The Tesla API doesn't provide a data point on when the energy added data is reset. Right now we estimate it based on when the value is less than the old value which appears to map to the reset behavior. I believe Tesla resets the value every time you reconnect the charger. It doesn't care what day it is.
I'm not sure if there's a real solution to map it into HA's ecosystem, which you noted is changing. I'm inclined to wait till that's settled before trying to rewrite the behavior.

Ah, I see. I thought the incrementing logic was done within the addon here, not within Tesla's API itself.
That makes sense, I can understand wanting to wait.
And to your point, I think checking if the value is less will work - and if you detect that, you can just set the last_reset timestamp to that moment in time. I don't think it has to be midnight necessarily. And yeah... all of this could be going away, it sounds like. 🙂

And for anyone else reading this thread, I can provide a really simple workaround that gets close to the correct kWh (off by maybe ±0.1kWh every 10kWh).

Make a sensor template for current charger wattage, use the following template to calculate wattage using A * V, your sensor template should look similar to this:

{{ (state_attr('sensor.xxx_charging_rate_sensor', 'charger_actual_current') | int) * (state_attr('sensor.xxx_charging_rate_sensor', 'charger_voltage') | int) }}

Use the hilariously-named *integration* integration (actually computes the Reimann sum of a graph) to calculate the daily sum of the wattage:

sensor:
  - platform: integration
    source: sensor.voyager_charger_wattage
    name: tesla_charged_kwh
    unit_prefix: k
    unit_time: h
    round: 2

Restart HA.
Before you use this entity, you have to go into the Customizations interface and set device_class: energy AND unit_of_measurement: kWh, or the Energy component in HA won't let you select it as an energy tracking source.
While you're in there, why not change the friendly_name to something, and icon to mdi:car-electric while you're at it? 😉

This resulting entity will be set up with the correct attributes to work directly with the Energy component. It has state_class: measurement and a last_reset which resets at midnight (along with the value). It should show up in your device consumption entity list appropriately:

A bit manual/hacky, but it works!

Thanks. I'll leave this open so people can see your workaround.
To be honest, we likely need to expose another sensor to fit with the HA home paradigm. The problems with energy_added:

it doesn't differentiate between charging inside or outside the home
it doesn't account for pass through energy use. E.g., warming up the car when not charging the battery.

I haven't played with the API enough to determine if we have any actual energy measurements that are realtime. Perhaps there's an instantaneous power API we can provide and then HA can calculate it based on where the car is and for how long.

Should be resolved by https://github.com/alandtse/tesla/releases/tag/v0.2.1


{containerapp} az containerapp update fix list secret value for populate

fix issue: https://github.com/Azure/azure-cli-extensions/issues/6712
This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

containerapp

Hi @zhoxing-ms
Could you please help to review and approve this PR? Thanks!


Third Party summary mail has wrong release version

Describe the Bug
The Mail we send out after each successful release creation does currently have a wrong release version. After we shipped v0.7.0-alpha.1 release, there was still the old v0.6.2 release included in the mail

Steps to Reproduce

See Mail screenshot

Expected Behavior
Use correct version in Third-party summary e-mail
Additional context
It seems to work perfectly fine in the Camunda Modeler Releases.

This might be helpful:
https://stackoverflow.com/questions/4154485/git-describe-ignores-a-tag/4154518#4154518

It came clear the tag really doesn't was annotated. It's because we had to manually create it because travis didn't start the publishing after npm run release. In this step, we simply forgot to annotate it (-a). So no work needs to be done here.


Spacing Guideline

To create an extensive guideline for the designers on how to use the Container component with examples.

Notion Doc
Container Component


Opening Grib2 Wind files from NOAA fails

If I attempt to open a marine GRIB2 file from NOAA I get an exception:
GribDotNet.Section.InvalidSectionNumberError was unhandled
Message: An unhandled exception of type 'GribDotNet.Section.InvalidSectionNumberError' occurred in FSharp.Core.dll

The error occurs because in:
GribReader.fs Line 67, apparently because indicatorSection.Discipline is set to "Reserved".

The problem seems to happen with any NOAA marine file from:
http://weather.noaa.gov/pub/SL.us008001/ST.expr/DF.gr2/DC.ndfd/AR.oceanic/VP.004-007/

I could be doing something stupid, like not decoding the .bin file into .grib2, but I can't find any info on the necessity of doing so.  Also the first few binary bytes of the failing files match known good .grib2 files so I'm doubting additional decoding is actually necessary.

I've now confirmed using wgrib2 that the files do in fact contain valid Grib2 data.

OK. This should be closed.  I belatedly understand BIN files are just a bunch of GRIB files appended together, and separating them out is outside the domain of GribDotNet.


fix: acount corrected to account

This PR corrects the typo in the extension that routes to acount instead of account.  It appears that it's already fixed on the backend as you can see that when you arrive at acount you're redirected to account.  This PR should make that redirection unnecessary. The GIF below illustrates what happens now, should this PR be merged, the redirect you see at present should not happen.

@johnnyreilly
Thanks!


Add code standard documentation

Add code standard documentation. Copy content from old wiki page.

Shall i add a part about atom, eslinter or nuclide (facebook ide based on atom).

@salas-wcd, go for it.

@salas-wcd Will you be adding those sections or should this be merged as it stands?

I will add this today. If not merge and i will do extra pr.

Go merge this, I will do another PR for atom.


Minor fixes for esp32 configurations

Minor fixes against the esp32 build:

Removed #define DISABLED & ENABLED in Constants.hpp due to clash with existing symbols in esp32 IDF. DISABLED & ENABLED don't appear anywhere else in the OAT codebase.
Removed unnecessary #include "Constants.hpp" in .\boards* . Constants is already included in the parent Configuration.hpp.
In Configuration.hpp default BOARD to new BOARD_UNKNOWN value and extend conditional tree at line 253. This is to prevent potential misconfigured hardware in case BOARD_TYPE is undefined: for an esp32 build, if BOARD_TYPE is undefined then Configuration.hpp would apply pin assignments for BOARD_AVR_MEGA2560. Mismatches were possible with other configurations also. With this change no pin assignments are made, however the configuration checks later in Configuration.hpp will provide a suitable message. @CTetford - you may want to review this.

Mh ... could we sync the changes with hal ideas? Some of these changes already happened in the hal branch

Mh ... could we sync the changes with hal ideas? Some of these changes already happened in the hal branch

I can take a look at making sure these are also merged/addressed into hal branch. It would also be worth merging these into devel for now to fix the warnings on esp32 there. Has all new development switched to hal? I'm still working with the premise that devel feeds release, and that at some point we will switch to hal.

I can take a look at making sure these are also merged/addressed into hal branch. It would also be worth merging these into devel for now to fix the warnings on esp32 there. Has all new development switched to hal? I'm still working with the premise that devel feeds release, and that at some point we will switch to hal.

Hi @andre-stefanov . Can we get this merged into develop? The build warnings and configuration conflicts fixed by this PR are still present.


Fixed the link to the Adam research paper

Fixed the link to the, "Adam: A Method for Stochastic Optimization" research paper.
This link no longer works: http://arxiv.org/pdf/1412.6980.pdf
I and many others involved with machine learning, find it's better to link to the research paper's arXiv page itself, and not directly to the PDF file. This is because it's not easy to get to the research paper's arXiv page, directly from the PDF, but it is easy to get to the PDF from the arXiv page.
Using HTTPS instead of HTTP is also a better choice for security, privacy, and in some cases it may even be faster.

thanks!


Not (fully?) working with ControlNet and MultiDiffusion

I see they are supported and I have them enabled,

But it doesn't seem to be doing anything? Extension settings reset back to default every time I run/restart the webui.

For me it is teh same - controlnet settings are not saved.

Finally got it working with latest version...


Your FFProbe version is too old and does not support -help option, please upgrade.

When trying to use FFprobe in this package, it throws an exception saying it is too old, yet I have upgraded to the latest version of FFmpeg and FFprobe, and running ffprobe -help works in the console/terminal.
Installed the package via composer as so:
"require": {
  "php-ffmpeg/php-ffmpeg": "0.4.4"
}

The error traces to line 60 of /vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFProbe/OptionsTester.php:
try {
  $output = $this->ffprobe->command(array('-help', '-loglevel', 'quiet'));
} catch (ExecutionFailureException $e) {
  throw new RuntimeException('Your FFProbe version is too old and does not support `-help` option, please upgrade.', $e->getCode(), $e);
}

This is locally on a Mac OS 10.9.1, I've updated FFmpeg via:
brew update
brew upgrade ffmpeg

This upgraded my ffmpeg and ffprobe versions to 1.2.4, as  ffmpeg -version and ffprobe -version, both give 1.2.4.
I've created an FFprobe instance with configuration passed through it, with the binary paths I get from executing which ffmpeg and which ffprobe.  But then when trying to read a file, it throws the exception:
$config = array(
 'ffmpeg.binarie' => '/usr/local/bin/ffmpeg'
 'ffprobe.binaries' => '/usr/local/bin/ffprobe'
 'timeout' => 3600
 'ffmpeg.threads' => 12
)

$ffprobe = FFMpeg\FFProbe::create($config);

$file_path = '/htdocs/mp4/test1.mp4';

$file_info = $ffprobe
  ->streams($file_path)
  ->videos()
  ->first()
  ->get('duration');

echo '<pre>';
print_r($file_info);
echo '</pre>';

Any thoughts as to why or how to fix?  Many thanks!

I had this problem myself on XAMPP and I solved by putting this line:
DYLD_LIBRARY_PATH=/usr/bin
just before the line:
export DYLD_LIBRARY_PATH
from /Applications/XAMPP/bin/envvars and then restarted XAMPP.
Thanks, lukedanielson and codeclown!

@atiberius
I faced the same error and this helped me aswell. Though with my setup it was LD_LIBRARY_PATH=/usr/bin
export LD_LIBRARY_PATH

I had fixed this issue on CentOS 6.5 , use nginx.
In 'php.ini' file liks this:
disabled_functions = 'exec,...'
remove 'exec' in this line,then and everything is okay.

I was also stuck with the same problem.
The problem is that ffprobe was looking for the latest version and
it depends on which OS you are using
Download link: https://ffbinaries.com/downloads
Get the correct exe files from here and use it like
for linux live server
 'yourdiskname',

    'ffmpeg.binaries'  => '/home/username/sitename/usr/local/bin/ffmpeg',
    'ffprobe.binaries' => '/home/username/sitename/usr/local/bin/ffprobe',

    'timeout' => 3600,
];
and for windows use it like
 'yourdiskname',

    'ffmpeg.binaries'  => 'C:/FFmpeg/bin/ffmpeg.exe',
    'ffprobe.binaries' => 'C:/FFmpeg/bin/ffprobe.exe',

    'timeout' => 3600,
];

Sometimes you get this error because you are using wrong version of ffmpeg or ffprobe,
for example if you are using linux and your architecture is x86_64 and you have binaries of ffmpeg for amd64 then it shows this error : Your FFProbe version is too old, it was that case in my case, so if you are using binaries of different architecture and you have some different architecture then the binaries you have, then it can happen, it also happen in the case of different binaries of os like you are using ffprobe.exe on linux OS.
in my case i am only putting binaries in bin folder as it is, i am not installing it, but if you have installed it then it may be not happen in your case.

i am also having this same issue as i want to convert a video as an instagram reel video codec. Please help.


chore(core): fixed broken spacings in nav cat-card

I basically just removed the conditional styling for nav elements inside cat-cards as we do not need that anymore.
This would also mean that a card that's supposed to contain a nav element also needs the class "cat-p-xs" to work properly. Is that an acceptable solution or too manual?

too manual :D


Channel Override Alternative

I have been using channel override to specify the approximate direction of the drone (angle rotation) and control the speed as it moves forward. This is so that the drone can land precisely on a target based on it's approximate horizontal and vertical distance. However, I've read on the documentation that this is "highly dis-commended". If so, what are the alternative commands?

On Mon, 26 Dec 2016, Jo Dumagpi wrote:

I have been using channel override to specify the approximate direction of
the drone (angle rotation) and control the speed as it moves forward. This
is so that the drone can land precisely on a target based on it's
approximate horizontal and vertical distance. However, I've read on the
documentation that this is "highly dis-commended". If so, what are the
alternative commands?

guided mode, specifying angles at which the aircraft should be oriented.

Is there a similar function for fixed wing? Preferably one that behaves similarly to FBWB? It seems guided mode for fixed wing sets target roll and pitch angles, rather than any direct transnational velocities.

You may refer to this: #712
Changing attribute is more likely what you are looking for.


Request request

https://gyazo.com/61fc79b3a17e8564be077cfef9871649
Is it possible to erase the white frame?

Added an option in last version (Boss module window -> show arena border)


Question : Does it have any Quota limit like the official API?

I want to know if there is any Quota limit like the official YouTube Android Player API.
I really wish it to not have any but if it has then what is the limit?
Thank You sooo much For this Great library.
It was really needed for my startup plan. You saved my cost of video hosting.
Thanks a Lot.

The official YouTube player has no quota limit. This library has no quota limit.


Better method to control confirm and cancel button

In current solution, we pass confirm and cancel button from high-order component to field component.
We should find a better way to pass these two behaviors to children components.
source
deploy hoc: https://github.com/Canner/canner/blob/master/src/hocs/deploy.js#L95-L96

#7

+1


Enforce that the nested UserGroups are free of cycles

We currently do not check if there is a cycle among the UserGroups in the API : https://github.com/zulip/zulip/blob/cdc94d27196846f33feb79a1701e94bb71e348b7/zerver/views/user_groups.py#L232-L239
This means that it is possible for one to create user groups a and b, such that a is a subgroup of b, and b  is a subgroup of a. While this does not lead to our recursive query for memberships to fail, we do want to enforce that the user groups are free of cycles, i.e. satisfy the DAG constraints.
CZO discussion

@sahil839 can you pick this one up when you get back from your trip?

Sure.


[editor modal] project level widgets not saving properly

Some weirdness when you try to save a nested widget for the second or third time.

Fixed by b9c25d554291b63bd34ff03045e135a2faff44dd


feat(state) handle consumers with custom_id only

This draft adds custom_id as one of the schema-allowed fields for consumers along with new lookup and de-duplication code to support them. This allows syncing files like:
_format_version: "1.1"
consumers:
- custom_id: foo

More in-depth background:
deck dumps and KIC usage of deck's libraries can omit IDs, but still allow syncing/diffing based on unique fields. At present, these fields are predetermined, and all entities have a single unique field only.
Consumers are (possibly) unique in that both their username and custom_id fiends are unique, and only one or the other is required. deck wants to look up consumers via username, however, so we impose a de facto requirement that you always populate the username, normally enforced by schema validity checks. KIC bypasses this check, however, so it can pass consumers without usernames, resulting in a nil reference crash when attempting to retrieve a consumer by a non-existent username.
The exposed Consumer getter accepts some arbitrary string, and then attempts a lookup against either the id or Username indices. We effectively rely on a soft assumption that nobody attempts to create a problematic consumer set like:
{{"id":"32d32db5-e7a0-4d3f-a15d-1734fa0af347","username":"foo"},
{"id":"126d965b-6c59-474a-8858-c51c811f8a1e","username":"32d32db5-e7a0-4d3f-a15d-1734fa0af347"}}

That could theoretically trip up the current getter, which tries to search all fields indices without regards for for their contents. We could expand this to search to include the new CustomID index, which would allow collisions between these consumers:
{{"id":"32d32db5-e7a0-4d3f-a15d-1734fa0af347","username":"foo"},
{"id":"126d965b-6c59-474a-8858-c51c811f8a1e","custom_id":"foo"}}

We could avoid this by refactoring across the board to search only a single index, i.e. here we'd lookup by ID, Username, and CustomID each separately, and for services by ID and name separately, and so on, or keep that general pattern with an additional CustomID-only search in the event that the initial Username+ID search fails. This takes the consumer-specific approach.

As @rainest said, there is no immediate plan to merge this PR. It will serve as reference for a future implementation.

As @rainest said, there is no immediate plan to merge this PR. It will serve as reference for a future implementation.

As @rainest said, there is no immediate plan to merge this PR. It will serve as reference for a future implementation.

In that case, I'll close this PR.


Temporary turn off GCM sink

@piosz will rewrite it to use the new struct and official client library.

LGTM

Build/test problems are not related to the PR.


ArchiveUtils: Use the fluent safeMkdirs() in one more place

Thsi is a fixup for cf9f4c8.
Signed-off-by: Sebastian Schuberth<EMAIL_ADDRESS>

Ah damn it. Missed the typo in the commit message.


add firejail

I have checked that this app does not already have a pending request and has not previously been declined.
App Name: firejail
Download URL: https://sourceforge.net/projects/firejail/files/firejail/
Website URL: https://firejail.wordpress.com/
project github page : https://github.com/netblue30/firejail
there is a ppa for ubuntu but i don't know if it's a good idea or not to add their ppa .
App Summary: Firejail is a SUID sandbox program that reduces the risk of security breaches by restricting the running environment of untrusted applications using Linux namespaces, seccomp-bpf and Linux capabilities.

I have a commit here https://github.com/Xmetalfanx/deb-get/commit/cba81dc79e3607a89672820815db6b9ffc96fbaf for this, but I feel like I should test this (not sure how, but i need to learn) before submitting a PR ... if the team sees this commit and nothing looks wrong, I have no problem submitting the PR then.

To test it, go in the terminal to the folder where you cloned the repository and run:
./deb-get install firejail


Update localNotification.ctrl.js

i think, to be able to calculate "_60_seconds_from_now", the "now" value has to be a number, so I added the "getTime()" method

Per the CONTRIBUTING.md, This should be issued against dev-next; not master.

Thank you @gortok


Add @ptobuon's mofh-net-api

This was requested a while ago, however a PR was never made for it.
Not sure if there was something else I should have added.

Alright, thanks for adding it!


SPFx - Gulp serve keeps reloading

Category

[x] Question
[ ] Typo
[ ] Bug
[ ] Additional article idea

Expected or Desired Behavior
When I run gulp serve in my SPFx 1.8 project I expect that to see in the terminal a couple of reloads and then the workbench ready to be used.
Observed Behavior
Since a couple of weeks (I'm not sure if this started after the upgrade to 1.8) very often gulp serve keeps reloading endlessly. I can see my browser refresh continuously but I'm not able to drop my webpart or use it in the workbench.
The only solution is to stop and restart gulp multiple times until it works fine...
this is my gulpfile.js:
'use strict';

const gulp = require('gulp');
const build = require('@microsoft/sp-build-web');
const webpack = require('webpack');
const gutil = require('gulp-util');
const fs = require('fs');
build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`);

var getJson = function (file) {
  return JSON.parse(fs.readFileSync(file, 'utf8'));
};

let modifyAzureSettingsSubTask = build.subTask('modify-azure-conf-subtask', function(gulp, buildOptions, done) {
  let env = buildOptions.args["azure"] || "dev";
  if (env){
    let azureBaseURLs = getJson('./config/azure-cdnbase.json');
    let deployAzure = getJson('./config/deploy-azure-storage-dev.json');
    let manifest = getJson('./config/write-manifests.json');
    let contentwebpart = getJson('./src/webparts/contentPage/ContentPageWebPart.manifest.json');
    let mapwebpart = getJson('./src/webparts/projectsMap/ProjectsMapWebPart.manifest.json');
    let sugchangewebpart = getJson('./src/webparts/suggestChange/SuggestChangeWebPart.manifest.json');
    let reldocgewebpart = getJson('./src/webparts/relatedDocs/RelatedDocsWebPart.manifest.json');

    let baseurl = "";

    if (env.toLowerCase() == "dev"){
      baseurl = azureBaseURLs.cdnBasePathDEV;
      deployAzure = getJson('./config/deploy-azure-storage-dev.json');
    }else if (env.toLowerCase() == "test"){
      baseurl = azureBaseURLs.cdnBasePathTEST;
      deployAzure = getJson('./config/deploy-azure-storage-test.json');
    }else if (env.toLowerCase() == "prod"){
      baseurl = azureBaseURLs.cdnBasePathPROD;
      deployAzure = getJson('./config/deploy-azure-storage-prod.json');
    }
    manifest.cdnBasePath = baseurl;
    contentwebpart.preconfiguredEntries[0].properties.cdnurl = baseurl.replace("/ggs/","");
    mapwebpart.preconfiguredEntries[0].properties.cdnurl = baseurl.replace("/ggs/","");
    sugchangewebpart.preconfiguredEntries[0].properties.cdnurl = baseurl.replace("/ggs/","");
    reldocgewebpart.preconfiguredEntries[0].properties.cdnurl = baseurl.replace("/ggs/","");

    fs.writeFile('./config/write-manifests.json', JSON.stringify(manifest, null, 4),(err) => { if (err) throw err; });
    fs.writeFile('./config/deploy-azure-storage.json', JSON.stringify(deployAzure, null, 4),(err) => { if (err) throw err; });
    fs.writeFile('./src/webparts/contentPage/ContentPageWebPart.manifest.json', JSON.stringify(contentwebpart, null, 4),(err) => { if (err) throw err; });
    fs.writeFile('./src/webparts/projectsMap/ProjectsMapWebPart.manifest.json', JSON.stringify(mapwebpart, null, 4),(err) => { if (err) throw err; });
    fs.writeFile('./src/webparts/suggestChange/SuggestChangeWebPart.manifest.json', JSON.stringify(sugchangewebpart, null, 4),(err) => { if (err) throw err; });
    fs.writeFile('./src/webparts/relatedDocs/RelatedDocsWebPart.manifest.json', JSON.stringify(reldocgewebpart, null, 4),(err) => { if (err) throw err; });

    gulp.src('/src/webparts/contentPage/ContentPageWebPart.manifest.json')
    .pipe(env ? gutil.noop() : gulp.dest('/src/webparts/contentPage/'));

    gulp.src('./src/webparts/projectsMap/ProjectsMapWebPart.manifest.json')
    .pipe(env ? gutil.noop() : gulp.dest('./src/webparts/projectsMap/'));

    gulp.src('./src/webparts/suggestChange/SuggestChangeWebPart.manifest.json')
    .pipe(env ? gutil.noop() : gulp.dest('./src/webparts/suggestChange/'));

    gulp.src('./src/webparts/relatedDocs/RelatedDocsWebPart.manifest.json')
    .pipe(env ? gutil.noop() : gulp.dest('./src/webparts/relatedDocs/'));

    gulp.src('./config/write-manifests.json')
    .pipe(env ? gutil.noop() : gulp.dest('./config'));
  }

  return gulp.src('./config/deploy-azure-storage.json')
  .pipe(env ? gutil.noop() : gulp.dest('./config'));
});
let modifyAzureSettingsTask = build.task('modify-azure-conf', modifyAzureSettingsSubTask);
build.rig.addPreBuildTask(modifyAzureSettingsTask);

let bumpRevisionSubTask = build.subTask('bump-revision-subtask', function(gulp, buildOptions, done) {
  var skipBumpRevision = buildOptions.args["revision"] === false;
  if(!skipBumpRevision) {
    var pkgSolution = getJson('./config/package-solution.json');
    var oldVersionNumber = String(pkgSolution.solution.version);
    gutil.log('Old Version: ' + oldVersionNumber);
    var oldBuildNumber = parseInt(oldVersionNumber.split('.')[3]);
    gutil.log('Old Build Number: ' + oldBuildNumber);
    var newBuildNumber = oldBuildNumber+1;
    gutil.log('New Build Number: ' + newBuildNumber);
    var newVersionNumber = oldVersionNumber.substring(0, String(oldVersionNumber).length - String(oldBuildNumber).length) + String(newBuildNumber);
    gutil.log('New Version: ' + newVersionNumber);
    pkgSolution.solution.version = newVersionNumber;
    fs.writeFile('./config/package-solution.json', JSON.stringify(pkgSolution, null, 4),(err) => { if (err) throw err; });
  }
  return gulp.src('./config/package-solution.json')
  .pipe(skipBumpRevision ? gutil.noop() : gulp.dest('./config'))
});

let bumpRevisionTask = build.task('bump-revision', bumpRevisionSubTask);
build.rig.addPreBuildTask(bumpRevisionTask);

build.configureWebpack.mergeConfig({
  additionalConfiguration: (generatedConfiguration) => {
    generatedConfiguration.devtool = 'source-map';

    for (var i = 0; i < generatedConfiguration.plugins.length; i++) {
      const plugin = generatedConfiguration.plugins[i];
      if (plugin instanceof webpack.optimize.UglifyJsPlugin) {
        plugin.options.sourceMap = true;
        break;
      }
    }

    for (var i = 0; i < generatedConfiguration.module.rules.length; i++) {
        const mo = generatedConfiguration.module.rules[i];
       if (mo.use && mo.use.indexOf("\\source-map-loader\\") > -1){
          generatedConfiguration.module.rules[i].exclude = /(json2typescript)/;
          break;
       }

    }
    return generatedConfiguration;
  }
});

build.initialize(gulp);

gulp.task('version-sync', function () {
   const gutil = require('gulp-util');
   const fs = require('fs');
   var pkgConfig = require('./package.json');
   var pkgSolution = require('./config/package-solution.json');
   gutil.log('Old Version:\t' + pkgSolution.solution.version);
   var newVersionNumber = pkgConfig.version.split('-')[0] + '.0';
   pkgSolution.solution.version = newVersionNumber;
  gutil.log('New Version:\t' + pkgSolution.solution.version);
  fs.writeFile('./config/package-solution.json', JSON.stringify(pkgSolution, null, 4));

});

gulp local version
+--<EMAIL_ADDRESS>--<EMAIL_ADDRESS>
SPFx version:
+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>
gulp serve output:
gulp serve
Build target: DEBUG
[15:59:18] Using gulpfile D:\Git Repos\XYZ\SPFxProjects\GGS\gulpfile.js
[15:59:18] Starting gulp
[15:59:18] Starting 'serve'...
[15:59:18] Starting subtask 'configure-sp-build-rig'...
[15:59:18] Finished subtask 'configure-sp-build-rig' after 3.96 ms
[15:59:18] Starting subtask 'spfx-serve'...
[15:59:18] Starting server...
Starting api server on port 5432.
Registring api: /workbench
Registring api: */*
[15:59:18] Finished subtask 'spfx-serve' after 276 ms
[15:59:18] Starting subtask 'pre-copy'...
[15:59:18] Finished subtask 'pre-copy' after 23 ms
[15:59:18] Starting subtask 'modify-azure-conf-subtask'...
[15:59:18] Server started https://localhost:4321
[15:59:18] LiveReload started on port 35729
[15:59:18] Running server
[15:59:18] Opening https://localhost:5432/workbench using the default OS app
[15:59:18] Finished subtask 'modify-azure-conf-subtask' after 24 ms
[15:59:18] Starting subtask 'bump-revision-subtask'...
[15:59:18] Old Version: <IP_ADDRESS>
[15:59:18] Old Build Number: 128
[15:59:18] New Build Number: 129
[15:59:18] New Version: <IP_ADDRESS>
[15:59:18] Finished subtask 'bump-revision-subtask' after 6.83 ms
[15:59:18] Starting subtask 'copy-static-assets'...
[15:59:18] Starting subtask 'sass'...

Steps to Reproduce
run gulp serve
Any help would be really appreciated.
thanks
gulpfile.js.txt

Your custom gulp tasks are modifying files that are monitored by the gulp serve command. When those files are modified, specifically the component's manifest JSON file, it's triggering a rebuild, which triggers your commands which repeats the process...
Looks like you're going to have to reconsider how you're automatically incrementing your build numbers... I'd consider doing this with special build tasks, rather than hooking into the tasks called by gulp serve.


feat: Replace priority channel

[x] Implement priority channels
[x] Replace the original code

The code of the channel module should not rely on service::event::Priority, because the enum is not used by the fn it exposes to public, should use an internal enum in bound.rs and unbound.rs

The channel module is currently not public, but the structure service:: event::Priority should really be moved into the channel module.


Problems with Rails 5

It seems like Inherited Resources have problems with Rails 5. No hurry, I just leave this here to inform you about it.
There was an error while trying to load the gem 'inherited_resources'.
Gem Load Error is: uninitialized constant ActionController::Responder
Backtrace for gem load error is:
/home/hron/.rvm/gems/ruby-2.3.0@compass/gems/inherited_resources-1.3.1/lib/inherited_resources/responder.rb:2:in `<module:InheritedResources>'
/home/hron/.rvm/gems/ruby-2.3.0@compass/gems/inherited_resources-1.3.1/lib/inherited_resources/responder.rb:1:in `<top (required)>'
/home/hron/.rvm/gems/ruby-2.3.0@compass/gems/inherited_resources-1.3.1/lib/inherited_resources.rb:4:in `<top (required)>'
/home/hron/.rvm/gems/ruby-2.3.0@global/gems/bundler-1.12.5/lib/bundler/runtime.rb:86:in `require'
/home/hron/.rvm/gems/ruby-2.3.0@global/gems/bundler-1.12.5/lib/bundler/runtime.rb:86:in `block (2 levels) in require'
/home/hron/.rvm/gems/ruby-2.3.0@global/gems/bundler-1.12.5/lib/bundler/runtime.rb:81:in `each'
/home/hron/.rvm/gems/ruby-2.3.0@global/gems/bundler-1.12.5/lib/bundler/runtime.rb:81:in `block in require'
/home/hron/.rvm/gems/ruby-2.3.0@global/gems/bundler-1.12.5/lib/bundler/runtime.rb:70:in `each'
/home/hron/.rvm/gems/ruby-2.3.0@global/gems/bundler-1.12.5/lib/bundler/runtime.rb:70:in `require'
/home/hron/.rvm/gems/ruby-2.3.0@global/gems/bundler-1.12.5/lib/bundler.rb:102:in `require'
/stuffz/projects/playground/rails/compass/config/application.rb:17:in `<top (required)>'
/home/hron/.rvm/gems/ruby-2.3.0@compass/gems/spring-1.7.2/lib/spring/application.rb:82:in `require'
/home/hron/.rvm/gems/ruby-2.3.0@compass/gems/spring-1.7.2/lib/spring/application.rb:82:in `preload'
/home/hron/.rvm/gems/ruby-2.3.0@compass/gems/spring-1.7.2/lib/spring/application.rb:143:in `serve'
/home/hron/.rvm/gems/ruby-2.3.0@compass/gems/spring-1.7.2/lib/spring/application.rb:131:in `block in run'
/home/hron/.rvm/gems/ruby-2.3.0@compass/gems/spring-1.7.2/lib/spring/application.rb:125:in `loop'
/home/hron/.rvm/gems/ruby-2.3.0@compass/gems/spring-1.7.2/lib/spring/application.rb:125:in `run'
/home/hron/.rvm/gems/ruby-2.3.0@compass/gems/spring-1.7.2/lib/spring/application/boot.rb:19:in `<top (required)>'
/home/hron/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/home/hron/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
-e:1:in `<main>'
Bundler Error Backtrace:
 (Bundler::GemRequireError)
	from /home/hron/.rvm/gems/ruby-2.3.0@global/gems/bundler-1.12.5/lib/bundler/runtime.rb:85:in `block (2 levels) in require'
	from /home/hron/.rvm/gems/ruby-2.3.0@global/gems/bundler-1.12.5/lib/bundler/runtime.rb:81:in `each'
	from /home/hron/.rvm/gems/ruby-2.3.0@global/gems/bundler-1.12.5/lib/bundler/runtime.rb:81:in `block in require'
	from /home/hron/.rvm/gems/ruby-2.3.0@global/gems/bundler-1.12.5/lib/bundler/runtime.rb:70:in `each'
	from /home/hron/.rvm/gems/ruby-2.3.0@global/gems/bundler-1.12.5/lib/bundler/runtime.rb:70:in `require'
	from /home/hron/.rvm/gems/ruby-2.3.0@global/gems/bundler-1.12.5/lib/bundler.rb:102:in `require'
	from /stuffz/projects/playground/rails/compass/config/application.rb:17:in `<top (required)>'
	from /home/hron/.rvm/gems/ruby-2.3.0@compass/gems/spring-1.7.2/lib/spring/application.rb:82:in `require'
	from /home/hron/.rvm/gems/ruby-2.3.0@compass/gems/spring-1.7.2/lib/spring/application.rb:82:in `preload'
	from /home/hron/.rvm/gems/ruby-2.3.0@compass/gems/spring-1.7.2/lib/spring/application.rb:143:in `serve'
	from /home/hron/.rvm/gems/ruby-2.3.0@compass/gems/spring-1.7.2/lib/spring/application.rb:131:in `block in run'
	from /home/hron/.rvm/gems/ruby-2.3.0@compass/gems/spring-1.7.2/lib/spring/application.rb:125:in `loop'
	from /home/hron/.rvm/gems/ruby-2.3.0@compass/gems/spring-1.7.2/lib/spring/application.rb:125:in `run'
	from /home/hron/.rvm/gems/ruby-2.3.0@compass/gems/spring-1.7.2/lib/spring/application/boot.rb:19:in `<top (required)>'
	from /home/hron/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /home/hron/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from -e:1:in `<main>'

Oh, This is using inherited_resources 1.3.1 and it doesn't support Rails 5. Make sure you are using the master branch,

@rafaelfranca Master has a R5 compatibility? When do you expect it will be released?


Teach OutliersTransform to create a binary flag

🚀 Feature Request
Teach OutliersTransform create binary flag for regular and anomaly points
Proposal

In OutliersTransform add parameter add_flag: bool = False
Update the transform: now it should create binary flag 1 - outlier, 0 - regular if add_flag=True

Test cases
Test that Transform works correctly in case of add_flag=True
Additional context
No response

It doesn't seem really useful.


cpu used is greater than 90%

hello，When the app is I use this, very high CPU。Especially hot lead to equipment。
This thing when I commented code, this phenomenon is gone.
ex：
//PiwikTracker
//    [PiwikTracker sharedInstanceWithSiteID:PiwikProductionSiteId baseURL:[NSURL URLWithString:PiwikProductionServerURL]];
//    [PiwikTracker sharedInstance].includeDefaultCustomVariable = NO;
//    [PiwikTracker sharedInstance].dispatchInterval = 5;

Hi @meoliver, thanks for your report. Can you record an instrument session with the Time Profiler so we can debug which code is actually causing the load?

I have to reason, but some question, need you to explain.
When the request error ，call back，
class  PiwikNSURLSessionDispatcher   method  shouldAbortdispatchForNetworkError
when  return  yes（  error.code == NSURLErrorCannotFindHost ）。
Then call   Class PiwikTracker  method  sendEvent（failureBlock  line： 1033），and hasMore is yes。
This time, the request will be continuous, leading to excessive CPU load。
Call  Class PiwikTracker  method   eventsFromStore: completionBlock:  (line 1490 ), completionBlock   parameter  hasMore  may be yes。
I want to know   Class PiwikTracker   line1461 -- line 1490
fetchRequest.fetchLimit、returnCount、eventEntities.count ，Their calculation logic is to do？
thanks

@brototyp   If you are paying attention to my question？

Hi @meoliver, thanks for digging into the issue. As far as I understand you: When there is an issue transmitting an event to the server and not all events can be transmitted with one call to the server, the SDK will try to transmit the same event(s) over and over. If the error is always the same it will always repeat to transmit the same event over and over again.
As far as I can see this should be prevented by the shouldContinue value in the failure completion block. The 'PiwikNSURLSessionDispatcher.m' has a '-shouldAbortdispatchForNetworkError:' method that should return yes for a NSURLErrorCannotFindHost error. This matches with what you found out. I am not sure why in your case this leads to excessive CPU load.
Did you were able to record an Instruments session with the Time Profiler?
Unfortunately I am not sure what exactly your question is. Can you rephrase it?

@brototyp thanks。
when   '-shouldAbortdispatchForNetworkError:'  return yes，and  call  'eventsFromStore: completionBlock: '
When the core data, save the data after the article has more than 20.
numberOfEvents  is 20；
method   ’eventsFromStore:(NSUInteger)numberOfEvents completionBlock: ‘ {

completionBlock(entityIDs, events, eventEntities.count == fetchRequest.fetchLimit ? YES : NO);
// this  ‘eventEntities.count == fetchRequest.fetchLimit‘  is yes。

}
NSURLErrorCannotFindHost error ，There has been。
method  'sendEvent '
void (^failureBlock)(BOOL shouldContinue) = ^ (BOOL shouldContinue) {
PiwikDebugLog(@"Failed to send stats to Piwik server");
    if (shouldContinue) {

******* this code   pay attention to******
[weakSelf sendEventDidFinishHasMorePending:hasMore];
// method ’sendEventDidFinishHasMorePending:'  hasMore  is  yes，  call  ’sendEvent‘，but  NSURLErrorCannotFindHost  error，He'll cycle call。
// ’sendEvent‘----’eventsFromStore:completionBlock:‘----failureBlock() -----  ’sendEvent‘
******* this code   pay attention to******
} else {
[weakSelf sendEventDidFinishHasMorePending:NO];
}
  }

@meoliver I am still not sure what you are meaning. Let me try to elaborate:

PiwikTracker:sendEvent gets called
numberOfEventsToSend is less than existing events, so hasMore is true
the events are tried to be transmitted, but there is an NSURLErrorCannotFindHost error
the failure-block (PiwikTracker:1029) is called with a shouldContinue = false
because shouldContinue is false the sendEventDidFinishHasMorePending is called with hasMore  = false
sendEventDidFinishHasMorePending restarts the timer and exits

Is this correct? Did you were able to record an Instruments session with the Time Profiler? Please attach a Time Profiler session.

@brototyp   thanks。
[PiwikTracker sharedInstanceWithSiteID:PiwikProductionSiteId baseURL:[NSURL URLWithString:@"http://tracking.googlerror.com/piwik/"]];
[PiwikTracker sharedInstance].includeDefaultCustomVariable = NO;
[PiwikTracker sharedInstance].dispatchInterval = 5;

The @"http://tracking.googlerror.com/piwik/" is NSURLErrorCannotFindHost
the failure-block (PiwikTracker:1033) add  nslog（），For example：
if (shouldContinue) {
NSLog(@"Piwik has been called");
[weakSelf sendEventDidFinishHasMorePending:hasMore];
} else {
[weakSelf sendEventDidFinishHasMorePending:NO];
}
and  Click on the for more than 21 times。look  the  log

@brototyp  HI,Whether this can help you
piwik_error.trace.zip

@brototyp Hi,this is time profiler. Thanks
piwik.zip

Hi @meoliver, thanks for the recording. I was able to reproduce the issue and I guess I know what the issue is: PiwikNSURLSessionDispatcher:shouldAbortdispatchForNetworkError retunes YES if dispatching should be aborted. This method is used in PiwikNSURLSessionDispatcher:97. But its value is used as a parameter for the faliure-blocks parameter shouldContinue. That is exactly the wrong thing. If I see it correct line 97 should be: failureBlock(![self shouldAbortdispatchForNetworkError:error]); so inverting the bool value. Can you try that and get back in touch with me?

@brototyp
failureBlock(![self shouldAbortdispatchForNetworkError:error]);
I think it will not solve the problem。   when NSURLErrorTimedOut，Still can continuous to send the request。

@brototyp

@brototyp

@brototyp  Hi，
I want to know Class ‘PiwikTracker’ line1461 to line 1490
fetchRequest.fetchLimit、returnCount、eventEntities.count ，Their calculation logic is to do？
line 1490
completionBlock(entityIDs, events, eventEntities.count == fetchRequest.fetchLimit ? YES : NO);
The third parameter  is yes，and   shouldAbortdispatchForNetworkError:  return yes 。This will call cycles。
thanks

I think that is expected behavior. The sdk continues trying to transmit events if there is a timeout. We expect it to just be a temporary issue. Do you know what your timeout duration is? Here the timeout duration decides the "looping". So if the timeout is 1s the sdk will loop once per second. Which is an issue in the architecture. Better would be: If an event can't be transmitted in a transmission run we should not retry this event in this run. That is a bigger issue and requires quite some refactoring so we only fetch events we haven't already fetched.
I am not sure what your question there is. The eventEntities.count == fetchRequest.fetchLimit ? YES : NO is meant to decide it there are (or might be) more events queued. There is an issue here, that if there are exactly the amount of events queued that we want to transmit this will try one more time but I guess thats fine.

@brototyp Thank you very much care about my question.
So, this code you will follow the new to GitHub?
failureBlock(![self shouldAbortdispatchForNetworkError:error]);
Or，I modify the native code？

Please try to change it locally in your code. We are currently rewriting the whole sdk, fully written in swift. We are making sure this bug doesn't exist in the new sdk.

@meoliver - do you have a patch for this problem? We face it as well and we cannot wait for swift version. Could you please send it to me (tomas.kapler@etnetera.cz). Thank you.

@tkapler Have you tried the patch I proposed? If so, can you give us some feedback if it changed anything or if it did not affect the issue. I did interpret the silence @meoliver as approval that the patch works.

Closing this for now. Feel free to reopen if you have more information on this topic.


add composes for noUnknownProperty.

The current implementation of noUnknownProperty raises an error for the composes property, which is a part of the CSS Modules syntax (refer to CSS Modules Documentation). We need to modify the implementation so that it does not raise an error for the composes property if the css_modules option is enabled.
.className {
  color: green;
  background: red;
}

.otherClassName {
  composes: className;
  color: yellow;
}

@chansuke What do you think?
Could it be interesting for you?🙈

@denbezrukov
That sounds like a good suggestion and i'd like to handle this:)


Release to PyPi for 4.0

Just wondering when releasing 4.0 to PyPi is anticipated to happen; and if there's anything blocking the release from being made?
Happy to help with anything blocking to help get the release out a little sooner.

I'm currently aiming for this weekend! 😊


Initial Cafes Services wiki section

Also done here: https://github.com/textileio/go-textile/wiki/Cafes


Attempting to repack a sds with a file removed results in an error

If you remove a file from an unpacked sds and attempt to repack it it gives an unhandled exception error. This is inconvenient as I'm attempting to use a car replacement mod with the original car name by deleting tables/TextDatabase.dat and PREFAB_17.prf but the tool is preventing me.

If you remove a file from an unpacked sds and attempt to repack it it gives an unhandled exception error.

Did you just removed a file? Mafia 2 sds archives have sdscontent.xml file inside with a list of files containing in sds archive.
Check sdscontent.xml file and delete name of removed file from it.


How I could download a newer, super Mario, Bros Wii

We have installation instructions at https://newerteam.com/wii/help
And this is not the right place for this question. If you need further help you may contact us at the email<EMAIL_ADDRESS>


Initial pipeline prototype

Initial prototype

I think we should be good to go.
We should just make sure the containers are properly built and pushed to qbicpipelines when we merge into dev, and test again to make sure all processes function properly with the new containers.

Ok I think we tackled all the feedback. At this point, the only thing left is testing out the CI scripts and containers from qbicpipelines/ at dockehub. Since the containers are built and pushed on merge with dev, I will go ahead with this merge to test this, and if needed create another branch for clean-up and feedback from @ggabernet, hope that this is fine.


A result of AshPhoenix.Form.for_update/3 with resource that has has_one relationship is not valid

Describe the bug
A result of AshPhoenix.Form.for_update/3 with resource that has has_one relationship is not valid.
This might be not a bug, but I couldn't find the cause in the document.
post = %Post{
  id: Ash.UUID.generate(),
  title: "title",
  author: %Author{id: Ash.UUID.generate(), name: "name"}
}

form =
  post
  |> AshPhoenix.Form.for_update(:edit, forms: [auto?: true])
  |> to_form()

form.source.valid? # <== false

To Reproduce
https://gist.github.com/nallwhy/9460c228d77bd469b13d7740614a2882
Expected behavior
form.source.valid? is true.
Runtime

Elixir version: 1.16.0
Erlang version: 26.0
OS: Mac
Ash version: 2.19.10
any related extension versions: 1.3.1

So, there are two issues presenting here.

By default, the errors key is set to false when a form is just created. Typically the idea is that you want to not show errors until the first key is typed (and so AshPhoenix.Form.validate sets errors to true after it validates). To see the error that is happening, add the errors: true option to your call to AshPhoenix.Form.for_update.

There is a required argument on the update action that is not being supplied as an input, which is the source of the original issue.

If the error does not correspond to a field, you may need to look at the output of AshPhoenix.Form.errors(form, for_path: :all) (after setting errors: true option on your call to for_update)

The action the form is for has a required argument for the relationship. Having an attribute or relationship present on the underlying data with the same name as the required argument is not the same thing as supplying a value for an argument. The input itself does not contain the key author, so a required argument is not being supplied. So the form is not valid at the outset. If you want to make it possible to not provide an author, then the argument author should not be marked as allow_nil?: false.


"Rename sourse file" doesn't work with reverse files

Hi! I find bug. I have item and enable "Reverse" on it, then when i try to apply "Rename take sourse files" or "Rename takes and sourse files" to it this nothing happens. it would be more comfortable if it worked with reversed files. Thanks!
Reaper v. 7.11/win

64

This was fixed in version 2.13. The one on the homepage is extremely outdated. The latest version (<IP_ADDRESS>) can be fetched from this page: https://www.sws-extension.org/download/pre-release.

This was fixed in version 2.13. The old v2.12 on the homepage is extremely outdated. The latest version (<IP_ADDRESS>) can be fetched from this page or via ReaPack.

Thanks, i will try!


Licenses page is not loaded completely when the user clicks on the licenses option in settings page.

Frequency: 100%
Repro on build version: Android internal build V1.14.0<PHONE_NUMBER>)
Does not repro version Test Flight build V1.14.0(58), Play Store build 1.12., Test Flight build V1.13.1(56).Android internal build V1.13.1(1004294349)
Repro on devices: Samsung Galaxy Note 5(7) , Vivo V11 pro (10)
Repro Steps:

Launch the application
Complete onboarding education
Tap on create new account
Enter pin
Enter phone number
Tap on start button/ Skip the verification flow
Click on Hamburger menu
Scroll down and click on settings option
Scroll the settings page down and click on the licenses option
Observe the licenses page

Current Behavior: Licenses page is not loaded completely when the user clicks on the licenses option in settings page
Expected Behavior:  The licenses page should be completely loaded with all the relevant data
Observation: [iOS]

Data in licenses page is loaded completely when user tap on license button in settings page
Loading indicator is not shown when user tap on licenses page

Impact: User get blocked/not able to see data in licenses page .
Attachment: Licensespage.png

@Celoqa can you retest on V1.14.1. I am not able to reproduce this defect.
Attachement: Licenses - Android.png

Hi @MuckT We have verified this issue on latest android internal V1.14.1 and found issue is fixed so, closing this ticket.
Thanks!


Possible opcache bug

Using PHP v.7.1.0 on windows I stumbled upon a very strange problem.
This is my code:
use Microsoft\PhpParser\{DiagnosticsProvider, Node, Parser, PositionUtilities};

// Instantiate new parser instance
$parser = new Parser();

$src = <<<'EOT'
<?php
class A {
  public function a() {
    return $this;
  }
}
class B extends A {
  public function b() {}
}

$b = new B;
$b->a()->
EOT;

// Return and print an AST from string contents
$astNode = $parser->parseSourceFile($src);

When running with opcache enabled after the first successful run all subsequent runs fail with:
Uncaught Error: Cannot use object of type Microsoft\PhpParser\Token as array in D:\work\source_archive\tolerant-php-parser\src\Parser.php:1508
This is the offending line:
list($prevNewPrecedence, $prevAssociativity) = self::UNKNOWN_PRECEDENCE_AND_ASSOCIATIVITY;

The problem can be fixed in one of three ways:

using static instead of self when accessing the constant
not using list but assigning the variables directly to [0] and [1]
by disabling opcache ini_set('opcache.enable', 0);

I am not sure what to make of this, I would have filed a PHP bug but I am afraid I can't create an isolated example. There are a few reports about problems with opcache and PHP 7.1, but I am not sure they are related:
https://bugs.php.net/search.php?cmd=display&order_by=id&direction=DESC&limit=30&phpver=7.1&package_name[]=opcache

It really was an issue with PHP opcache, and it is resolved: https://bugs.php.net/bug.php?id=74019

Thanks for the report, and following up with PHP. I think this is the same thing we were looking at in this issue: https://github.com/felixfbecker/php-language-server/issues/418


MasterCard\Core\Exception\ApiException Object | Unauthorized

Hi all, I keep getting an Unauthorized message whenever I try to connect with the API. I'm running a test in the sandbox environment.
2017-09-06 07:23:22] ApiController.DEBUG: <<body: {"error":{"code":"openapi.invalid.xclient.id","message":""},"reference":"Ae04de.jcl2dal45/-"} [] []
[2017-09-06 07:23:22] ApiController.DEBUG: --------------------- [] []
HttpStatus: ()
Message: ()
ReasonCode: ()
Source: ()
MasterCard\Core\Exception\ApiException Object
(
[message:protected] => Unauthorized
[rawErrorData:protected] => MasterCard\Core\Model\RequestMap Object
(
[properties:protected] => Array
(
[error] => Array
(
[code] => openapi.invalid.xclient.id
[message] =>
)..................................

What service is this?
It seems thats a message originated from our backend serivce.
Ade
On 6 Sep 2017 08:29, "monwabisi"<EMAIL_ADDRESS>wrote:

Hi all, I keep getting an Unauthorized message whenever I try to connect
with the API. I'm running a test in the sandbox environment.
2017-09-06 07:23:22] ApiController.DEBUG: <<body: {"error":{"code":"
openapi.invalid.xclient.id","message":""},"reference":"Ae04de.jcl2dal45/-"}
[] []
[2017-09-06 07:23:22] ApiController.DEBUG: --------------------- [] []
HttpStatus: ()
Message: ()
ReasonCode: ()
Source: ()
MasterCard\Core\Exception\ApiException Object
(
[message:protected] => Unauthorized
[rawErrorData:protected] => MasterCard\Core\Model\RequestMap Object
(
[properties:protected] => Array
(
[error] => Array
(
[code] => openapi.invalid.xclient.id
[message] =>
)..................................
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Mastercard/sdk-core-php/issues/3, or mute the thread
https://github.com/notifications/unsubscribe-auth/AF6LuKtSi1m92OJOZkOMlU26ZG1x4EYoks5sfknrgaJpZM4PN9AA
.

"What service is this?" -I'm using Qkr.....?
I think the error is a result of me not following the guide properly, I generated a new Sandox key and did not request approval. I think that's what is causing the error, so I'll close this issue and wait for approval of the new key, if it persists afterwards then I'll re-open.

Sandbox should work without the need to approve the key. Key needs to be
approved / (move to production) only for production environment.
Could you raise an ticket by in support menu @ developer.mastercard.com
It seems that there is something wrong with qkr backed service.
On 6 Sep 2017 09:29, "monwabisi"<EMAIL_ADDRESS>wrote:

"What service is this?" -I'm using Qkr.....?
I think the error is a result of me not following the guide properly, I
generated a new Sandox key and did not request approval. I think that's
what is causing the error, so I'll close this issue and wait for approval
of the new key, if it persists afterwards then I'll re-open.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Mastercard/sdk-core-php/issues/3#issuecomment-327413550,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF6LuGebURe_H9sE-_q8uV2AzX91suu3ks5sflfWgaJpZM4PN9AA
.

Will do, thanks.


how to initiate a request with authorization header?

Instantiate okhttp with an interceptor. Add your Auth header in the
interceptor. Instantiate apollo client by passing the okhttp instance to
apollo client builder.
On May 16, 2017 1:11 PM, "aaron"<EMAIL_ADDRESS>wrote:

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/apollographql/apollo-android/issues/497, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AEUX3LjqrhVoGUH-Xb6dXfpCwn6-axJsks5r6XZCgaJpZM4NcRgi
.

OkHttpClient httpClient = new OkHttpClient.Builder()
      .addInterceptor(chain -> {
        Request original = chain.request();
        Request.Builder builder = original.newBuilder().method(original.method(), original.body());
        builder.header("Authorization", authHeader);
        return chain.proceed(builder.build());
      })
      .build();

    apolloClient = ApolloClient.builder()
      .okHttpClient(httpClient)
      ....

done the same but the headers are not added to http request

public class LocalApolloClient {
private static final String URL = "http://<IP_ADDRESS>/graphql/";
private static ApolloClient apolloClient;
public static ApolloClient getApolloClient(String authHeader){
    HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
    loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);

    OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .addInterceptor(chain -> {
                Request original = chain.request();
                Request.Builder builder = original.newBuilder().method(original.method(), original.body());
                builder.header("Authorization",  authHeader);
                Log.d("AUTH_TAG", authHeader);
                return chain.proceed(builder.build());
            })
            .build();

    apolloClient = ApolloClient.builder()
            .serverUrl(URL)
            .okHttpClient(okHttpClient)
            .build();

    return apolloClient;
}

}
added authHeader but still cant query the current user's data.

in this case doesn't the getApolloClient always returns a client with a constant old authHeader?

i solved it.
changing builder.header("Authorization", authHeader);
to
builder.header("Authorization", "JWT" + " " +  authHeader);
On Wed, Sep 26, 2018 at 12:42 PM das_vicky<EMAIL_ADDRESS>wrote:

in this case doesn't the getApolloClient always returns a client with a
constant old authHeader?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/apollographql/apollo-android/issues/497#issuecomment-424609801,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AVNAqcqeJrLTNQ9FiHsyovLrUYxEh9bFks5ueyjBgaJpZM4NcRgi
.

Hi, I have found that Apollo request post call only,
Could I pass get the request to HTTP?, Your help will be appreciated.

In your code change the line
builder.header("Authorization",  authHeader);
builder = builder.header("Authorization",  authHeader);

Putting this example here for reference. Once you create an ApolloClient, you can also pass additional headers each time you do a call.
apolloClient.query(query)
        .requestHeaders(
            RequestHeaders.builder()
                .addHeader("Authorization", authHeader)
                .build()
        )
        .enqueue(...);

Or with RxJava in Kotlin
apolloClient.rxQuery(commitsQuery) {
    requestHeaders(
              RequestHeaders.builder()
                  .addHeader("Authorization", authHeader)
                  .build()
    )
}

In the latest version of Apollo client, requestHeaders is marked as deprecated. If anyone is looking for the correct way to do it in the latest version, you can do this:
apolloClient.query(query)
.toBuilder()
.requestHeaders(
RequestHeaders.builder()
.addHeader("Authorization", authHeader)
.build()
)
.build()
.enqueue(...);

I am using the last comment, but I am still getting issue because the token.
Can you help me this issue?

@MingFang12 Are you using v2 or v3? For v3, this section of the documentation can shed some light on the topic of authentication. Otherwise, in order to help you we will need more information about what exactly you do that is not working (if you can provide a reproducible project or code snippet that would be great).


use range partitioner on parallel array functions

Using a range partitioner along with Parallel.ForEach takes better advantage of memory locality than using a Parallel.For.   This has a small performance penalty on small arrays, but a large performance benefit for large arrays. Presumably one would not tend to use parallel higher order functions on smaller array so this should be a net win.  Allocations do not appear to be any different.
Following are sample test results on a 2 and 4 core machines with parallel map on different workloads and array sizes.

I can do some testing on my 2 core laptop to see if there are any clear patterns.

I've updated the original posts with results from a 2 core machine. If anyone has access to a big ~32 core server to get a third data point, it would be good.  We could maybe find a generalized CoreCount->rangeCount function that works well everywhere.
The breakeven point on a 4 core machine is around 50k items, on the 2 core machine the new method is always faster.

It probably makes the most sense to just use the standard Partitioner.Create rather than try a one size fits all optimization, which is impossible.  The default Create will make LogicalCoreCount*3 Tasks, which will have a small perf penalty with small collections and simple non blocking operations performed over them, but would have big benefits in other cases where f has to wait on IO, for example, even if the collection is small.

I may be able to use a 40 core server we have at work, if you still want that comparison. (no guarantees)
Can you zip up the benchmark project?

grab this: https://gist.github.com/jackmott/db3479bbd8a17ad8578bece7aec163cb
Make an F# console app, set the framework version, and build settings, set it to Release, Add BenchmarkDotNet nuget packages, run it.
Results output in a subfolder of the bin/release/ in .md format.

 It looks like the story is more or less consistent from small machines to big servers. I'm still hesitant to try to do any custom tuning to the partition size, it could have bad regressions in some cases.  Imagine a 4 core machine doing a map over an 8 element array, where on each element it crunches numbers for a long time, loads some files from disc etc. You would rather have more tasks (slightly bad) than less (very bad) in that case.

Going from 16 cores to 40 actually makes the program go SLOWER with the old algorithm, and provides only a negligible improvement with the new algorithm.

Try looping over one of the tasks or bunch it up to 100 million array size.  I think you are see low utilization because there are delays between each test in benchmarkdotnet.

I suspect at 40 cores with very simple mapping functions like this, memory bandwidth becomes a limiter.  You can't yank ints out of memory fast enough to supply 40 cores doing nothing but an add each time. We could napkin math this.

Yeah when I give it a workload where memory bandwidth isn't a limiter, I hit 100% cpu utilization.  I'll post up a new gist in a minute when my benchmark finishes.

Here is a gist with a bigger workload you can test with: https://gist.github.com/jackmott/6940bba5b9ce77a59a645810488e983c

Here's a "custom" partitioner (well based on the library one...)
// copied from internal helper - System.Threading.PlatformHelper
type PlatformHelper private () =
    [<Literal>]
    static let PROCESSOR_COUNT_REFRESH_INTERVAL_MS = 30000;

    [<VolatileField>]
    static let mutable s_processorCount = 0

    [<VolatileField>]
    static let mutable s_lastProcessorCountRefreshTicks = 0

    static member ProcessorCount =
        let tickCount = Environment.TickCount;
        let mutable num = s_processorCount;
        if num = 0 || tickCount - s_lastProcessorCountRefreshTicks >= PROCESSOR_COUNT_REFRESH_INTERVAL_MS then
            s_processorCount <- Environment.ProcessorCount
            num <- s_processorCount
            s_lastProcessorCountRefreshTicks <- tickCount;
        num

let createArrayPartitioner fromInclusive toExclusive  =
    if toExclusive <= fromInclusive then
        raise (ArgumentOutOfRangeException "toExclusive")

    let rangeSize =
        let length = toExclusive - fromInclusive
        let processorMultiplier =
            if   length < 20000  then 1
            elif length < 2000000 then 2
            else 3
        max 1 (length / (PlatformHelper.ProcessorCount * processorMultiplier))

    let ranges = seq {
        let mutable lower = fromInclusive;
        while lower < toExclusive do
            let upper =
                try min toExclusive (Checked.(+) lower rangeSize)
                with :? OverflowException -> toExclusive

            yield struct (lower, upper)

            lower <- upper
    }

    Partitioner.Create (ranges, EnumerablePartitionerOptions.NoBuffering)

let mapNew (f: 'T -> 'U) (array : 'T[]) : 'U[]=
    let inputLength = array.Length
    let result = Array.zeroCreate inputLength
    let rangePartition = createArrayPartitioner 0 array.Length
    Parallel.ForEach(rangePartition,
        fun (struct (start, finish)) x  ->
            for i in start .. finish - 1 do
                result.[i] <- f array.[i]) |> ignore
    result

The problem I see here is that if it's on a workload that isn't CPU bound then it won't be using extra tasks... Anyway, just throught I'd throw in my 2 cents...

The problem I see here is that if it's on a workload that isn't CPU bound then it won't be using extra tasks...

Right, ultimately high performance parallel stuff will need specific tuning. All we can provide in a core lib is something generic. I think using the default partitioner is probably the right move if we use the new method. Up the maintainers whether they think this change is worthwhile or not.

Using the second gist from Jackmott (https://gist.github.com/jackmott/6940bba5b9ce77a59a645810488e983c)
The workstation was fully loaded, but the 40 core system only used maybe 50%.

Thanks
Kevin

close it I think

@jackmott
Thanks for looking at this.  I will close it for now but feel free to reopen if you feel like revisiting this.
Kevin


build: disable cosign verification for CI

The libgit2 libraries are downloaded and verified before some of the make targets are executed. This assures the provenance of such files before using them and is very important specially for end users running such tests on their machines.

Closing in favour of https://github.com/fluxcd/pkg/pull/365.


feat: use node-role.kubernetes.io/control-plane for yurt-manager node selection

What type of PR is this?
/kind feature
What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #1721
Special notes for your reviewer:

Does this PR introduce a user-facing change?

other Note

/lgtm


esp-idf-sys fails to compile in idf-rust:esp32s3_<IP_ADDRESS> docker image

Hello,
I followed the install instructions for the std toolchain from here and generated a project with cargo generate esp-rs/esp-idf-template cargo.
Locally, everything builds fine and a .embuild directory is created automatically, but in this Docker Image this does not happen.
I don't know why this happens, as far as I can tell from the layers all required dependencies are installed and I also sourced $HOME/export-esp.sh before building.
Here are the CI logs:
Running with gitlab-runner 16.5.0 (853330f9)
  on esp32 vxqhoGEM1, system ID: s_089face47da2
Preparing the "docker" executor 00:04
Using Docker executor with image espressif/idf-rust:esp32s3_<IP_ADDRESS> ...
Authenticating with credentials from $DOCKER_AUTH_CONFIG
Pulling docker image espressif/idf-rust:esp32s3_<IP_ADDRESS> ...
Using docker image sha256:6313f85adb406f1e7a99293fdc4f8e8ffbf2726b1708d9b133f39c378f0d6859 for espressif/idf-rust:esp32s3_<IP_ADDRESS> with digest espressif/idf-rust@sha256:e5968bf4b848c73cdc0b6469d21e88cc5c2ac9dd7378c6161fa324225f8a069f ...
Preparing environment 00:02
Running on runner-vxqhogem1-project-30397-concurrent-0 via homebox...
Getting source from Git repository 00:02
Fetching changes with git depth set to 20...
Reinitialized existing Git repository in /builds/tkn/teaching/pj2023w/practical-network-coding-with-esp32/.git/
Checking out 101a7b08 as detached HEAD (ref is 8-create-test-infrastructure-and-run-tests-in-ci)...
Removing Cargo.lock
Removing target/
Skipping Git submodules setup
Executing "step_script" stage of the job script 00:35
Using docker image sha256:6313f85adb406f1e7a99293fdc4f8e8ffbf2726b1708d9b133f39c378f0d6859 for espressif/idf-rust:esp32s3_<IP_ADDRESS> with digest espressif/idf-rust@sha256:e5968bf4b848c73cdc0b6469d21e88cc5c2ac9dd7378c6161fa324225f8a069f ...
$ source /home/esp/export-esp.sh
$ cargo build
    Updating crates.io index
 Downloading crates ...

Caused by:
  process didn't exit successfully: `/home/esp/practical-network-coding-with-esp32/target/debug/build/esp-idf-sys-9f4c62a2e5e74fcb/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-env-changed=ESP_IDF_TOOLS_INSTALL_DIR
  cargo:rerun-if-env-changed=ESP_IDF_SDKCONFIG
  cargo:rerun-if-env-changed=ESP_IDF_SDKCONFIG_DEFAULTS
  cargo:rerun-if-env-changed=MCU
  cargo:rerun-if-env-changed=ESP_IDF_SYS_ROOT_CRATE
  cargo:rerun-if-env-changed=ESP_IDF_VERSION
  cargo:rerun-if-env-changed=ESP_IDF_REPOSITORY
  cargo:rerun-if-env-changed=ESP_IDF_CMAKE_GENERATOR
  cargo:rerun-if-env-changed=IDF_PATH
  cargo:rerun-if-env-changed=EXTRA-COMPONENTS
  cargo:rerun-if-env-changed=ESP_IDF_COMPONENTS
  cargo:rerun-if-env-changed=ESP_IDF_COMPONENT_MANAGER

  --- stderr
  Build configuration: BuildConfig {
      esp_idf_tools_install_dir: None,
      esp_idf_sdkconfig: None,
      esp_idf_sdkconfig_defaults: None,
      mcu: None,
      native: NativeConfig {
          esp_idf_version: None,
          esp_idf_repository: None,
          esp_idf_cmake_generator: None,
          idf_path: None,
          extra_components: [],
          esp_idf_components: None,
          esp_idf_component_manager: None,
      },
      esp_idf_sys_root_crate: None,
  }
  Error: Unsupported target 'x86_64-unknown-linux-gnu'

  Stack backtrace:
     0: anyhow::error::<impl anyhow::Error>::msg
     1: build_script_build::native::cargo_driver::chip::Chip::detect
     2: build_script_build::native::cargo_driver::build
     3: build_script_build::native::build
     4: build_script_build::main
     5: core::ops::function::FnOnce::call_once
     6: std::sys_common::backtrace::__rust_begin_short_backtrace
     7: std::rt::lang_start::{{closure}}
     8: std::rt::lang_start_internal
     9: std::rt::lang_start
    10: main
    11: <unknown>
    12: __libc_start_main
    13: _start

After the failed compilation, there is no .embuild directory:
esp@48abec0f69f5:~/practical-network-coding-with-esp32$ ls -hartl
total 104K
-rw-r--r-- 1 esp esp  521 Nov  8 00:14 .editorconfig
drwxr-xr-x 2 esp esp 4.0K Nov  8 00:15 src
-rw-r--r-- 1 esp esp  465 Nov  8 00:15 sdkconfig.defaults
-rw-r--r-- 1 esp esp   28 Nov  8 00:15 rust-toolchain.toml
-rw-r--r-- 1 esp esp   53 Nov  8 00:15 build.rs
-rw-r--r-- 1 esp esp  841 Nov  8 00:15 README.md
-rw-r--r-- 1 esp esp  262 Nov  8 00:15 .gitlab-ci.yml
-rw-r--r-- 1 esp esp   48 Nov  8 00:15 .gitignore
drwx------ 1 esp esp 4.0K Nov  8 00:15 ..
drwxr-xr-x 8 esp esp 4.0K Nov  8 00:15 .git
-rw-r--r-- 1 esp esp  47K Nov  8 00:16 Cargo.lock
-rw-r--r-- 1 esp esp  859 Nov  8 00:26 Cargo.toml
drwxr-xr-x 5 esp esp 4.0K Nov  8 00:27 .
drwxr-xr-x 3 esp esp 4.0K Nov  8 00:27 target

I also tried to manually add embuild using cargo add, but that did not help. Other than that, I am not sure what could be the problem.

Build fails with:
Error: Unsupported target 'x86_64-unknown-linux-gnu',
I.e. you are trying to build esp-idf-sys for your host target, which is impossible. You should build with a target like xtensa-esp32-espidf or suchlike.
These targets are usually configured in .cargo/config.toml file inside your binary crate, but I actually don't see the .cargo directory in your project layout?

Oh yeah, that seems to work.
I am very new to rust development and saw that .cargo is a dotfile and thought that everything build-related is defined in the Cargo.toml, so I immediately added it to the .gitignore without checking it first.
Sorry for the confusion, going to close this!


Cache ZoneGroupState while subscriptions are active

A followup to the ZoneGroupState caching added in https://github.com/SoCo/SoCo/pull/913.
The last ZoneGroupState payload received for a Sonos system can be used indefinitely as long as a ZoneGroupTopology subscription remains active. With long-lived subscriptions, idle devices will have periods of time where no ZoneGroupState payload is published and the ZGS cache (60s since the last "event") will usually expire long before the subscription needs to be renewed. After it expires, it requires a poll to request a fresh payload and on large systems this will fail (see https://github.com/SoCo/SoCo/pull/937).
Instead of extending the ZGS cache by 60s every time a subscription event is received, this keeps the cache alive while any ZoneGroupTopology subscription remains active. This should make the library more usable on large systems as long as a subscription is maintained.
This replaces https://github.com/SoCo/SoCo/pull/955.

The linked issue has a couple reports of users with large Sonos systems using this branch successfully. No regressions reported so far.

The linked issue has a couple reports of users with large Sonos systems using this branch successfully. No regressions reported so far.

Thanks @jjlawren. This change is now released in v0.30.2.

Thanks!


[Helm templates] duplicate webhooks job-patch name

What happened:
Command used to generate helm files:
helm template liqo liqo/liqo --namespace liqo -f vendor/liqo//helm_values.yaml --version v0.5.4 --output-dir=vendor/liqo//base --include-crds

The jobs webhooks/job-patch/job-patch-webhook.yaml and webhooks/job-patch/job-create-secret.yaml have the same name. This is causing kustomize build fail.
What you expected to happen:
Job names should be different and therefore should not block kustomize build.
How to reproduce it (as minimally and precisely as possible):
Use the helm command with default helm values.
Anything else we need to know?:
Environment:

Liqo version: v0.5.4
Kubernetes version (use kubectl version): 1.22 (server)
Cloud provider or hardware configuration: gke+k3s
Network plugin and version:
Install tools:
Others:

Hi @Jibux,
The issue you mentioned has been addressed by #1445, which will be included in the next release (tentatively scheduled between the end of September and mid October). In the meanwhile, you can directly generate the manifests from the "unreleased" Helm chart included in this repository.
Feel free to ask for any further information, or reopen this issue if necessary.


Use short array syntax.

This project requires PHP >= 5.4.0.
I believe we can use a short array syntax.

@lucasmichot ah thanks for resolving those conflicts, was just about to sit down to do it myself :)


API Revision UI/UX issues

Description:
This is to keep track of API Revision feature UI/UX related issues.

Duplicate issue


suite/run.py: check config['verify_ceph_hash'] before verifying ceph …

…packages
there is chance that we don't have ceph packages built for the
combination of specified os_type and os_version, for instance, in the
case of rados/thash_old_clients, older ceph clients are installed on
el7, but the ceph cluster is deployed using cephadm, which in turn pull
ceph container images built using the ceph being tested and el8.
since we've dropped the build of master on el7, there is no need to
verify if ceph package is available if cephadm is used for deploying the
cluster.
Signed-off-by: Kefu Chai<EMAIL_ADDRESS>

being tested at http://pulpito.ceph.com/kchai-2020-06-23_15:15:59-rados-wip-kefu-testing-2020-06-23-1353-distro-basic-smithi/

We should add a check for cephadm to see whether the containers it uses exist as well, in a future PR

i checked podman manifest and docker manifest inspect. podman manifest was added couple months ago. i think we need wait a bit, before that feature is packaged in downstream. while docker manifest inspect requires user to enable experimental features. guess the same applies to it.
so, in short, let's revisit it after, probably 6 months.

@tchaikov this PR is breaking install.repos mechanism

Related fix #1521


K8s guide draft

First draft of the k8s guide
TOC:

Get started

kubectl
helm
flux
k9s

Creating the cluster on Openstack
Create the database with DBOD

Bootstrapping the database

Populating the cluster

Creating a LanDB set
Managing secrets
Rucio Servers
Rucio Auth
Rucio Daemons
Rucio UI

Setting up Rucio

Installing rucio-clients
Creating the Rucio root account configuration file
Rucio admin usage
Data Management

TODOs

[ ] Check for missing content
[ ] Suggestions/corrections very much appreciated
[ ] How should we treat the daemons section? Do we want a summary of all the daemons?
[ ] Decide where to put the guide (is /docs/operator ok?)
?

Tagging @labkode @garciagenrique

Thanks for this nice tutorial @Soap2G.
I would structure a bit differently the tutorial. I would make a first "CERN infrastructure" section in where I would describe how to set up all the infrastructure (OpenStack, k8s, DBOD, LANDB etc...). And later on another section all the rest, that is general and common once you have a k8s cluster up and running.
I also find that this documentation is a k8s tutorial in the end, so maybe it will be nice to put it on the k8s-tutorial rucio repo.

@garciagenrique Done. Please let me know if anything else has to be changed, thanks!


Rename output overrides file

VS deploys Microsoft.FSharp.Overrides.NetSdk.Shim.targets to the wrong file name it needs to be: Microsoft.FSharp.Overrides.NetSdk.targets.
The wrong name breaks AssemblyInfo generation when compiling under VS.

@KevinRansom is there a bug filed that this fixes?


MODE-2615 Fixes the BsonDataInput to handle multi-byte UTF-8 characters

This fix ensures that the limit is set correctly when there is already data in the ByteBuffer from a previous decode operation. This happens when a multi-byte UTF-8 character could not be consumed by the decoder and is left in the buffer for the next iteration.

looks like the correct fix, thank @amccormic. I'll create a new (more compact) PR with a few more test cases shortly.


Add setting to auto-open drafts.

See the discussion here:
https://chat.zulip.org/#narrow/stream/137-feedback/topic/Auto-load.20Draft/near/679701
We may want to allow users to set a preference to auto-open drafts.  (Note that some users will definitely NOT want that feature, hence the preference.)
If users prefer to auto-open drafts, we'll want to search their prior drafts for the last message with the same addressee (either stream/topic or PM partner) and fill in the compose box with the appropriate text, selected.
Note that all users would still be able to manually open drafts as they do now, using the drafts dialog.

Closing in favor of #18555.


⚠ Samsung has degraded performance

In 073a4e8, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2577 ms

Resolved: Samsung performance has improved in a68e4b6.


Fix some eslint warnings to get closer to other projects (Studio, Tobira)

This is preparation for our upcoming plans to publish one shared ESLint config that can be used by many React+TS Opencast projects. But certainly for Editor, Studio and Tobira. I will explain more about this whole plan and why we think it's a good idea in the upcoming technical meeting on Tuesday. On that meeting I also want to ask the community if we can publish said configuration under the @opencast scope on NPM.
But before these things have been decided, I already ran eslint on this project with said config. In this PR I fixed many of the warnings that I think were just oversights/typos and that I assume you would agree should be fixed. If that is not the case, please let me know. I can drop individual commits from this PR.
Due to the pending decisions mentioned above, this PR does not yet refer to this new eslint config. I just did this locally. The PR just contains fixes.
Reviewing this is always weird, but it's probably best to go commit by commit. Maybe? At least the commit messages contain some useful information.

The last commit is not ready yet: it still contains a path dependency. That's also why CI fails. I will replace that with a real dependency as soon as it is decided where it should live. But yes, therefore marking this as draft.


An asynchronous operation cannot be started at this time

Describe the bug
The exception is raised for asp.net if you try to observe .net events and you go with the default scheduler as it will schedule notification on the AspNetSynchronizationContext which may not be available at time.
To Reproduce
        public static IObservable<(IObjectSpace objectSpace,EventArgs e)> Commited(this IObservable<IObjectSpace> source) {
            return source.SelectMany(item => {
                return Observable
                    .FromEventPattern<EventHandler, EventArgs>(h => item.Committed += h, h => item.Committed -= h)
                    .TransformPattern<EventArgs, IObjectSpace>();
            });
        }

Expected behavior
Immediate scheduling of all events exposed from reactive modules is required and observables will behave like a normal dotnet event

Closing issue for age. Feel free to reopen it at any time.
.Thank you for your contribution.


GOBBLIN-904: Provide an option to reuse an existing Helix cluster on …

…Gobblin-Yarn application launch
Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[x] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-904

Description

[x] Here are some details about my PR, including screenshots (if applicable):
Currently, we recreate a Helix cluster structure everytime a Gobblin-on-Yarn application is launched. This is an expensive operation and somewhat flaky, often requiring multiple attempts. We need the ability to overwrite an existing Helix cluster to provide deterministic restarts.

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:
Test deployment.

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Codecov Report

Merging #2757 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             master    #2757      +/-   ##
============================================
- Coverage     45.27%   45.27%   -0.01%
  Complexity     8828     8828
============================================
  Files          1889     1889
  Lines         70634    70636       +2
  Branches       7757     7757
============================================
  Hits          31979    31979
- Misses        35701    35705       +4
+ Partials       2954     2952       -2

Impacted Files
Coverage Δ
Complexity Δ

...bblin/cluster/GobblinClusterConfigurationKeys.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

...rg/apache/gobblin/yarn/GobblinYarnAppLauncher.java
20.41% <0%> (-0.11%)
7 <0> (ø)

...in/java/org/apache/gobblin/cluster/HelixUtils.java
35.51% <0%> (-3.74%)
12% <0%> (-1%)

.../org/apache/gobblin/cluster/GobblinTaskRunner.java
65.27% <0%> (+1.38%)
28% <0%> (ø)
:arrow_down:

...lin/elasticsearch/writer/FutureCallbackHolder.java
62.85% <0%> (+1.42%)
4% <0%> (ø)
:arrow_down:

Continue to review full report at Codecov.

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


Add message when product is deleted from cart

Closes #718

Current coverage is 53.98% (diff: 100%)

Merging #724 into demo-store will not change coverage

@@           demo-store       #724   diff @@
============================================
  Files             107        107
  Lines            5564       5564
  Methods             0          0
  Messages            0          0
  Branches          670        670
============================================
  Hits             3004       3004
  Misses           2444       2444
  Partials          116        116

Powered by Codecov. Last update dcccb23...4eb539c

@szewczykmira it doesn't work as expected - alert shows up after modifying cart quantity, but after deleting a product it's not visible at all.

Maybe @weronka may help with it?

@szewczykmira Please rebase with demo-store branch

@artursmet done


MY IDENTITY Coin

Token Address
https://scan.tomochain.com/address/0xd9625fd459693dd012366a207355dfd2ffc461c2
Token Symbol
MYID
Token Name
MY IDENTITY Coin
Token Logo
PNG 256px by 256px

Token Description
MY IDENTITY Coin (MYID) is a utility token used for tagging of cryptographic blocks with unique owner identifying code with proprietary Proof of Person (POP) technology.   The purpose of tagging blockchains with MYID coin coding is to reduce and ultimately eliminate threat of loss, theft or unfair confiscation.
Website
www.okglobalcoinsg.com
Social links
WEBSITE: https://okglobalcoinsg.com
TELEGRAM: https://t.me/myidentitycoin
FACEBOOK: https://www.facebook.com/Myidentitycoin
TWITTER: https://twitter.com/MyIdentityCoin
INSTAGRAM: https://www.instagram.com/myidentitycoin
TIKTOK: https://vt.tiktok.com/ZSJmB4N8y

Please add the logo to the tomobridge option.  Our MYID Coin was added a week ago but we would like our logo included please.  Thank you.

Please also add the logo to the tomowallet.  Thank you.

Hello...Can somebody please help?  There has been no status update.  Thank you.

@hkim77761 please read README.MD again

Closed because we still not received payment info. You can read rule in README.MD. after that you can re-open this ticket

Hello...I just sent in payment.  Can you please make the coin edits requested?   Thank you.


Correct Link for IRawStylebase

Describe the bug
The link on the documentation for ISawStyleBase goes to a 404
To Reproduce
Steps to reproduce the behavior:

Go to https://github.com/microsoft/omnichannel-chat-widget/tree/main#stateless-ui-components
Scroll down to the end of the table
Click the link
IRawStyleBase 5.
Link is worng

Expected behavior
Link goes to the documentation for Irawstylebase

Fixed in #373


Plotting request for HCWs

This came up after meeting with Vitalwave / Merq on 4/15, they would like to see clinical category represented as #HCW and show overhead accordingly, work is in #37

@rhanIDM helped to bring back the cadre roles plot (merged to main in v1.0.2) so we are good for now


Uncaught TypeError: Cannot read property 'text' of undefined

Setting the defaults as in this jsFiddle example causes the following error:
Uncaught TypeError: Cannot read property 'text' of undefined
Setting the defaults directly (jsFiddle example) works without problems though.

Do not set the defaults directly like that. See the tutorial: http://craigsworks.com/projects/qtip2/tutorials/advanced/#override


Create comprehensive functionality test procedure

Development documentation. Need to describe what kind of testing should be done before a feature is merged into master.

Need to test actions:

App runs
Loads image
Zoom and move image
Annotate several objects with lasso
Annotate several objects with connected components
Select and unselect multiple symbols
Merge annotations destructively and non-destructively
Backup
Delete CropObject & recover from deletion.
Export CropObjects (to test_data dir)
Hide and show CropObjects
Clear CropObjects
Center image
Import CropObjects
Zoom back in
Open settings, change something and close settings
Exit


Rendering error:  cannot appear as a child of

Hi,
I'm receiving an error using react-markdown 4.2.2 while trying to render the following markdown:
Hello world

| a | b |
|---|---|
| c | d |

It looks like the library forgets to insert the <thead> and <tbody> tags properly, resulting in the following error in the console:

Is this a know problem?

@olipo186 try running 4.3.1 on the demo https://rexxars.github.io/react-markdown  the table markdown you shared has a <tbody>


Unsupported extension name extensions.worktreeconfig

Description of the bug
Running git sparse-checkout set will cause all git-branchless commands to fail with Git error GenericError: unsupported extension name extensions.worktreeconfig in that repo.
cd /tmp
git init test
cd test
git commit --allow-empty -m 'Initial commit'
git sparse-checkout set
git branchless smartlog

Expected behavior
The smart log should show successfully, e.g.
◆ b1350a3f 12s (master) Initial commit

Actual behavior
The application panicked (crashed).
Message:  A fatal error occurred:
   0: Git error GenericError: unsupported extension name extensions.worktreeconfig

Location:
   src/git/repo.rs:45

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ SPANTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   0: branchless::git::repo::from_dir with path="/private/tmp/test"
      at src/git/repo.rs:193
   1: branchless::commands::smartlog::smartlog with effects=<Output fancy=true> git_run_info=<GitRunInfo path_to_git="git" working_directory="/private/tmp/test" env=not shown> options=SmartlogOptions { show_hidden_commits: false }
      at src/commands/smartlog.rs:526

Version of git-branchless
git-branchless 0.3.9
Version of git
git version 2.35.1
Version of rustc
No response

I presume this is related to git config extensions.worktreeConfig but I had trouble simplifying the STR further. Notably from those docs:

Older Git versions will refuse to access repositories with this extension.

I'm guessing libgit2 doesn't handle this extension?

I'm guessing libgit2 doesn't handle this extension?

Yes, I think this is libgit2/libgit2#6044. I suspect the fix is pretty simple, as someone there commented.

Thanks for reporting. git-branchless should work fine with sparse checkouts (I use them at work), so most likely the only issue is with the extension.worktreeConfig setting. (If not, please update repro steps.) I'm guessing that we would need to make an upstream libgit2 change and percolate it down to git2 and then git-branchless.
The obvious workaround would be to disable extension.worktreeConfig, if that's possible for you. Unless this comes up at work, I don't have any plans to work on the upstream change, but if it ends up being done, I can fork the necessary crates and pull them into git-branchless before they're officially released.

I was able to reproduce this in Git v2.35.0. However, it looks like this behavior, at least for the repro case, stops happening in Git v2.36.0 thanks to this commit: https://github.com/git/git/commit/7316dc5f6f2c8297d32e47d5859933ffacb6c00e. If upgrading Git is an option for you, you should try it to see if it solves your problem.

Ah interesting. Unfortunately the repo I work on already has core.repositoryformatversion set to 1, and I presume downgrading that is unsafe. (I don't want to clone this repo again.)

@auscompgeek you can also consider doing a shallow clone of the repo locally to get a "fresh" copy while hopefully not taking too long.


Certain Vine videos fail to download

Out of an archive of 4,598 Vine URLs, I came across 3 that return a webpage with video, but can't be downloaded by youtube-dl:

https://vine.co/v/MYxVapFvz2z
https://vine.co/v/bxVjBbZlPUH
https://vine.co/v/huwdVZbL6mz

Here's the corresponding output for those URLs:
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-i', u'--verbose', u'https://vine.co/v/MYxVapFvz2z', u'https://vine.co/v/bxVjBbZlPUH', u'https://vine.co/v/huwdVZbL6mz']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2015.04.03
[debug] Python version 2.7.9 - Darwin-14.1.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 2.6.1, ffprobe 2.6.1, rtmpdump 2.4
[debug] Proxy map: {}
[Vine] MYxVapFvz2z: Downloading webpage
ERROR: Unterminated string starting at: line 1 column 3428 (char 3427)
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 651, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 275, in extract
    return self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/vine.py", line 33, in _real_extract
    r'window\.POST_DATA = { %s: ({.+?}) }' % video_id, webpage, 'vine data'))
  File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 382, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Unterminated string starting at: line 1 column 3428 (char 3427)

[Vine] bxVjBbZlPUH: Downloading webpage
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 651, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 275, in extract
    return self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/vine.py", line 42, in _real_extract
    self._sort_formats(formats)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 703, in _sort_formats
    raise ExtractorError('No video formats found')
ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

[Vine] huwdVZbL6mz: Downloading webpage
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 651, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 275, in extract
    return self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/vine.py", line 42, in _real_extract
    self._sort_formats(formats)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 703, in _sort_formats
    raise ExtractorError('No video formats found')
ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Will be fixed in the next version. Thanks for the report.


Kong keeps orphan ACL data in acls endpoint

Summary
In previous versions of kong such as 0.13 if all the the APIs containing a while-list group for ACL were removed, it was automatically removed from ACLS endpoint. In the version 0.14 though, If I create a service and route and assign an ACL to the service. Afterwards, creating a consumer belonging to that white-list, Then remove the plugin or the service and routes itself. The acls endpoint still show the item.
In the meantime plugins show empty items which is true actually.
 1. delete from plugins endpoint, 2. delete from services/{serviceID} endpoint or delete the route and then service)
curl -i -X DELETE --curl http://localhost:8001/plugins/{pluginId}
run get ACLS
curl -X GET http://localhost:8001/acls
Here is the problem. It shows this item although this group is not available anymore.

Additional Details & Logs

Kong version (0.14)

I noticed that there is also no type group existence cxhecking anymore.
curl -X POST http://localhost:8001/consumers/Jason/acls --data "group=group3ghikjpfygdpiokfgh" {"group":"group3ghikjpfygdpiokfgh","created_at":1537183605673,"id":"8aee540f-fa98-403b-8bfd-1c5167648b98","consumer_id":"c1bd8a7f-bd79-408c-ae70-19b8f3b3c1df"}
I am pretty sure that in previous versions of kong it was telling such group does not exist but now it lets whatever group name.
I do not know if it is a bug or a feature. If it was a feature, why it was not mentioned in any change-log.

It is possibly related to this:
https://github.com/Kong/kong/pull/3831

I will close this as I think it works as it was meant to. I don't think it is a bug. acls is an entity plugin is different entity. config.whitelist or config.blacklist has no checks with acls, it is a loosely coupled thing, and the otherway around. I think it is fine as is. So closing this.