Contrib101

Bunch of basic info on how to contribute

Codecov Report

Merging #2 into master will not change coverage.
The diff coverage is n/a.

@@         Coverage Diff         @@
##           master   #2   +/-   ##
===================================
  Coverage       0%   0%
===================================
  Files           2    2
  Lines          34   34
===================================
  Misses         34   34

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 021d24f...4c68100. Read the comment docs.


Roll Plugins from c8570fc681d8 to 0209a2fadefe (2 revisions)

https://github.com/flutter/plugins/compare/c8570fc681d8...0209a2fadefe
2021-08-13<EMAIL_ADDRESS>Eliminate build_all_plugins_app.sh (flutter/plugins#4232)
2021-08-13<EMAIL_ADDRESS>[camera_web] Add support for pausing and resuming the camera preview (flutter/plugins#4239)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-plugins-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Add checks to avoid OutOfMemoryException in DrawArc

Purpose:

Add checks for small sweepAngle when calling DrawArc in functions RenderBackground and RenderGaugeForeground
https://github.com/ScottPlot/ScottPlot/blob/b4f881945493e0afb45d7d43f4ea54ee6369252d/src/ScottPlot/Plottable/RadialGauge.cs#L126

// This check is specific to System.Drawing since DrawArc throws an OutOfMemoryException when the sweepAngle is very small.
            if (BackEndAngle <= 0.01)
                BackEndAngle = 0;

https://github.com/ScottPlot/ScottPlot/blob/b4f881945493e0afb45d7d43f4ea54ee6369252d/src/ScottPlot/Plottable/RadialGauge.cs#L145
// This check is specific to System.Drawing since DrawArc throws an OutOfMemoryException when the sweepAngle is very small.
            if (SweepAngle <= 0.01)
                SweepAngle = 0;

A private setter was also added to BackEndAngle property

public double BackEndAngle
        {
            get
            {
                double maxBackAngle = CircularBackground ? 360 : MaximumSizeAngle;
                if (!Clockwise) maxBackAngle = -maxBackAngle;
                return maxBackAngle;
            }
            private set { BackEndAngle = value; } // Added for the sweepAngle check in DrawArc due to System.Drawing throwing an OutOfMemoryException.
        }

Maybe this would better discussed in another PR, but I've found that the property name BackEndAngle could be modified into BackAngleSweep, which would be more descriptive.
https://github.com/ScottPlot/ScottPlot/blob/b4f881945493e0afb45d7d43f4ea54ee6369252d/src/ScottPlot/Plottable/RadialGauge.cs#L42

Maybe this would better discussed in another PR, but I've found that the property name BackEndAngle could be modified into BackAngleSweep, which would be more descriptive.

This is technically a breaking change, but a small one and on a relatively new plot type so I'm fine with it. It can be included in this PR too. It's up to you whether you want to keep the old property name too marked Obsolete (I'm fine either way).
Perhaps the XML docs for this property could be more descriptive though, noting what it does and when to use it rather than just reiterating how it works.
Thanks!

Also let me know when you're done with this PR so I don't merge it too early 👍

This is technically a breaking change, but a small one and on a relatively new plot type so I'm fine with it. It can be included in this PR too. It's up to you whether you want to keep the old property name too marked Obsolete (I'm fine either way).

I believe that BackEndAngle (now renamed to BackAngleSweep) is only used internally inside RadialGauge.cs to just retrieve the angular size of the gauge background when calling gfx.DrawArc. Although the property access is public, in fact it's used as private one. That's why I decided against keeping and marking the old property as Obsolete, but I'm completely fine if you think otherwise.
I also updated the XML comments. Feel free to adapt them to your preferences, and merge the PR if everything is OK.


Sign generated tests

Summary: This diff makes it so that our driver will sign all of the generated files to help ensure that they are not edited by hand. Next I will add CI to actually verify the signature
Differential Revision: D51966201

In Taffy we run the test generation in CI and then use git to check for changes files and fail the check if there are any. IMO this is a better approach than signing the tests, as it also catches the case where someone has edited a fixture and has forgotten to run the test generator at all (in which case the test signature would be valid but would no longer match the fixture)

I am also implementing a check for that, just not published yet. The signing has some extra internal benefits including changing the cursor in VS code so it is obvious the code should not be edited by hand, and internal CI checks from for free if you have a signature


Refactor admin page to 1 map with layer swipe

Remove the OMAR map, and make the Tile map the main map for admin.gsp.  Add swipe functionality for OMAR WFS Feed previews.

Going to keep side-by-side maps due to Internet Explorer browser limitations with swiping.  Closing issue, as two map is already working.


(Suggestion) add standlone server files for Multiplayer Mod

add standlone server files for Multiplayer Mod (host server without run the game)

No. That's a huge amount of work comparable to rewriting the whole game.


Receive warnings "ResourceWarning: unclosed file" when using googleapiclient.http.MediaFileUpload

On google-api-python-client/googleapiclient/http.py:552, a file is opened. But this file is never closed. So I receive the following warning:
ResourceWarning: unclosed file <_io.BufferedReader name=<file_name> media_body = http.MediaFileUpload()

Hi @wangxf123456,
Thank you for reporting this! Would you be willing to submit a PR to fix it?

Sure I can do this.


Same or unique rule

Validation rule for determining if the given validation field is unique or the user already has it set.

@machiato32 when can you fix the tests?


Require cl-lib instead of cl

Set a good example!  Feature 'cl has been deprecated for some time.
https://emacs.stackexchange.com/a/48115/2264

Looks like there are a lot of examples that are using bad names. Patch for those is incoming.

Actually, I'd really rather wait until some of these other PRs get merged. These merges are going to be the stuff of nightmares if I continue branching off current master.

Some parts of me wonder if this track is about elisp or cl-lib…

This one is ready to go 👍


test_binary_with_various_inputs failure

tailspin currently fails to build on NixOS unstable with the following error:
tailspin> test test_binary_with_various_inputs ... FAILED
tailspin>
tailspin> failures:
tailspin>
tailspin> ---- test_binary_with_various_inputs stdout ----
tailspin> thread 'test_binary_with_various_inputs' panicked at tests/utils.rs:19:10:
tailspin> Failed to spawn child process: Os { code: 2, kind: NotFound, message: "No such file or directory" }
tailspin> note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
tailspin>
tailspin>
tailspin> failures:
tailspin>     test_binary_with_various_inputs
tailspin>
tailspin> test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 201.65s
tailspin>
tailspin> error: test failed, to rerun pass `--test integration_tests`

nixpkgs CI job with this can also be found at: https://hydra.nixos.org/build/276702946

Nevermind, I took a look at the relevant code and it's a Nix-specific issue.

Did you find a relevant Nix issue? I can't seem to find one tracking this issue.

I've already fixed it in #353457.


WIP: .travis.yml: ask for sudo when actually needed.

[extended tests]

Travis didn't even pick this up. I suppose one can't mix different sudo attributes in same file... Closing as failed experiment.


[R] New arg "columns" to read_feather()

With test.
Remove now obsolete readFeather().

On top of #63.

This is complete, Rcpp function getTableFromFeather() is in #83.

Merging. Per your earlier comment -- what complications are there to getting Travis CI working with the current setup? For example, I wrote shell scripts for Arrow for running C++ and Python unit tests:
https://github.com/apache/arrow/tree/master/ci
Hypothetically it should be a matter of writing a shell script that does this for Feather-R.

Testing R from Travis-CI requires installing R. Could be done, need to draw code from https://github.com/travis-ci/travis-build/blob/master/lib/travis/build/script/r.rb. It's much easier to use language: r in .travis.yml, I wonder if this can be done in a matrix.

Yes, absolutely https://github.com/apache/arrow/blob/master/.travis.yml#L20

That would be just awesome. Will take a look.

FWIW, have you seen http://genbattle.bitbucket.org/blog/2016/01/17/c++-travis-ci/? They show how to run modern C++ tests on container-based builds. No more sudo: required.


GH Actions observability design

Follow up from https://github.com/aws-amplify/samsara-cli/pull/480#discussion_r1370724372 .
We should take a moment to write down what do we want to monitor in our github actions, define metrics and dimensions we want to observe.

https://quip-amazon.com/dp1yAtDqWOCN

Done.


[bootstrap] Add the packages tag to import_role/setup_ci

The oc client (and other packages) are installed set up in the ci_setup role. Intuitively, the task in 01-bootstrap.yml should have the packages tag
As a pull request owner and reviewers, I checked that:

[ ] Appropriate testing is done and actually running
[ ] Appropriate documentation exists and/or is up-to-date:

[ ] README in the role
[ ] Content of the docs/source is reflecting the changes

@cjeanner PR#1403 resolved the issue I had in STF's jobs. Does this still need doing?
I'm happy to continue with the fix, if you still think its necessary/nice to have

@cjeanner PR#1403 resolved the issue I had in STF's jobs. Does this still need doing? I'm happy to continue with the fix, if you still think its necessary/nice to have

I propose to close that one since you don't face the issue anymore.
I'll do some checks over this week to ensure the packages tag is accessible and properly applied/filtered. There was a CI check for that back then, but we dropped it (too complicated). I'll see if I can make a kind of linter to ensure any modules affecting packages (package, dnf, pip, etc) is properly tagged. Shouldn't be THAT hard...


improve OS classes docs

a lot of classes that represent the OS native classes are almost not documented
for example an AVAudioSessionCategory
we have two options how we can handle it:

copy all the documenation from the official docs
copy the most relevant information (because there's sometimes too much of it) and link as "See also" to the original doc

i personally would prefer the latter
(and of course we can always edit something and add our comments as well)

I wouldn't suggest "copying" the docs due to copyright, but maybe it's OK to take Microsoft's approach:
https://docs.microsoft.com/en-us/dotnet/api/avfoundation.avaudiosession?view=xamarin-ios-sdk-12
or at least provide the link to the original docs. I don't consider it the highest priority thing compared to filling in some more of the missing API functionality but yes this is something to eventually do.


Fix paths in README.md

The paths in the README don't match the current structure in the main branch. If some modification has been made to the repo structure in another branch, maybe that needs to be merged with main. In any case, I propose here a fix for main.

@hgascon Thanks for your pull request. Could you complete the Eclipse paperwork to be able to merge the contribution?

@tunacicek I have submitted the Eclipse Contributor Agreement.

LGTM
@hgascon  Thank you for the contribution.


Fix issue to edit record with combined relation manager tabs

[x] Changes have been thoroughly tested to not break existing functionality.
[x] New functionality has been documented or existing documentation has been updated to reflect changes.
[x] Visual changes are explained in the PR description using a screenshot/recording of before and after.

Edit records with hasCombinedRelationManagerTabsWithContent() set to true throws Argument #1 ($manager) must be of type Filament\Resources\RelationManagers\RelationManagerConfiguration|string, null given

This needs to be fixed differently, by not making the call to that method for the content tab.
Handing this over to @danharrin.


introduce block as the way to start near-literal syntax

In this example:
{
  var(func: allofterms(name, "Taraji Henson")) {
    actor.film {
      F as performance.film {
        G as count(genre)
        genre {
          C as count(~genre @filter(uid(F)))
        }
      }
    }
  }

  Taraji_films_by_genre_count(func: uid(G), orderdesc: val(G)) {
    film_name : name@en
    genres : genre (orderdesc: val(C)) {
      genre_name : name@en
    }
  }
}

Taraji_films_by_genre_count can described as a function name with two keyword args func: and orderdesc.
With the current implementation of the func function and underlying struct drgraph_ex does not have extensibility with regards to keyword args such as orderdesc, orderasc, etc etc.
I imaging being able to use this syntax:
block(:taraji, func: uid(:G), orderdesc: val(:G)), {
  film_name: :name@en,
  genres: block(:genre, orderdesc: val(:C)), {
    genre_name: name@en
  })
})

done.


Feature: Add again is not styled and presents a weird box

Type of feature
🍕 Feature
Current behavior

Suggested solution
Fix the stylinh
Additional context
No response
Code of Conduct

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

Contributing Docs

[ ] I agree to follow this project's Contribution Docs

.take

I would like to work on this.

Go for it I @sourabpramanik

.take

Closed by https://github.com/open-sauced/app/pull/2501


use lookup table in alphaIdx()

i'm not familar with ulid so i'm not sure how valuable this might be, but you could get what appears to be a really nice decode/s speedup by making alphaIdx() use a lookup table and computing it at comptime with the current alphaIdx() method.
i changed the build script to install ulid-bench. here are some results:
$ ../poop/zig-out/bin/poop zig-out/bin/ulid-bench zig-out/bin/ulid-bench-tbl
Benchmark 1 (45 runs): zig-out/bin/ulid-bench
  measurement          mean ± σ            min … max           outliers         delta
  wall_time           111ms ± 1.58ms     108ms …  116ms          3 ( 7%)        0%
  peak_rss           59.5MB ± 71.3KB    59.3MB … 59.6MB          0 ( 0%)        0%
  cpu_cycles          421M  ± 5.51M      411M  …  437M           5 (11%)        0%
  instructions        801M  ±  340       801M  …  801M           0 ( 0%)        0%
  cache_references   5.10M  ± 13.0K     5.08M  … 5.12M           0 ( 0%)        0%
  cache_misses       59.5K  ± 1.34K     57.1K  … 62.2K           0 ( 0%)        0%
  branch_misses      4.18K  ±  254      3.85K  … 4.65K           0 ( 0%)        0%
Benchmark 2 (68 runs): zig-out/bin/ulid-bench-tbl
  measurement          mean ± σ            min … max           outliers         delta
  wall_time          74.6ms ±  793us    71.8ms … 76.5ms          5 ( 7%)        ⚡- 32.9% ±  0.4%
  peak_rss           59.4MB ± 70.6KB    59.4MB … 59.6MB          0 ( 0%)          -  0.0% ±  0.0%
  cpu_cycles          271M  ± 1.41M      270M  …  279M           3 ( 4%)        ⚡- 35.8% ±  0.3%
  instructions        584M  ± 34.4K      584M  …  584M           3 ( 4%)        ⚡- 27.1% ±  0.0%
  cache_references   5.13M  ±  194K     5.08M  … 6.70M           4 ( 6%)          +  0.5% ±  1.1%
  cache_misses       58.2K  ±  967      56.4K  … 60.6K           0 ( 0%)        ⚡-  2.1% ±  0.7%
  branch_misses      3.98K  ±  243      3.75K  … 4.49K           0 ( 0%)        ⚡-  4.8% ±  2.3%

this doesn't seem to affect encoding but the decode/s seems to be around 4x faster. (73516632.0/18490384.0 = 3.98)
travis:/tmp/ulid-zig
$ zig-out/bin/ulid-bench
ids/s=22307627.22
encodes/s=93249622.53
binencodes/s=381733735.38
decodes/s=18490384.03
bindecodes/s=704664526.84
travis:/tmp/ulid-zig
$ zig-out/bin/ulid-bench-tbl
ids/s=22488232.02
encodes/s=93474603.37
binencodes/s=379483886.73
decodes/s=73516632.84
bindecodes/s=722682249.62

Love it, thank you!


[5] Progression System

Trello item: https://trello.com/c/HuRuz2rh/639-5-progression-system

Added progression system:

Each level contains certain amounts of locked and unlocked stars

The amount of start dynamical can be different for different levels

Locked levels have a locking overlay

Settings of the progression are stored in the DataTable file.

By default if there is no save game, progression will be initiated with the first level in the data table

Progression scores increase for win, lose, draw. Time to survive is not supported.

Amount of starts for each end game result configured in the data table

To restart the save go to Bomber\Saved\SaveGames and delete PSCSaveGame.sav

Required settings:

Data asset to be set for a BP_ProgressionSystemComponent:

Progression system uasset file configuration:

Data asset configuration

Main menu widget:

Additional:

There is a saving score widget in the end game.
For now it is disabled but can be easily reactivated.

I can not find BP_HUDComponent blueprint submitted.
Please make sure you have all files and assets submitted after renamings

Make a build and fix all warnings. Currently there are next:

You have to add PoolManager and MetaCheatManager as dependency into ProgressionSystem.uplugin:

PackagingResults: Warning: Plugin 'ProgressionSystem' does not list plugin 'PoolManager' as a dependency, but module 'ProgressionSystemRuntime' depends on module 'PoolManager'.
PackagingResults: Warning: Plugin 'ProgressionSystem' does not list plugin 'MetaCheatManager' as a dependency, but module 'ProgressionSystemRuntime' depends on module 'MetaCheatManager'.

WBP_StarWidget uses removed T_StarIconEmpty. Try to clear all usages, recompile and resave the widget.

WBP_StarWidget.uasset: Failed to load '/ProgressionSystem/Textures/T_StarIconEmpty': Can't find file.

Test changes making new build locally

Please remove unused content.
I see T_AcceptScore and Font_SaveProgression are not referenced by anything at this moment
(If you would need in future, then you will restore them, but now let's remove)

Make a build and fix all warnings. Currently there are next:

You have to add PoolManager and MetaCheatManager as dependency into ProgressionSystem.uplugin:

PackagingResults: Warning: Plugin 'ProgressionSystem' does not list plugin 'PoolManager' as a dependency, but module 'ProgressionSystemRuntime' depends on module 'PoolManager'.
PackagingResults: Warning: Plugin 'ProgressionSystem' does not list plugin 'MetaCheatManager' as a dependency, but module 'ProgressionSystemRuntime' depends on module 'MetaCheatManager'.

WBP_StarWidget uses removed T_StarIconEmpty. Try to clear all usages, recompile and resave the widget.

WBP_StarWidget.uasset: Failed to load '/ProgressionSystem/Textures/T_StarIconEmpty': Can't find file.

Test changes making new build locally

Resolved as part of https://github.com/h4rdmol/ProgressionSystem/pull/1/commits/71a2581696f8b19a073e45b2ef24eb1235e307af

Please remove unused content.
I see T_AcceptScore and Font_SaveProgression are not referenced by anything at this moment
(If you would need in future, then you will restore them, but now let's remove)
removed as part of the https://github.com/h4rdmol/ProgressionSystem/pull/1/commits/7f848f8ffa41f0ee93f971768e597eb000a0adda

@h4rdmol

Approved PR from Develop to Main. All further issues and suggestions will be reported separately.
Linked ProgressionSystem\Main to the Bomber\Develop.
Any commit on ProgressionSystem\Main directly is still restricted, please continue any further work on ProgressionSystem\Develop requesting Pull Requests


make fields in (gpio) registers available via structs

this is a first attempt to do this for the gpio registers
are you generally interested in something like this?
do the names make sense?
To me this is easier to read than bitshifts but the enums are very verbose
structs are autogenerated here https://github.com/kabel42/ch32v003

I like the look of this.  Does it compile down to sane code that only sets the specified fields?
You used implicit numbering in GPIO_MODE_TypeDef but not in the other structs.
It's good that you point out the implicit read-modify-write and how to do multiple things at once.  Withtout that, people could semantically think that these are inexpensive operations and not bundle them up--leading to bloated code.  Since these registers are volatile, the compiler isn't allowed to clean up after peoples mistakes.
I'm curious if @cnlohr has feedback on this.

I've tried to recreate the direct_gpio example with structs.
With Os it seems similar, but it's hard to say as it is very scrambled.
With Og it's mostly the same code but it seems to struggle sometimes:
		// Use upper bits of BSHR to RESET output
		GPIOC->BSHR = (1<<(16+1)); // RESET GPIO C1
 172:	000207b7          	lui	a5,0x20
 176:	c81c                	sw	a5,16(s0)

vs
		// Use upper bits of BSHR to RESET output
		GPIOC->BSHR_bits = (const struct BSHR_t) {
			.BR1 = 1,
		};
 13c:	00042823          	sw	zero,16(s0) # 40011010 <__global_pointer$+0x20010810>
 140:	481c                	lw	a5,16(s0)
 142:	00020737          	lui	a4,0x20
 146:	8fd9                	or	a5,a5,a4
 148:	c81c                	sw	a5,16(s0)

as far as i understand this, it now tries to store 32 bits, where before it only stored the upper 16 bit?

That's the kind of thing I'm worried about.

Ahh, it doesn't know about how the register reads as zero and you can only write ones to it.  It's tring to read it and add in the bit you wanted which takes a lot longer.  (I don't read RISC-V very well, yet)  So I may be wrong.

maybe we should skip the write only registers and only implement structs for config registers, where gcc generates exactly the same code:
		// Modify the OUTDR register directly to SET output
		GPIOC->OUTDR |= 1<<(4);    // SET GPIO C4
 160:	445c                	lw	a5,12(s0)
 162:	0107e793          	ori	a5,a5,16
 166:	c45c                	sw	a5,12(s0)

vs
		// Modify the OUTDR register directly to SET output
		GPIOC->OUTDR_bits.ODR4 = 1;
 13e:	445c                	lw	a5,12(s0)
 140:	0107e793          	ori	a5,a5,16
 144:	c45c                	sw	a5,12(s0)

That seems like a much safer proposal.

I can get it to generate the same code, but now the c code is no longer more readable
		GPIOC->BSHR = 1<<(1);      // SET GPIO C1
 154:	40011437          	lui	s0,0x40011
 158:	4789                	li	a5,2
 15a:	c81c                	sw	a5,16(s0)

		const struct BSHR_t BS1 = {
			.BS1 = 1,
		};
		GPIOC->BSHR_bits = BS1;
 124:	40011437          	lui	s0,0x40011
 128:	4789                	li	a5,2
 12a:	c81c                	sw	a5,16(s0)

Strange that it does it right with a variable, but not with a direct assignment.

I summon the power of @duk-37

Can't test anything right now but I suspect this may have to do with the compiler being too smart for its own good wrt. uninitialized data
By any chance are there unnamed bitfields, e.g.:
struct foo {
   int :4;
   int b: 4;
};

in this struct? I know there are in some others from the same header. If so, could you try giving them names and testing again?

i have changed it to
struct BSHR_t {
        uint32_t BS0 :1;
        uint32_t BS1 :1;
        uint32_t BS2 :1;
        uint32_t BS3 :1;
        uint32_t BS4 :1;
        uint32_t BS5 :1;
        uint32_t BS6 :1;
        uint32_t BS7 :1;
        uint32_t RESERVED1:8;
        uint32_t BR0 :1;
        uint32_t BR1 :1;
        uint32_t BR2 :1;
        uint32_t BR3 :1;
        uint32_t BR4 :1;
        uint32_t BR5 :1;
        uint32_t BR6 :1;
        uint32_t BR7 :1;
        uint32_t RESERVERD2:8;
      } BSHR_bits;

but the compiler still wants to write zero to the register and then read it back before doing anything else.
Maybe volatile is somehow rubbing of on the data?

to do write only by this bitfield you need to eg.  do the "shadow register" as TI does [11]
Also, type punning by union bitfields is very fragile. It's UB in C++ and implementation specified or something like that in C and the compilers can perform narrower accesses to a 32bit only peripherals; par 7 in [11],[12],[13].
▪ [11] http://staff.ii.pw.edu.pl/kowalski/dsp/F28x/F2808_page/spraa85a.pdf
▪ [12] https://stackoverflow.com/questions/67340350/bitfield-write-size
▪ [13] https://stackoverflow.com/questions/42171429/force-gcc-to-access-structs-with-words

ok now I see that the issue is with
GPIOC->BSHR_bits = (const struct BSHR_t) {
	.BR1 = 1,
};

try writing to uint32 union member instead of bitfield one

If i understand the TI appnote shadow registers work like https://github.com/cnlohr/ch32v003fun/pull/104#issuecomment-1555973181
I don't want to force that on the user. If that is the best we can do, i'd prefer to write set/clear functions/macros.
Maybe ST style:
static inline void setPin(GPIO_TypeDef* gpio, enum pin pin)
{ gpio->BSHR = pin}
setPin(GPIOA, GPIO_pin1|GPIO_pin2);

or
static inline void setPin(GPIO_TypeDef* gpio, int pin)
{ gpio->BSHR = 1<<pin}
setPin(GPIOA, 1);

type punning should work in c++ with extern "C"
unnamed union, i want to preserve backward compatibility, e.g. GPIOA->BSHR = 1<<4; should still work.

@jnk0le i'd like to do that, but i'd have to name the union and that would break old code. Or i'm missing something obvious. :)

writing more than one bit at a time seems again efficient
int main()
{
    GPIOC->BSHR_bits = (const struct BSHR_t) {
        .BR0 = 1,
        .BR1 = 1,
    };
}

main:
        li      a4,196608
        li      a5,1073811456
        sw      a4,16(a5)
        li      a0,0
        ret

and here is the broken write: https://godbolt.org/z/naYbczrvs

writing more than one bit at a time seems again efficient
int main()
{
    GPIOC->BSHR_bits = (const struct BSHR_t) {
        .BR0 = 1,
        .BR1 = 1,
    };
}

main:
        li      a4,196608
        li      a5,1073811456
        sw      a4,16(a5)
        li      a0,0
        ret

and here is the broken write: https://godbolt.org/z/naYbczrvs

Right, okay, back on computer, this is GCC being terrible and turning single-bit volatile writes into a write-to-zero-then-bitwise-or, which is technically legal (though I have no idea why you'd do it..) because the C standard is evil and the only real guarantee w/ volatile is that it's an "observable side-effect." meaning it can't be reordered relative to other side effects but that everything else is fair game. sigh

Anyway, here's one of the jankiest pieces of code I've ever written.
volatile struct BSHR_t BS;

// https://gcc.gnu.org/pipermail/gcc/2020-November/234216.html
#define GCC_IS_EVIL_VOLATILE_WRITE(field, value) { const typeof(((void)0, field)) __v = value; field = __v; }

int main() {
    GCC_IS_EVIL_VOLATILE_WRITE(BS, {
        .BR1 = 1
    })
}

A somewhat more reasonable fix is to actually write the u32 directly: https://godbolt.org/z/5s558rM7b
union BSHR_t {
    struct {
        uint32_t BS0 :1;
        uint32_t BS1 :1;
        uint32_t BS2 :1;
        uint32_t BS3 :1;
        uint32_t BS4 :1;
        uint32_t BS5 :1;
        uint32_t BS6 :1;
        uint32_t BS7 :1;
        uint32_t RESERVED1:8;
        uint32_t BR0 :1;
        uint32_t BR1 :1;
        uint32_t BR2 :1;
        uint32_t BR3 :1;
        uint32_t BR4 :1;
        uint32_t BR5 :1;
        uint32_t BR6 :1;
        uint32_t BR7 :1;
        uint32_t RESERVERD2:8;
    };
    uint32_t full;
};

volatile uint32_t BS;

int main() {
    BS = (union BSHR_t) {
        .BR1 = 1
    }.full;
}

gcc doesn't like
    __IO union BSHR_t {
      uint32_t BSHR;
      struct {
        uint32_t BS0 :1;
        uint32_t BS1 :1;
        uint32_t BS2 :1;
        uint32_t BS3 :1;
        uint32_t BS4 :1;
        uint32_t BS5 :1;
        uint32_t BS6 :1;
        uint32_t BS7 :1;
        uint32_t :8;
        uint32_t BR0 :1;
        uint32_t BR1 :1;
        uint32_t BR2 :1;
        uint32_t BR3 :1;
        uint32_t BR4 :1;
        uint32_t BR5 :1;
        uint32_t BR6 :1;
        uint32_t BR7 :1;
        uint32_t :8;
      } BSHR_bits;
    };

struct_direct_gpio.c:53:22: error: 'GPIO_TypeDef' has no member named 'BSHR'
   53 |                 GPIOC->BSHR = 1;
      |                      ^~

Functional example here -- https://godbolt.org/z/39rxxTsx1
Hopefully this solves various issues with the current approach -- the main one being that embedding the bits into the GPIO struct directly is really error prone as we've seen so far.
Essentially requires moving all the structs to outside the big GPIO structs, turning them into unions, keeping the existing values as u32s, then having a nice define for everything. That gives us a useful abstraction without losing finer-grained control or (hopefully) confusing the compiler.

i think we lost the write byte example, for future reference, this is how it goes wrong for structs and equivalent with bitshift:
	GPIOD->OUTDR_bits.BAIT = 0xff;
 632:	57fd                	li	a5,-1
 634:	40f406a3          	sb	a5,1037(s0)
	GPIOD->OUTDR = 0xff<<16;
 638:	00ff07b7          	lui	a5,0xff0
 63c:	c4dc                	sw	a5,12(s1)

Test: What happens to the register if it gets a sb?
C:
printf("CFGLR: %lX\n", GPIOC->CFGLR); // -> CFGLR: 44444444
GPIOC->CFGLR_bits.BAIT2 = 0x00;
printf("CFGLR: %lX\n", GPIOC->CFGLR);

ASM/LST:
	GPIOC->CFGLR_bits.BAIT2 = 0x00;
 624:	000400a3          	sb	zero,1(s0) # 40011001 <_eusrstack+0x20010801>

Output:
CFGLR: 44444444
CFGLR: 0

... = 0xFF:
CFGLR: 44444444
CFGLR: FFFFFFFF

A few thoughts.

Tabs, not spaces on this repo. (Please update, when you get a chance)
I think it would be kinda fun/cool to include even the write-only.
Don't you need to add __attribute__((packed))?
A lot of people really like this way of addressing values.  I want to add it.
What version of GCC are you using, @kabel42 ?

I really would like to merge this as soon as these are addressed.  It's something I think would be great!

1: no problem, would it be possible to have a .clang-format for that?
2: what do you think about these functions, to keep the compiler from adding extra bloat?
static inline void GPIOset(GPIO_TypeDef *gpio, uint8_t pins) {gpio->BSHR = pins;}
static inline void GPIOreset(GPIO_TypeDef *gpio, uint8_t pins) {gpio->BCR = pins;}
static inline void GPIOsetReset(GPIO_TypeDef *gpio, uint8_t set_pins, uint8_t reset_pins) {gpio->BSHR = set_pins|(reset_pins<<16);}

3: bitflields are packed, afaik you only need that to not align stuff like uint8
5: I'm using community/riscv64-elf-gcc 12.2.0-1 from the arch repos and export PREFIX=riscv64-elf
I'll tidy this up and add another commit

Bleh... I should probably get one together at some point.  I don't know how to make them or where they go.  Do you know much about them?  for now, can just spaces->tabs.  For the most part that's the only real style I feel that strongly about, just because I don't use an IDE.  The spaces don't insert themselves.
I don't understand why you would have them.  Writing GPIOC->BSHR = _____ shouldn't add bloat?
It should be fine, but the attribute makes it clear to onlookers.
Gotcha - should be ok then.

Actually 3: Attribute Packed.  How do others feel?  If no one else wants it, I don't want it either.

2: It shouldn't, but gcc does:
		GPIOD->BSHR_bits = (struct BSHR_t) {.BS0 = 1};
 65e:	40011437          	lui	s0,0x40011
 662:	40040793          	addi	a5,s0,1024 # 40011400 <_eusrstack+0x20010c00>
 666:	0007a823          	sw	zero,16(a5)
 66a:	4b98                	lw	a4,16(a5)
 66c:	00176713          	ori	a4,a4,1
 670:	cb98                	sw	a4,16(a5)

staring at CFGLR i really want to change it to the following. It's not what the RM says, but it's more intuitive to me. What do you think?
typedef enum
{
	GPIO_CFGLR_IN_ANALOG = 0,
	GPIO_CFGLR_IN_FLOAT = 4,
	GPIO_CFGLR_IN_PUPD = 8,
	GPIO_CFGLR_OUT_10Mhz_PP = 1,
	GPIO_CFGLR_OUT_2Mhz_PP = 2,
	GPIO_CFGLR_OUT_50Mhz_PP = 3,
	GPIO_CFGLR_OUT_10Mhz_OD = 5,
	GPIO_CFGLR_OUT_2Mhz_OD = 6,
	GPIO_CFGLR_OUT_50Mhz_OD = 7,
	GPIO_CFGLR_OUT_10Mhz_AF_PP = 9,
	GPIO_CFGLR_OUT_2Mhz_AF_PP = 10,
	GPIO_CFGLR_OUT_50Mhz_AF_PP = 11,
	GPIO_CFGLR_OUT_10Mhz_AF_OD = 13,
	GPIO_CFGLR_OUT_2Mhz_AF_OD = 14,
	GPIO_CFGLR_OUT_50Mhz_AF_OD = 15,
} GPIO_CFGLR_PIN_MODE_Typedef;
typedef struct
{
	__IO union {
	uint32_t CFGLR;
	struct {
		GPIO_CFGLR_PIN_MODE_Typedef PIN0 :4;
		GPIO_CFGLR_PIN_MODE_Typedef PIN1 :4;
		GPIO_CFGLR_PIN_MODE_Typedef PIN2 :4;
		GPIO_CFGLR_PIN_MODE_Typedef PIN3 :4;
		GPIO_CFGLR_PIN_MODE_Typedef PIN4 :4;
		GPIO_CFGLR_PIN_MODE_Typedef PIN5 :4;
		GPIO_CFGLR_PIN_MODE_Typedef PIN6 :4;
		GPIO_CFGLR_PIN_MODE_Typedef PIN7 :4;
	  } CFGLR_PINS;
// ...

1: no problem, would it be possible to have a .clang-format for that?
2: what do you think about these functions, to keep the compiler from adding extra bloat?
static inline void GPIOset(GPIO_TypeDef *gpio, uint8_t pins) {gpio->BSHR = pins;}
static inline void GPIOreset(GPIO_TypeDef *gpio, uint8_t pins) {gpio->BCR = pins;}
static inline void GPIOsetReset(GPIO_TypeDef *gpio, uint8_t set_pins, uint8_t reset_pins) {gpio->BSHR = set_pins|(reset_pins<<16);}

3: bitflields are packed, afaik you only need that to not align stuff like uint8
5: I'm using community/riscv64-elf-gcc 12.2.0-1 from the arch repos and export PREFIX=riscv64-elf
I'll tidy this up and add another commit

at at point just use a macro
no, you have a uint32 in your union field. also your bitfields are aligned to u32 because that's the type specified on the left. again I strongly suggest to ditch the union completely; see the last example i sent.

I'm happy to go either way, my reasoning is:
2: Why risk the headache of debugging macros when a static inline works
3: I don't think it's very readable and vscode autocomplete can't handle it
might as well add more defines and have something like
GPIOD->CFGLR = GPIO_CFGLR_MODE0_OUT_10MHz | GPIO_CFGLR_CNF0_OUT_PP;
GPIOD->BSHR = GPIO_Pin_0 | GPIO_Pin_1;

Ugh this gives me so much anxiety.  I have seen some people really preferring this style of using registers, so I want to support it, but, I don't have the deep expertise to know the right avenue to do it to avoid weird leaky abstraction issues.  If you guys can continue to work through it, I'd really appreciate it.

This PR currently does not compile in a C++ context.
I have found a fix, see in https://github.com/cnlohr/ch32v003fun/pull/105#issuecomment-1557772402.
Please keep this in mind as you move forward to ensure that the C++ CI action doesn't fail, thank you.

We could also go the easy way and just add some defines, but we would miss out on the type checking
GPIOD->CFGLR = GPIO_CFGLR_MODE0_OUT_10MHz | GPIO_CFGLR_CNF0_OUT_PP;
GPIOD->BSHR = GPIO_Pin_0 | GPIO_Pin_1

BSHR aka BSRR should use the GPIO_BSRR_BS_0 and GPIO_BSRR_BR_0 like defs. Otherwise you need a magic 16bit shift to do do gpio clearing.
The most missing definitions are the *_Pos ones like in more recent ST headers for f0 and newer peripherals.
With only those we get to something like that:
// assume reset state of MODER4 field
GPIOA->MODER |= (0b01 << GPIO_MODER_MODER4_Pos);

// assume unknown state MODER4 field
// GPIO_MODER_MODER4_Msk is the same thing as GPIO_MODER_MODER4
// just less confusing
GPIOA->MODER = (GPIOA->MODER & GPIO_MODER_MODER4_Msk) | (0b01 << GPIO_MODER_MODER4_Pos);

there are also things like systick which doesn't have any bit definitions, so you have to initialize it with magic value.

I'm out of good ideas and i have no idea how to do this with macros so here is an attempt with lots of static inline function.
@duk-37, if you can do this with macros i'd happily that, but i can't do it.
This hopefully also fixes the c++ problems.

I'm out of good ideas and i have no idea how to do this with macros so here is an attempt with lots of static inline function. @duk-37, if you can do this with macros i'd happily take that, but i can't do it.
The examples compile to sane asm that should be as fast as the bitshift approach.
This hopefully also fixes the c++ problems.

__VA_ARGS__ to the rescue. :)
#define DYN_GPIO_READ(field) ((const GPIO_##field##_t) { .__FULL = GPIO.field })
#define DYN_GPIO_WRITE(field, ...) GPIO.field = ((const GPIO_##field##_t) __VA_ARGS__).__FULL

uint32_t Test;
int main() {
    Test = DYN_GPIO_READ(BSHR).BR0;
    DYN_GPIO_WRITE(BSHR, { .BR1 = 1, .BR2 = 1 });
}```

for single values, maybe something like this?
#define something(gpio, field, reg, val) \
{const GPIO_##field##_t tmp = DYN_GPIO_READ(gpio, field); \
tmp.##reg = val; DYN_GPIO_WRITE(gpio, field);}

Yep, more thinking about the multi-value case. But honestly should be fine for now tbh

Just making sure - everyone is green lighting this current PR, right?

normal struct can only modify one value at a time, so this should be fine
i'll add an example of doing this by hand for multiple values
i'd like to add gpio to the macro so you can specify the port like
    DYN_GPIO_WRITE(GPIOC, BSHR, { .BR1 = 1, .BR2 = 1 });

Just making sure - everyone is green lighting this current PR, right?

let me push the macro version first unless someone prefers 33 lines of static inline functions just for gpio

asm looks sane, direct_gpio and structured_direct_gpio generate the same code
i'm fine with merging this


Re-implement new features for REVM

Changes to forge run

[x] Configurable artifact types (#762) (fixed by rebase)
[x] Using new ethers-solc functions (#776) (fixed by rebase)

Changes to the test runners

[x] Test result streaming (#798) (fixed by rebase)

Changes to the fuzzer

[ ] Invariant tests (#849)
[ ] Fuzz dictionary (#731)

Changes to gas reports

[ ] Exporting (#887)

Changes to cheatcodes

[x] cheats.ffi (#904)
[x] cheats.getCode (#903)

Remaining items will be new PRs


update is not statically linked

It won't run on alpine linux as it is dynamically linked to glibc, I tried alpine glibc compatibility library but I am running aarch64 as well.

We plan to test on alpine linux but unfortunately we have no chance to do it in the next month.
Thank you for your understanding.

I have added a node-red example now to the project, it is now raspi-alpine/builder
https://gitlab.com/raspi-alpine/builder/-/tree/master/examples/node-red
It clones this repo and builds app and python image, and installs node-red modules with yarn.
I think if you statically link the update app like this:
https://gitlab.com/raspi-alpine/builder/-/blob/master/Dockerfile#L61
It should work, the uboot tool is compiled in Debian which is glibc and runs on alpine which is musl.


Add cliq integration

Add Cliq integration.
https://www.zoho.com/cliq/

Hi! Can u send screen of test result in messenger?


Feature/meteor update

Closes #1161
Changes

upgrade all project dependencies
upgrade to Meteor 1.3.3
move Clipboard dependency to npm

While testing this branch, I have found:
/profile:

apiKey is missing

I have updated all packages again, including Meteor 1.3.4. @apinf/core please review.

The missing api key is related to an open bug report:
https://github.com/apinf/api-umbrella-dashboard/issues/1216
It was not introduced as part of this upgrade.

@brylie, reviewing this.

Getting on Windows 10:
=> Errors prevented startup:

   While building for web.browser:
   apis/collection/backend.js:1:83: Unexpected token (1:83)

@philippeluickx, tested myself, everything works as expected. Test yourself and merge it.

Catalog is empty for me, @nnn looking into it.

Still empty...

I20160628-17:57:08.005(3) (synced-cron-server.js:63) SyncedCron: Exception "Sync API Umbrella Users and API Backends" ReferenceError: ApiBackends is not defined
at apis/server/methods/apiUmbrella.js:12:34
at Function..each..forEach (packages/underscore/underscore.js:108:1)
at [object Object].syncApiBackends (apis/server/methods/apiUmbrella.js:10:9)
at maybeAuditArgumentChecks (packages/ddp-server/livedata_server.js:1704:12)
at packages/ddp-server/livedata_server.js:1617:18
at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
at Server.apply (packages/ddp-server/livedata_server.js:1616:45)
at Server.call (packages/ddp-server/livedata_server.js:1559:17)
at Object.job (server/startup.js:18:16)
at packages/percolate_synced-cron/synced-cron-server.js:218:1


nitweb: show metrics

This PR introduce the metrics displaying in nitweb.
For now, only classes and modules metrics are shown (mclass_metrics.nit, mmodules_metrics.nit, inheritance_metrics.nit).
Some examples (may be long to load on my little server):

core::Array
core::array
core>collection>
core

503: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">  <title>503 Service Unavailable</title>
Service Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

 <address>Apache/2.4.7 (Ubuntu) Server at nitweb.moz-code.org Port 80</address>

Else +1

ping?

D3 pies are cute
Nice refactoring of class and module metrics
:+1: +1

Nitpicking: When percentages are below 10 %, they are unreadable on the small pie charts. In this case, can you put them in the label instead of over the chart?


Support service binding type 'npmrc'

Summary

Resolves #308
Use Cases

We made a few decisions in this implementation that we want to call out:

If more than one binding of type npmrc is provided, the build fails, since there's no way to set NPM_CONFIG_GLOBALCONFIG to multiple file locations.
If an npmrc service binding is provided, NPM_CONFIG_GLOBALCONFIG is set to its path as a default environment variable on the node modules layer. As a result, if a user manually sets NPM_CONFIG_GLOBALCONFIG at build time, the user-provided value gets priority over the value determined by the service binding resolver.

Feedback is welcome on how these choices impact the value of the feature.
Checklist

[x] I have viewed, signed, and submitted the Contributor License Agreement.
[x] I have linked issue(s) that this PR should close using keywords or the Github UI (See docs)
[x] I have added an integration test, if necessary.
[x] I have reviewed the styleguide for guidance on my code quality.
[x] I'm happy with the commit history on this PR (I have rebased/squashed as needed).

Blocked on https://github.com/paketo-buildpacks/occam/pull/119

When you say "avoid passing the npmrc filepath around through an environment variable", does that suggest changing os.Setenv("NPM_CONFIG_GLOBALCONFIG") , but still setting nodeModulesLayer.BuildEnv and  buildProcess.environment, @ryanmoran?

I mean the former. I'd like to see us try to avoid using the environment of the local process as a storage mechanism for passing variables between objects. We can pass the strings around directly.

The integration tests are currently failing during the node-engine build process due to a permissions error. I'm unable to reproduce this on my machine. See https://github.com/paketo-buildpacks/npm-install/runs/4731148661?check_suite_focus=true#step:5:369.
@paketo-buildpacks/nodejs-maintainers Can you take a look at what's going on here?

@fg-j I believe you are running into this: https://stackoverflow.com/questions/61009190/docker-mount-permissions-on-mac-vs-linux. On macos, the host makes sure that the permissions line up with the user inside the container for ease of use while that is not how the bind mounting behavior works on Linux. I believe this is compounded by the way the binding directory is crated as os.MkdirTemp uses 0700 as the permissions for the directory it creates. Since the UID inside the container will not match the UID on the host and we have denied permissions for group and everyone, we see a permission denied error when we try to find files in that directory. Specifically, the service bindings code in packit is trying to differentiate between old-style bindings and new-style bindings by looking for a file called metadata. However, because the directory cannot be listed by the container user, we just get a permission denied error.
I think the answer is to os.Chmod the directory to something more permissive like os.ModePerm.

@ryanmoran That makes sense. Is the reason we're only seeing this crop up now is because we previously haven't integration tested build-time service bindings?
For now, this PR is blocked on the fix in  servicebindings.


client: improve constructor checks and docs

This introduces and explicit nil-check on the metadata store in
NewNotaryRepository(), to match the docstring and to avoid further
panics at runtime.
It also clarifies the default behavior in case of a nil remote store and of
a nil roundtripper.
Signed-off-by: Luca Bruno<EMAIL_ADDRESS>

Can one of the admins verify this patch?

jenkins, test this please

LGTM thanks!

Can one of the admins verify this patch?


How to run tests?

README says: $ python3 setup.py test but when this command is run it says:
WARNING: Testing via this command is deprecated and will be removed in a future version. Users looking for a generic test entry point independent of test runner are encouraged to use tox.
running egg_info
writing python_gist.egg-info/PKG-INFO
writing dependency_links to python_gist.egg-info/dependency_links.txt
writing entry points to python_gist.egg-info/entry_points.txt
writing requirements to python_gist.egg-info/requires.txt
writing top-level names to python_gist.egg-info/top_level.txt
reading manifest file 'python_gist.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'python_gist.egg-info/SOURCES.txt'
running build_ext

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

Sorry, that should be updated. To run the unit tests you need to have poetry installed and run,
make test

Sorry, that should be updated. To run the unit tests you need to have poetry installed and run,
make test

whoops! nope, that isn't the case in master.


A+C: Add Renée French for numerical gopher

@gonum/developers
Renée French did the numerical gopher in square brackets as a
commission, so it is in that regard distinct from the Go gopher. This
A+C addition is to reflect the fact that she put work into the gonum
project aside from her CC artwork.
The email address field of the A+C lines is empty since she has no
publically visible textual representation of her email address, and I
negelected to ask if it was OK to publish her email when asking if she
was OK having her name in the A+C.

LGTM


Set proxy net.Dial KeepAlive to 1 second

A short explanation of the proposed change:
Configure proxy's net.Dialer to probe idle connections every 1s instead of every 15s.
An explanation of the use cases your change solves
When gorouter is configured to keep connections alive (DisableKeepAlives: false) then it will keep idle TCP connections open to backends for up to 90 seconds. If the connection is not used after 90 seconds then it is closed; if a new request comes in, and there is a idle connection to the backend ready, then it will be used instead of a new TCP connection being made.
If a backend endpoint closes a connection which has been kept alive at
the same time as gorouter tries to use the connection, then Gorouter
returns a 502 and logs backend-endpoint-failed due to an io.EOF on the socket.
The underlying TCP connection is managed by net.Dialer which by default probes the status of the underlying connection every 15s, which communicates to the recipient that the connection should still be kept open.
Some apps running in our deployment have keep-alives configured to be less than the 15s default probe interval.
Enabling connection keep alives in our foundry caused gorouter to return 502 (backend-endpoint-failed) for approximately ~0.01% of requests to backends which had short keepalive durations.
It did not appear to have a substantial effect on apps with longer keepalive durations, although I have not conclusively tested this.
Now that routing-release (since 0.192) defaults keep-alives to backend connections to be on, it may be sensible to have a shorter probe interval, to avoid these hard to diagnose networking issues.
This PR configures the default probe interval of the underlying net.Dialer in the same style as EndpointDialTimeout; it adds a new
configuration parameter EndpointKeepAliveProbeInterval which configures the underlying net.Dialer KeepAlive parameter, and overrides the default of 15s to be 1s.
I chose 1s somewhat arbitrarily, but it has the property of being lower than the 2s default keepalive duration that some of the pathological apps deployed to our CF have.
This should not adversely affect the performance of gorouter, however that it will send 1 probe per connection idle connection every one second, instead of 1 probe per connection every 15 seconds.
Instructions to functionally test the behavior change
I found this quite hard to test as it only appears at scale, when traffic fluctuates, for requests which cannot be retried.
I would appreciate advice in how to write a test case for this (perhaps a soak test in one of CFF's long lived environments might do the trick?).
Expected result after the change
When I deploy this change, when keepalive's to backends are enabled, I will not see 0.01% of requests 502 with backend-endpoint-failed due to keepalives.
The net.Dialer probe will signal to the backend to keep the connection open.
Current result before the change
We have deployed routing-release with max_idle_connections: 2500 twice, and reverted it twice. When max_idle_connections is non-zero then gorouter will keep up to 100 idle connections (hardcoded) open to backends.
The backends may close the connection while gorouter is trying to use them.
Since routing-release 0.192 the default value for max_idle_connections is non-zero, so I expect to see other deployments experience this.
Links to any other associated PRs
This issue https://github.com/cloudfoundry/gorouter/issues/209 has similar symptoms but the cause is different

[x] I have viewed signed and have submitted the Contributor License Agreement

[x] I have made this pull request to the master branch

[x] I have run all the unit tests using bin/test

[ ] I have run CF Acceptance Tests on bosh lite

CLA bot didn't appear but I have signed both the new (#257) and the old CLA (#251)

Hi @tlwr ,
Thanks for this PR. The reasoning and code look good to us. However, we would appreciate if you could add a unit test for the config change (similar to this).
Happy to merge afterwards!
Thanks
@KauzClay and @angelachin

Hi, thanks!
I've added a test that checks that the default is set appropriately.
The test that you have linked to tests that the parsed configuration is set appropriately.
The first commits changes the configuration setting, but does not make it configurable from the config file, in the same way as EndpointDialTimeout which can be configured on the struct only.
I am happy to, as well as the test I have just written, enable it as a configurable option (endpoint_keep_alive_probe_interval), and write a test that it can also be configured from YAML
:)

@tlwr Wow we were just drafting a response to say yes, configurable sounds like a good move, but you did it anyway! Thanks!

@tlwr we merged. We will commit that into routing release so it points to a version of gorouter with your change, so it will be there when you PR routing-release

We will commit that into routing release so it points to a version of gorouter with your change, so it will be there when you PR routing-release

Awesome, I'll see you in a PR in routing-release 👋 🏃


Integrate LLVM at llvm/llvm-project@eb8c27

Update BUILD files and submodule for
eb8c27

I was already in the process of updating the description :P

I was already in the process of updating the description :P

:+1: mostly wanted to take off automerge


Fix bug in IsolateRunner.kill.

Also update LoadBalancer.runMultiple to be properly generic.
Cleanups and tweaks.
See #32

@lrhn – dartfmt and you should be good!


Improving Compile-Time Safety

Improving Compile-Time Safety
tl;dr
This is a significant architectural change that aims to make the way we interact with entities, pools and systems safer. This is a WIP and I've opened this PR for discussion.
Strongly typed pools
// Strongly typed pools are generated for you
CorePool pool = Pools.core;

// You can upcast to the new generic pool interface
IPool genericPool = Pools.core;

Strongly typed pool entities
// Pools return an object that conforms to an interface for that pool.
// This interface only contains methods relevant to the components of
// that pool.
ICorePoolEntity entity = Pools.core.CreateEntity();

// This prevents you from adding/removing the wrong components.
entity.isMovable = true; // OK: MoveableComponent is part of this pool
entity.isRain = true;    // COMPILE ERROR: "isRain not found" RainCompoment is NOT part of this pool

// This also makes the autocompletion list much nicer
pool.CreateEntity()
  .AddPosition(0f, 0f)
  .AddHealth(100);

// You can upcast to the new generic entity interface
IEntity genericEntity = Pools.core.CreateEntity();

Typed Reactive Systems
// New typed reactive systems provide a greater level of safety
class TimeSystem : IReactiveSystem<ICorePoolEntity> {
  public void Execute(List<ICorePoolEntity> entities) {
  }
}

New generated interfaces for each component
Credit: @mzaks for the suggestion in chat.
// An interface is generated for each component.
// Below is the interface for PositionComponent.
public interface IPositionEntity : IEntity {
  PositionComponent position { get; }
  bool hasPosition { get; }
  IPositionEntity AddPosition(int newX, int newY);
  IPositionEntity ReplacePosition(int newX, int newY);
  IPositionEntity RemovePosition();
}

// Now we can use interface composition for typed reactive systems
interface IPhysicalEntity : IPositionEntity, IMassEntity, IVelocityEntity { }
class VelocitySystem : IReactiveSystem<IPhysicalEntity> {
  public void Execute(List<IPhysicalEntity> entities) {
    // Now we only have a subset of components to work with :)
  }
}

Backwards compatible
These updates are 100% backwards compatible with the current version of Entitas. It will not affect existing code relying on Entitas and should have a minimal impact on ongoing development.
This work should not affect any existing discussions relating to optimization or architecture.
Motivation
This work started from #136.
Roadmap

Maintain backwards compatibility.
Ensure single entities are handled correctly.
Ensure flag entities are handled correctly.
Investigate failing tests.
Make sure line endings are consistent.

My next step is trying to figure how to build + package Entitas for Unity. I've had trouble with this #138.
I'd also like to add tests for the new generated code. In general, testing code generators is usually very tedious and the tests are fragile. Do we have any procedures in place for updating test fixtures, etc?

Hey @sschmid, @mzaks, I was planning on continuing work on this PR this week but before I do I wanted to get some feedback from you two: Does this fit in the vision you have for Entitas? Are there plans that this interferes with?

Hi, having specific types to improve code completion will totally fit into the vision of Entitas. Once you scale your game you'll usually end up having multiple pools. This can lead to bugs because you are able to add components to entities from different pools etc. I'm currently integrating the new Pools class which is not static anymore and try to prepare a new version with features and bug fixes from all of you guys. After this I think it totally makes sense to keep on working on your suggestion.

Good to hear. Thanks!

Just a heads up: I really like your idea, great work! This topic just became my prio 1 task now. I will look more into this. I also added a new PoolsGenerator on develop for the new Pools instance class to make it easier to work with multiple pools. I also plan to replace pool.CreateSystems() with pools.CreateSystem() and move the responsibility to choose the correct pool into the reactive system itself. This all should fit nicely with all of your suggestions.

I started to look into this now. I took a look at your changes and put them ontop of the latest develop.
I currently have problems getting it to work. Here's what I've done.

Added IEntity. Entity implements IEntity
Added IPool<TEntity>. Pool implements IPool<TEntity>
Updated Matcher, Group, GroupObserver, ReactiveSystem, TriggerOnEvent and more to be generic with TEntity
Added convenience default Matcher, Group, GroupObserver, ReactiveSystem, TriggerOnEvent with <Entity> to make VisualDebugging compile without changing too much.

I have questions:
Imagine TEntity is CoreEntity. What has to be generated and how should I use it?
Doing this
public interface ICoreEntity : IEntity {
    PositionComponent position { get; }
    bool hasPosition { get; }
    Entity AddPosition(UnityEngine.Vector3 newPosition);
    Entity ReplacePosition(UnityEngine.Vector3 newPosition);
    Entity RemovePosition();
}

doesn't work with pool.CreateEntity() because new Entity cannot be casted to TEntity.
public virtual TEntity CreateEntity() {
    var entity = _reusableEntities.Count > 0 ? _reusableEntities.Pop() : new Entity();
    ...
}

I can add constraints like this:
public partial class Pool<TEntity> : IPool<TEntity> where TEntity : class, IEntity, new() { }

so I can do
public virtual TEntity CreateEntity() {
    var entity = _reusableEntities.Count > 0 ? _reusableEntities.Pop() : new TEntity();
    ...
}

Then I have to create a pool like this
var pool = new Pool<CoreEntity>(...);

Therefore I need a CoreEntity class
public class CoreEntity : Entity { }

But by inheriting from Entity I basically get code completion for all pools.
So the solution would be
public partial class CoreEntity : Entity { }

and the ComponentExtensionsGenerator should only add methods to CoreEntity and not Entity.
Is that correct? Did I miss sth?

fyi, https://github.com/sschmid/Entitas-CSharp/commits/feature/type-safety

What do you think of this idea:

No interfaces for typed entities (e.g. CoreEntity)
We keep IEntity, IPool<TEntiy>
Entity is not partial anymore. Code Generator doesn't extend existing Entity class anymore
Code Generator creates new partial class based on pool names, e.g. MetaEntity, CoreEntity
Code Generator extends CoreEntity the same way it used to extend the normal Entity

using Entitas;

public partial class CoreEntity : Entity {

    public PositionComponent position { get { return (PositionComponent)GetComponent(CoreComponentIds.Position); } }

    public bool hasPosition { get { return HasComponent(CoreComponentIds.Position); } }

    public CoreEntity AddPosition(UnityEngine.Vector3 newValue) {
        var component = CreateComponent<PositionComponent>(CoreComponentIds.Position);
        component.value = newValue;
        AddComponent(CoreComponentIds.Position, component);
        return this;
    }

    public CoreEntity ReplacePosition(UnityEngine.Vector3 newValue) {
        var component = CreateComponent<PositionComponent>(CoreComponentIds.Position);
        component.value = newValue;
        ReplaceComponent(CoreComponentIds.Position, component);
        return this;
    }

    public CoreEntity RemovePosition() {
        RemoveComponent(CoreComponentIds.Position);
        return this;
    }
}

We used the new Pool <TEntity> as planned

var corePool = new Pool<CoreEntity>(CoreComponentIds.TotalComponents);
corePool.CreateEntity()
        .AddPosition(new Vector3(1, 2, 3));

Here's a working example
Typed Entities.zip

Looking at the proposed change (which I like and wanted to have typed pools for a very long time) there's a couple things I wanted to highlight that we wanted this to solve:

not having to write Add(Pools.core.CreateSystem()) or Add(Pools.core.CreateSystem(new TypeOfSystem())) in a Feature
-> after typed pools writing Add(new TypeOfSystem()) and Entitas resolves the type based on trigger
if 1) is true then all Matchers need to be typed and I shouldn't have to specify anything other than the matcher (trigger) to communicate to the outside that a given ReactiveSystem works on a given Pool
Because we have typed Entities then only the components that belong to that given type are available on it from auto-complete -> otherwise compile-time error
as a bonus (dunno if you want to incorporate it into this feature) the static Pools class needs to go and either the ISetPools or some other idea needs to proposed so that ISystems will have access to the Pools without me having to write 3-5 lines everytime to get them (atm I solve by having an ASystem class that simply gets the non-static Pools in the constructor and stores it in a field)

So looking at Simon's latest commit 2) is not there and the question still remains whether 4) should be part of this already.

my current plan is to have this API

pools.CreateSystem(new MySystem()));

Haven't check yet, but the idea is that you can infer the TEntity type of the system itself.

Yes, matchers should be typed as well
Definitely
The static Pools is already gone on develop. You can always write your own ISystem storing pools. I don't think this will be part of Entitas. You should use ISetPools instead of constructor arguments, otherwise you cannot easily reinitialize if you ever plan to do some kind of soft-reset

this is an improvement on the current API but would be great if in a Feature I could cleanly write:
Add(new MySystem()); - plain and simple
ok cool - I guess that's good enough :)

I'm currently playing around on this branch
https://github.com/sschmid/Entitas-CSharp/commits/feature/type-safety

Here's an updated sample project
Typed-Entities.zip
Pools.sharedInstance.SetAllPools();

Pools.sharedInstance.meta.CreateEntity()
        .AddName("Max");

Pools.sharedInstance.core.CreateEntity()
        .AddPosition(new Vector3(1, 2, 3));

[Core]
public class PositionComponent : IComponent {
    public Vector3 value;
}

[Meta]
public class NameComponent : IComponent {
    public string value;
}

You cannot add Position to a meta entity 👍

The new Pools class let's you assign Pools as you like. It can store all specified pools. You can also set them to null now. It's planned to pass around the Pools instance with ISetPools instead of manually passing all required pool instances to an object.

Whoa lots of new chatter 👍
Thanks for moving this forward. Here are my thoughts on a few things you brought up:

So the solution would ... the ComponentExtensionsGenerator should only add methods to [the Entity subclasses (which are partial)] and not Entity. Is that correct?

If that is the only thing we can do to make the type system happy then I'm good with that.

No interfaces for typed entities (e.g. CoreEntity)

Even if the generated interfaces aren't used internally in Entitas I still think they are useful for doing things like composing interfaces for reactive systems:
// Now we can use interface composition for typed reactive systems
interface IPhysicalEntity : IPositionEntity, IMassEntity, IVelocityEntity { }
class VelocitySystem : IReactiveSystem<IPhysicalEntity> {
  public void Execute(List<IPhysicalEntity> entities) { }
}

I feel like I am missing sth in your idea. I don't understand how it should work with the interfaces. Can you explain?
E.g. IPositionEntity, would you do sth like
var posEntity = (IPositionEntity)entity;

What type is entity? Entity or CoreEntity, how can you cast Entity to IPositionEntity?
Afaik, Entity would have to implement all those interfaces?

It might work if the code generator makes the partial Entity class implement all interfaces, right?

From my test, you cannot cast IEntity, ICoreEntity or anything else to IPhysicalEntity if you never declare interface ICoreEntity : IPhysicalEntity
Am I missing sth?

My test setup:

// given
public partial interface ICoreEntity : IEntity {}
public partial class CoreEntity : Entity, ICoreEntity {}

// having
[Pool("Core")]
public class NameComponent : IComponent {
    public string value;
}

// This will be generated
public interface ICoreNameRead {
    NameComponent name { get; }
    bool hasName { get; }
}

public interface ICoreNameWrite {
    void AddName(string value);
    void ReplaceName(string value);
    void RemoveName();
}

public partial class CoreEntity : ICoreNameRead, ICoreNameWrite {
    // placeholder for real index
    const int nameIndex = 0;

    public NameComponent name { get { return (NameComponent)GetComponent(nameIndex); } }

    public bool hasName { get { return HasComponent(nameIndex); } }

    public void AddName(string value) {
        var component = CreateComponent<NameComponent>(nameIndex);
        component.value = value;
        AddComponent(nameIndex, component);
    }

    public void ReplaceName(string value) {
        var component = CreateComponent<NameComponent>(nameIndex);
        component.value = value;
        AddComponent(nameIndex, component);
    }

    public void RemoveName() {
        RemoveComponent(nameIndex);
    }
}

public interface Person : ICoreEntity, ICoreNameRead, ICoreNameWrite {}

var pool = new Pool<CoreEntity>(...);
var e = (Person)pool.CreateEntity(); // Does not compile ;(

Am I missing sth? It would be awesome if that would work

Ok, so I don't think we'll be able to do that with C#. I was originally thinking we'd be able to do something in C# like this:
// Swift
protocol IMass { }
protocol IVelocity { }
protocol IPosition { }

typealias IPhysical = protocol<IMass, IVelocity, IPosition>

but that doesn't seem possible.
What if in order to get that behavior we did something like this:
// User-created interface
public interface IPerson : ICoreEntity, ICoreNameRead, ICoreNameWrite { }

// Make partial class conform to new interface.
// No need to implement anything since it already conforms.
public partial class CoreEntity : Person { }

// Then...
var pool = new Pool<CoreEntity>(...);
var e = pool.CreateEntity() as IPerson;

I personally think that the amount of code you as a dev have to write in your project (not in Entitas!) to get something like:
class VelocitySystem : IReactiveSystem<IPhysicalEntity> {
  public void Execute(List<IPhysicalEntity> entities) {...}
}

working, outweighs any usability this provides - as what it really only provides is code completion and ensuring that an entity has the given components, but this can be achieved already with the IEnsure/IExlude interfaces.
What I think you seem to want is actually a 'node' based approach (similar to Ash) where a system doesn't iterate over entities but over nodes which hold sets of components (for instance your Velocity, Mass, Position) and thus you can only interact with those in a given system. Simon and I have been talking about something like this for some time now and we definitely cannot have this real node based approach (where a node is a class container created every time and holding components) as it would be too slow, but we want to have the option of grouping components on a pool which would improve readability and performance, and hopefully at some point would lead us to a sort of interface like you have above :)

This is what I did in the ECS-Lang code generator
I define the accessors as interfaces inside of the component, as I want to have an accessor based lens
public class JumpInTimeComponent : IComponent {
	public long value;
	public interface Get {JumpInTimeComponent jumpInTime{get;}}
	public interface Has {bool hasJumpInTime{get;}}
	public interface Add {void AddJumpInTime_(long newValue);}
	public interface Replace {void ReplaceJumpInTime_(long newValue);}
	public interface Remove {void RemoveJumpInTime_();}
}

Now I can define a new interface which aggregates those interfaces:
public interface InputEntity : JumpInTimeComponent.Get, JumpInTimeComponent.Add{}

And than I have to redefine partial Entity class that it implements the interface:
namespace Entitas {
	using my.game;
	public partial class Entity : ReplayBaseSystem.InputEntity {}
}

This works.

Of course this works - but it means that the partial class Entity will implement a bazillion interfaces once you start making your own interface aggregates - dunno if there's really a problem with that. But more importantly, as I said above, I don't see any use for it other than code-completion.

Well in case of the DSL it is a bit more than just autocompletion. It is a contract of how which data this system has access for and can create. The beauty of ECS is that everything is open and I don't want to attack this. I want to takle the problem that it is sometimes hard to see what is going on. With a definition of system contract we expose the data access and mutation on a higher level, without need to understand how it is done we see that it will access following components, replace this component and destroy this type of entity. Again let's have a Replay system as an example:
sys Replay {
    input unique {
        trigger : enteredGroup(JumpInTime)
        ensure : JumpInTime
        api : JumpInTime(get)
    }
    unique : ConsumtionHistory(has get)
    unique : LogicSystems(get)
    unique : Tick(replace)
    unique : JumpInTime(get)
    create consumeElixir : ConsumeElixir
}

On the first glance we directly see that it does has dependency to a lot of unique components, most of the dependencies are how ever read. Only Tick will be replaced, and we see that we will create a new Entity wich will have ConsumeElixir component. I believe it adds a great amount of value for behaviour analysis.
The generated interfaces just make sure that we don't cheat in the implementation. We have to stick with the described contract. I also don't believe that the overhead of describing the contract first will great, when you stick to the single responsibility principal.

It is a contract of - which data this system has access for and can create... The generated interfaces just make sure that we don't cheat in the implementation. We have to stick with the described contract.

Yes 👍  I think that we could achieve this with the IEnsure/IExlude interfaces, etc but that doesn't prevent the system from breaking the contract and modifying entities in whatever way it chooses.
Additionally, as a project grows in size anything I can do to help my code write itself is very desirable. If a system only exposes the correct subset of an entity's interface to me (e.g. IPerson in my example above) then I am prevented by the compiler from making a logical error which I think is pretty neat. For example, I don't want a MoveSystem modifying an object's mass even though mass, velocity and position are likely components in the same pool.

Heads up,
there's a version on this branch for everyone who wants to try it already.
https://github.com/sschmid/Entitas-CSharp/tree/feature/type-safety
This feature is currently on hold in favor of research for a roslyn based code generator.
But the type-safe feature will definitely be a thing in future versions of Entitas!

Closed by #266


[TF-Lite]Is there a way to profile a model's inference process when using tflite in python

Is there a way to profile a model's inference process when using tflite in python？

@Disliketalking For using model inference using tf-lite, you need to follow the instructions present here in this document.
Could you please have a look at this and let us know if it helps?
Thank you!

@Disliketalking For using model inference using tf-lite, you need to follow the instructions present here in this document. Could you please have a look at this and let us know if it helps? Thank you!

Thanks for your answer, I can already use tf-lite for inference, but I don't know how to profile the inference process.

@Disliketalking TensorFlow Lite interpreter runs in the recognizeImage/runInference section.  To run the tflite profile for interference process please refer to this doc and let us know if it helps?
Thank you!


Contract2

Merging at time of writing, we have to get a zip file uploaded to learning space by the end of the day.


SSMS 18  query window refresh issue

Hi,
I have installed SSMS version 18 in windows 10 OS.
Please see below screenshot for more details

My issue is whenever I modify / open store procedure in new query window old query window is not showing its data properly until I scroll.

Red color text is another query window text.
Very strange issue.
I have already installed SSMS 2 times
Regards,
jigar

@jigarce - Hello Jigar!
Thanks for contacting Microsoft!  From my understanding, the issue you're describing seems to be an issue with the product, is that correct? If so, unfortunately, this form of contact is intended explicitly for reporting issues with the documentation, and not for the product. To get further assistance with your issue, we'd recommend engaging the community, or opening a ticket with Microsoft Support. More information can be found here: https://docs.microsoft.com/en-us/sql/sql-server/sql-server-get-help?view=sql-server-2017.
If you're looking to provide suggestions or ideas for improvement for the product,  you can do so at https://aka.ms/sqlfeedback.
If I'm mistaken, and you're submitting feedback for the documentation, please reply to this comment to clarify further. Otherwise, we'll proceed with closing out this Git Issue within a few business days.
Our apologies that the SQL Docs team was unable to assist you further with your issue, but we appreciate you reaching out. Please let us know if there's anything more we can do for you.
Thanks again and hope you have a wonderful rest of your day!

I had the same problem. Found a temporary solution by using keyboard shortcut CTRL + TAB to switch between the tabs.

Thanks buddy!
Its working!

I had the same thing. Documentation says: Disable graphics hardware acceleration through Tools>Options.
[https://docs.microsoft.com/en-us/sql/ssms/release-notes-ssms?view=sql-server-2017]

Its working thanks @oppositive

Thanks @oppositive!

Thanks @oppositive!

Thank you guys so much!  I have tolerated this problem for years but now it is fixed!!


HBASE-22188 Make TestSplitMerge more stable

Add a UTIL.waitUntilNoRegionsInTransition();  before merging to make sure that the split regions are all online.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
270
Docker mode activated.

_ Prechecks _

+1
hbaseanti
0
Patch does not have any anti-patterns.

+1
@author
0
The patch does not contain any @author tags.

+1
test4tests
0
The patch appears to include 1 new or modified test files.

_ master Compile Tests _

+1
mvninstall
315
master passed

+1
compile
69
master passed

+1
checkstyle
84
master passed

+1
shadedjars
323
branch has no errors when building our shaded downstream artifacts.

+1
findbugs
190
master passed

+1
javadoc
42
master passed

_ Patch Compile Tests _

+1
mvninstall
305
the patch passed

+1
compile
67
the patch passed

+1
javac
67
the patch passed

+1
checkstyle
82
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
shadedjars
327
patch has no errors when building our shaded downstream artifacts.

+1
hadoopcheck
639
Patch does not cause any errors with Hadoop 2.7.4 or 3.0.0.

+1
findbugs
203
the patch passed

+1
javadoc
41
the patch passed

_ Other Tests _

-1
unit
18044
hbase-server in the patch failed.

+1
asflicense
29
The patch does not generate ASF License warnings.

21114

Reason
Tests

Failed junit tests
hadoop.hbase.client.TestFromClientSide3

hadoop.hbase.client.TestAsyncTableAdminApi

hadoop.hbase.master.TestAssignmentManagerMetrics

hadoop.hbase.client.TestSnapshotTemporaryDirectoryWithRegionReplicas

hadoop.hbase.master.procedure.TestSCPWithReplicas

hadoop.hbase.client.TestAdmin1

hadoop.hbase.replication.TestReplicationDisableInactivePeer

hadoop.hbase.quotas.TestSpaceQuotas

hadoop.hbase.client.TestFromClientSide

hadoop.hbase.master.procedure.TestSCPWithReplicasWithoutZKCoordinated

hadoop.hbase.replication.TestReplicationSmallTestsSync

Subsystem
Report/Notes

Docker
Client=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-128/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/128

Optional Tests
dupname  asflicense  javac  javadoc  unit  findbugs  shadedjars  hadoopcheck  hbaseanti  checkstyle  compile

uname
Linux 549ca0221bd3 4.4.0-143-generic #169-Ubuntu SMP Thu Feb 7 07:56:38 UTC 2019 x86_64 GNU/Linux

Build tool
maven

Personality
/testptch/patchprocess/precommit/personality/provided.sh

git revision
master / a871d3139a

maven
version: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)

Default Java
1.8.0_181

findbugs
v3.1.11

unit
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-128/1/artifact/out/patch-unit-hbase-server.txt

Test Results
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-128/1/testReport/

Max. process+thread count
5262 (vs. ulimit of 10000)

modules
C: hbase-server U: hbase-server

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-128/1/console

Powered by
Apache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.


survey application - status

Subject of the issue
Which is the current survey application ?
Ionic based custom application.
Applications tested

Ushahdi
KoboToolbox (LICENSE: FOSS)
Ionic based custom application (LICENSE: Unknown, not tested)

Evaluation results of each survey application
1. Ushahidi ( http://help.keralarescue.in/)
FOSS: Yes
(LICENSE: FOSS)
Offline Capacity : Tested and verified by volunteers across Kerala
Networks types tested :  GSM, 3G, 4G, LTE + few networks in USA
Operators tested: Vodafone (2G,3G,4G),  Jio (LTE), BSNL & Idea
Indoor vs Outdoor : Tested
OS support : Android 4.4+ and iOS
Phones Tested: Moto C plus, Lenovo K8+, iPhone 6S, iPhone 7, Micromax canvas, Nokia3
Web browsers tested : Google Chrome, Chromium, Firefox (Linux, macOS and Windows), Safari (macOS)
Number of people tested : ~ 24 under co-ordinated fashion
Deployment types: Self Hosted in AWS India with Scalable infrastructure, Hosted donated by Ushahidi Non-Profit
Security Audits: OWZAP ZAP is used for through audit & code has 3rd party audits
User creation : Possible via secure API, Mode of Difficulty: HIGH
Permissions: Form based permissions are  possible
Ready for Rollout:  yes, (Completed on August 18th without field testing, Full and complete field testing completed on 23rd August 4:00 AM IST)
Cost involved : Ushahidi  Inc asked for agreements and charges for migration. Which they later agreed to waive off subject to approval of funding from Gates Foundation via UNICEF
2. KoboTool box ( http://kobo.keralarescue.in/ )
FOSS: Yes
(LICENSE: FOSS)
Offline Capacity : Tested and verified by ICFOSS
Networks types tested : unknown
Operators tested: unknown
Indoor vs Outdoor : Tested
OS support : unknown
Phones Tested: Moto C-plus
Number of people tested : unknown
Deployment types: Self Hosted in state data center with SPOF
Security Audits: Unknwon
Cost involved : scalable infrastructure will cost
Ready for Rollout:  unknown
User creation : Possible via secure API, Mode of Difficulty: LOW
Permissions: Form based permissions are NOT possible
3. Custom Application  ( https://play.google.com/store/apps/details?id=in.gov.ikm.disasterreliefsupport )
FOSS: unknown
LICENSE: unknown
Source code : not available
Offline Capacity : unknown
Networks types tested :  unknown
Operators tested: Unknown
Indoor vs Outdoor : Unknown
OS support : Unknown
Phones Tested: Unknown
Number of people tested :Unknown
Deployment types: Unknown
Security Audits: Unknown
User creation : Possible via unsafe API
Permissions: unknown
Ready for Rollout:  May be/Yes
Cost involved :Unknown
Selection criteria
Define the parameters based on which each solution is assessed and finally a solution is selected.
TBD

cc: @akshaim

Do we need the hosted ushahidi since they are asking for way too much money. When we can self host it

We can self host it In India & thus the issue data migration is not there.

1.3  Offline Capacity : Tested and verified by volunteers across Kerala


[ALLUXIO-2453] Follow up to concurrent rename changes.

https://alluxio.atlassian.net/browse/ALLUXIO-2453

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/12716/
Test PASSed.

Merged build finished. Test PASSed.


Hi,I have a question ?

In the utils.py ,what is mean in this line code?
'self.data = self.data[self.data.fold.isin(folds)].reset_index(drop=True)'
what is mean about 'self.data.fold'?the attribute '.fold' is where?Thanks!

i modified the train.csv file and added a new column "fold". you can create this column and make folds 0,1,2,3,4 or you can just modify the code a bit and allow support for file without this column. :)

i modified the train.csv file and added a new column "fold". you can create this column and make folds 0,1,2,3,4 or you can just modify the code a bit and allow support for file without this column. :)

Thanks for your reply!I have another question.why this line use '[-5:]'.Thanks!
' if len(all_scores[-5:]) == 5:',the lens of all_scores is equal num_epochs?So I can't understand how do you use the last five score?Thanks!Thank you very much!

that is my version of early stopping :)


Created a service, but tests weren't generated

I selected "service" from the options and it didn't generate the tests.
Output:
$ yo eha:component
? Namespace: eha.login
? Component / Module name (e.g. component-name) loginService
? Description: Login service to handle auth and auth renewal
? Keywords (comma-separated) eha
? Author's name: Remy Sharp
? Author's email<EMAIL_ADDRESS>? Homepage: https://github.com/eHealthAfrica
? GIT Repo. URL:
? Please choose what which items you'd like scaffold for:
   create bower.json
   create package.json
   create .travis.yml
   create README.md
   create CONTRIBUTING.md
   create LICENSE
   create Gruntfile.js
   create karma.conf.js
   create src/index.js
   create .jscsrc
   create .jshintrc
   create .gitignore
   create CHANGELOG.md

Hmm I don't see the service being created, let alone the tests. So something is definitely not right (i.e I think this is a bug, rather than an oversight).
One thing that I notice (and is down to poor documentation); the namespace is meant as the 'library' namespace, so e.g. eha (for ehealthafrica) and  component / module name should be just that, i.e. the name of the module / component (e.g login) rather than the actual service, directive etc, and if it's more than one word should be dash separated.  The generator is expecting dash separated values and does some processing to produce the correct service / directive whatever names (camelcaseized).
If you use the following values you should get the expected behaviour (unless there's something else going on here we still haven't caught):
namespace: eha
module: login
Item: service (or factory)

Yeah, re: namespace, I think I finally figured that out around 10pm last night...!
I wonder, if this is an eha specific generator, maybe the namespace should offer the default of eha, so the user can just hit enter to continue? Then read the directory name for the module? Although, I had expected on the first run that it would create the directory for me, and not dump into the cwd.

So actually, the original implementation defaulted to eha for the namespace, but based on feedback from the team (feelings were that it was too specific) I changed it to ng, people then complained that we shouldn't use that namespace so in the end I just removed it altogether.


Unable to Build due to compatibility relating to Firebase Auth

I'm using flutter to create an application.
I'm unable to build or perform a pod install whenever I try to use the Google Ml Kit dependencies.
Dependency : google_mlkit_barcode_scanning: ^0.5.0
Notes: This error only appears when using the Firebase Auth dependency. I want to utilize the Qr code scanning feature!
Error:    firebase_auth (from .symlinks/plugins/firebase_auth/ios) was resolved to 4.1.3, which depends on
Firebase/Auth (= 10.2.0) was resolved to 10.2.0, which depends on
FirebaseAuth (~> 10.2.0) was resolved to 10.2.0, which depends on
GTMSessionFetcher/Core (< 4.0, >= 2.1)
google_mlkit_barcode_scanning (from `.symlinks/plugins/google_mlkit_barcode_scanning/ios`) was resolved to 0.5.0, which depends on
  GoogleMLKit/BarcodeScanning (~> 3.2.0) was resolved to 3.2.0, which depends on
    GoogleMLKit/MLKitCore (= 3.2.0) was resolved to 3.2.0, which depends on
      MLKitCommon (~> 8.0.0) was resolved to 8.0.0, which depends on
        GTMSessionFetcher/Core (~> 1.1)

looks like its mentioned here too https://github.com/bharat-biradar/Google-Ml-Kit-plugin/issues/357


Update error..

VSCode Version:
OS Version: Windows 10 Creators Update

Steps to Reproduce:

Updated Visual Studio Code.
Updater crashed telling me to paste this here...

Apr 15 23:49:42.102 INFO Starting: C:\Program Files\Microsoft VS Code\Code.exe, false
Apr 15 23:49:42.105 INFO Checking for running Code.exe processes... (attempt 1)
Apr 15 23:49:42.108 INFO Code.exe is running, wait a bit
Apr 15 23:49:42.609 INFO Checking for running Code.exe processes... (attempt 2)
Apr 15 23:49:42.615 INFO Code.exe is running, wait a bit
Apr 15 23:49:43.115 INFO Checking for running Code.exe processes... (attempt 3)
Apr 15 23:49:43.130 INFO Code.exe is not running
Apr 15 23:49:43.140 INFO Starting update, silent = false
Apr 15 23:49:43.955 INFO do_update: "C:\Program Files\Microsoft VS Code\Code.exe", _
Apr 15 23:49:43.956 INFO move_update: "C:\Program Files\Microsoft VS Code\unins000.dat", _
Apr 15 23:49:43.956 INFO Delete: "api-ms-win-core-console-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.011 INFO Delete: "api-ms-win-core-datetime-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.011 INFO Delete: "api-ms-win-core-debug-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.038 INFO Delete: "api-ms-win-core-errorhandling-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.054 INFO Delete: "api-ms-win-core-file-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.096 INFO Delete: "api-ms-win-core-file-l1-2-0.dll" (attempt 1)
Apr 15 23:49:44.131 INFO Delete: "api-ms-win-core-file-l2-1-0.dll" (attempt 1)
Apr 15 23:49:44.131 INFO Delete: "api-ms-win-core-handle-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.173 INFO Delete: "api-ms-win-core-heap-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.208 INFO Delete: "api-ms-win-core-interlocked-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.249 INFO Delete: "api-ms-win-core-libraryloader-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.299 INFO Delete: "api-ms-win-core-localization-l1-2-0.dll" (attempt 1)
Apr 15 23:49:44.331 INFO Delete: "api-ms-win-core-memory-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.359 INFO Delete: "api-ms-win-core-namedpipe-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.360 INFO Delete: "api-ms-win-core-processenvironment-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.393 INFO Delete: "api-ms-win-core-processthreads-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.426 INFO Delete: "api-ms-win-core-processthreads-l1-1-1.dll" (attempt 1)
Apr 15 23:49:44.460 INFO Delete: "api-ms-win-core-profile-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.494 INFO Delete: "api-ms-win-core-rtlsupport-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.536 INFO Delete: "api-ms-win-core-string-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.569 INFO Delete: "api-ms-win-core-synch-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.595 INFO Delete: "api-ms-win-core-synch-l1-2-0.dll" (attempt 1)
Apr 15 23:49:44.595 INFO Delete: "api-ms-win-core-sysinfo-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.629 INFO Delete: "api-ms-win-core-timezone-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.629 INFO Delete: "api-ms-win-core-util-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.662 INFO Delete: "api-ms-win-crt-conio-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.696 INFO Delete: "api-ms-win-crt-convert-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.763 INFO Delete: "api-ms-win-crt-environment-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.763 INFO Delete: "api-ms-win-crt-filesystem-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.813 INFO Delete: "api-ms-win-crt-heap-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.813 INFO Delete: "api-ms-win-crt-locale-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.847 INFO Delete: "api-ms-win-crt-math-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.881 INFO Delete: "api-ms-win-crt-multibyte-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.915 INFO Delete: "api-ms-win-crt-private-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.915 INFO Delete: "api-ms-win-crt-process-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.941 INFO Delete: "api-ms-win-crt-runtime-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.966 INFO Delete: "api-ms-win-crt-stdio-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.992 INFO Delete: "api-ms-win-crt-string-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.992 INFO Delete: "api-ms-win-crt-time-l1-1-0.dll" (attempt 1)
Apr 15 23:49:44.993 INFO Delete: "api-ms-win-crt-utility-l1-1-0.dll" (attempt 1)
Apr 15 23:49:45.019 INFO Delete: "bin" (attempt 1)
Apr 15 23:49:45.050 INFO Delete: "blink_image_resources_200_percent.pak" (attempt 1)
Apr 15 23:49:45.050 INFO Delete: "Code.exe" (attempt 1)
Apr 15 23:49:45.055 INFO Delete: "Code.VisualElementsManifest.xml" (attempt 1)
Apr 15 23:49:45.055 INFO Delete: "CodeSignSummary.md" (attempt 1)
Apr 15 23:49:45.056 INFO Delete: "content_resources_200_percent.pak" (attempt 1)
Apr 15 23:49:45.056 INFO Delete: "content_shell.pak" (attempt 1)
Apr 15 23:49:45.057 INFO Delete: "d3dcompiler_47.dll" (attempt 1)
Apr 15 23:49:45.057 INFO Delete: "ffmpeg.dll" (attempt 1)
Apr 15 23:49:45.057 INFO Delete: "icudtl.dat" (attempt 1)
Apr 15 23:49:45.075 INFO Delete: "inno_updater.exe" (attempt 1)
Apr 15 23:49:45.075 INFO Delete: "is-6LO5F.tmp" (attempt 1)
Apr 15 23:49:45.104 INFO Delete: "libEGL.dll" (attempt 1)
Apr 15 23:49:45.104 INFO Delete: "libGLESv2.dll" (attempt 1)
Apr 15 23:49:45.105 INFO Delete: "locales" (attempt 1)
Apr 15 23:49:46.078 INFO Delete: "msvcp140.dll" (attempt 1)
Apr 15 23:49:46.079 INFO Delete: "natives_blob.bin" (attempt 1)
Apr 15 23:49:46.079 INFO Delete: "node.dll" (attempt 1)
Apr 15 23:49:46.080 INFO Delete: "pdf_viewer_resources.pak" (attempt 1)
Apr 15 23:49:46.081 INFO Delete: "resources" (attempt 1)
Apr 15 23:49:47.127 INFO Delete: "resources" (attempt 2)
Apr 15 23:49:48.353 INFO Delete: "resources" (attempt 3)
Apr 15 23:49:48.828 INFO Delete: "resources" (attempt 4)
Apr 15 23:49:50.111 INFO Delete: "resources" (attempt 5)
Apr 15 23:49:52.120 INFO Delete: "resources" (attempt 6)
Apr 15 23:49:57.336 INFO Delete: "resources" (attempt 7)
Apr 15 23:50:01.379 INFO Delete: "resources" (attempt 8)
Apr 15 23:50:04.785 INFO Delete: "resources" (attempt 9)
Apr 15 23:50:08.858 INFO Delete: "resources" (attempt 10)
Apr 15 23:50:14.787 INFO Delete: "resources" (attempt 11)
Apr 15 23:50:15.345 ERRO The directory is not empty. (os error 145)

/duplicate #47804


bot cannot ignore message from other bots in one channel

I invite two bots into one channel in same team, the bot cannot ignore messages from other bots
Steps to reproduce:

invite two bots (bot1, bot2) into one channel.
@bot1 {message}
bot1 reply message
bot2 will receive message which reply from bot1

Expected result:
bot2 ignore messages from other bot1

hi @shipengqi , this is not something we can address at the adapter layer. Since your bots are separate processes there is no way they can know about each other except if you somehow encode this in e.g. q plugin that you install in both bots and cross configure them.


Weekly test failing repeatedly

See https://github.com/NLnetLabs/ploutos-testing/actions/runs/8863488169

The issue appears to affect testing on Rocky Linux 8:
Error: Failed instance creation: Failed getting remote image info: Failed getting image: The requested image couldn't be found for fingerprint "rockylinux/8/cloud"


Move Courtesy Push pipeline from PipelineTools to ADO

Fixed dependency on some tasks
Task name: Move courtesy-push pipeline into ADO
Description:  Courtesy push is run on PipelineTools project, we need to move it to ADO project and rid of PATs
Documentation changes required: (Y/N) N
Added unit tests: (Y/N) N
Attached related issue: (Y/N) N
Checklist:

[ ] Task version was bumped - please check instruction how to do it
[x] Checked that applied changes work as expected

AB#2174750

To whom who received review request for tasks: there are differences between normal and node20 (buildgen) packake.json files on dependencies. That's why I synched them to avoid fails


Division operation used.

Hi Tushar
Firstly, thank you for the repository and solutions for all the questions. It's really helpful to have all great questions at one place.
I had a question in this solution.
Line number 43 and 44 are using division operation. I was under the assumption that we can't use it for this question. Please clarify the approach/question.

Sorry about that. I ll fix that

https://github.com/mission-peace/interview/commit/168b29412a3f0a8ccc0328987c1c339aab91a702


feat: add a reflection cache helper and move the DonorModel to a separate directory

@ApocDev rather than caching, I'd say let's remove the reflection. 😄

Well, how many more DTOs do we plan on using throughout? Having "hard-coded" Clone methods usually tends to missing property copies, etc. (Especially when stepping away from the codebase for a while)

I don't think we'll have another one. The only other object is schools and we'll just use the entity class for that.


Feature request: Add a LMDBDataset class, that inherits from tf.data.Dataset.

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
N/A
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
N/A
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
N/A
TensorFlow installed from (source or binary):
N/A
TensorFlow version (use command below):
1.9
Python version:
3.6
Bazel version (if compiling from source):
N/A
GCC/Compiler version (if compiling from source):
N/A
CUDA/cuDNN version:
N/A
GPU model and memory:
N/A
Exact command to reproduce:
N/A

Describe the problem
Feature request: Add a LMDBDataset class, that inherits from tf.data.Dataset.
Currently TF only supports LMDB datasets with the method LMDBReader. Implementing a LMDBDataset class that inherits from tf.data.Dataset will allow users to load LMDB data with the friendly tf.data API, and also use tf.contrib.data.make_batched_features_dataset, which applies the most up-to-data performance optimization for loading data.
Source code / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem.

Thank you for your post. We noticed you have not filled out the following field in the issue template. Could you update them if they are relevant in your case, or leave them as N/A? Thanks.
OS Platform and Distribution
TensorFlow installed from
Bazel version
CUDA/cuDNN version
GPU model and memory
Exact command to reproduce
Mobile device

I updated the post, making them N/A

Added a PR #21148 for LMDBDataset support.

Thanks @yongtang!

Nagging Assignee @yongtang: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.