Migration spike: Indicators with disaggregation types selected from the "wrong" country

As described in #1849, it is currently possible to select country-level disaggregations for an indicator, from countries other than the one/s in which the program is based. After Goat Tree, this will no longer be possible.
We need to figure out what, if anything, to do about existing programs that already have assigned disaggs from other countries.
First, it would be helpful to know how many programs and indicators are affected. Let's run a query to find them. Columns in the query output could include:

Country
Program
Quantity of indicators that have disagg types selected that are from a country other than the one to which the program is linked.
ID numbers for those indicators.

This is an easy query.

Query results:  (what do we do with these ones?)
wrong-country-disaggregations.xlsx

Of the programs listed, only four are active. None of the four are multi-country programs and there's no discernible pattern to why a disaggregation might have been pulled from a particular country.

Nigeria pulling a disaggregation from Uganda: ALMRI - Agricultural Livelihoods and Market Recovery Intervention
Kenya pulling disaggregations from Jordan, Ethiopia, and Liberia:  Collaboration in Cross-Border Areas - Cluster 1 S. Omo/Turkana (Omo Delta Project)
Nepal pulling a disaggregation from Lebanon: Promoting Agriculture, Health and Alternative Livelihoods (PAHAL)
DRC pulling disaggregations from Somalia and the USA: [DRC_91229] FARM - Food Security and Inclusive Access to Resources for Conflict Sensitive Market Development

@camgnostic What would be helpful to know next would be ... For these four active programs:

Quantity of indicators that have disaggregation types selected that are from a country other than the one to which the program is linked.
1.1. ID numbers for those indicators.
How many of these indicators have results reported against them that include disaggregated values.
2.1. ID numbers for that subset of results.

@jennyhavah
25 indicators total, IDs: 4816, 1237, 1253, 1254, 1953, 6469, 1184, 1311, 1312, 1955, 1956, 2001, 2002, 2003, 2004, 5989, 6088, 6094, 6102, 6273, 6326, 6470, 6471, 6472, 1990
with results, 7 indicators with IDs: 4816, 1953, 1312, 1955, 6088, 6094, 6102
these results have IDs: 5095, 5096, 2739, 2331, 2814, 7885, 7927, 7886
So not a huge number of indicators or results being handled here - if there's a by-hand solution (changing them to match country or duplicating the disaggregationtype it's not hard to write in the bespoke fix to the migration)

@camgnostic Would you be able to run a query that shows me, for the 25 indicators:
Country | Program | Indicator name?
(I thought I could derive this info from poking around, opening forms in separate tabs, etc... But couldn't quite figure out how to do it.)

ID
Country
Program ID
Program Name
Program Status
Indicator Name

4816
United States
442
TolaData TEST Program
Funded
Midline-endline firebreak check

1237
Syrian Arab Republic
340
NE - Emergency Humanitarian Assistance to Conflict Affected Population in NE Syria
Funded
New arrival kits distributed

1253
Syrian Arab Republic
340
NE - Emergency Humanitarian Assistance to Conflict Affected Population in NE Syria
Funded
9

1254
Syrian Arab Republic
340
NE - Emergency Humanitarian Assistance to Conflict Affected Population in NE Syria
Funded
Number of consumeable NFI kits (150 kits in five round) distributed

1953
Syrian Arab Republic
443
SC - OB Capacity Building
Funded
Indicator 2: Percentage of individuals demonstrating increased technical skills and knowledge

6469
Kenya
586
Collaboration in Cross-Border Areas - Cluster 1 S. Omo/Turkana (Omo Delta Project)
Funded
Increased wealth locally for youth & women in particular.

1184
Nepal
375
Promoting Agriculture
Health and Alternative Livelihoods (PAHAL)
Funded

1311
Syrian Arab Republic
340
NE - Emergency Humanitarian Assistance to Conflict Affected Population in NE Syria
Funded
Total X number of amount (USD) paid to all people employed through CfW activities

1312
Syrian Arab Republic
414
SC - OFDA - Emergency Humanitarian Assistance to Conflict Affected Population in South and Central Syria
Funded
Total number and per item USD cost of NFIs distributed

1955
Syrian Arab Republic
443
SC - OB Capacity Building
Funded
Indicator 1.2: # of people attending the training

1956
Syrian Arab Republic
443
SC - OB Capacity Building
Funded
Indicator 2.1: # of trainings done

2001
Syrian Arab Republic
444
SC - DFID - IHR 91061S021
Funded
Indicator 1.1.a.: # of beneficiaries who are being visited by a veterinarian at least once a week

2002
Syrian Arab Republic
444
SC - DFID - IHR 91061S021
Funded
Indicator 1.1.b.: # of beneficiaries who visit the Vet Centre each month

2003
Syrian Arab Republic
444
SC - DFID - IHR 91061S021
Funded
Indicator 1.2: % of beneficiaries who have increased awareness and knowledge about sheep farming

2004
Syrian Arab Republic
444
SC - DFID - IHR 91061S021
Funded
Indicator 2.1:  # of beneficiaries who benefit from quality milk production on a monthly basis

5989
United States
442
TolaData TEST Program
Funded
Number of liters of water provided

6088
Nigeria
560
ALMRI - Agricultural Livelihoods and Market Recovery Intervention
Funded
Number of group-members receiving training on VSLA methodology and business skills

6094
Nigeria
560
ALMRI - Agricultural Livelihoods and Market Recovery Intervention
Funded
Number of input supply networks mapped

6102
Nigeria
560
ALMRI - Agricultural Livelihoods and Market Recovery Intervention
Funded
Number of direct beneficiaries

6273
Kenya
586
Collaboration in Cross-Border Areas - Cluster 1 S. Omo/Turkana (Omo Delta Project)
Funded
Number of youth who accessed business incubatory services as a result of the project

6326
United States
442
TolaData TEST Program
Funded
Christie test: # of times I go to the kichen for coffee and the pot is empty

6470
Kenya
586
Collaboration in Cross-Border Areas - Cluster 1 S. Omo/Turkana (Omo Delta Project)
Funded
ODP Output 1.1: Number of youth employed or self-employed based on their skills as a result of the project.

6471
Kenya
586
Collaboration in Cross-Border Areas - Cluster 1 S. Omo/Turkana (Omo Delta Project)
Funded
Output 1.2: Access to business incubatory services (finance

6472
Kenya
586
Collaboration in Cross-Border Areas - Cluster 1 S. Omo/Turkana (Omo Delta Project)
Funded
ODP Output 1.2: Number of youth who accessed business incubator services as a result of the project

1990
United States
442
TolaData TEST Program
Funded
TD 1

Updated with fresh data from production:

Program ID
Program Name
Program Country(s)
Program Status
Indicator ID
Indicator Name

560
ALMRI - Agricultural Livelihoods and Market Recovery Intervention
Nigeria
Funded
6088
Number of group-members receiving training on VSLA methodology and   business skills

560
ALMRI - Agricultural Livelihoods and Market Recovery Intervention
Nigeria
Funded
6094
Number of input supply networks mapped

560
ALMRI - Agricultural Livelihoods and Market Recovery Intervention
Nigeria
Funded
6102
Number of direct beneficiaries

618
Resilient Market Systems Development: ReHope BRIDGE
Uganda
Funded
7379
Net attributable income change (NAIC)

623
NU-TEC Development and Provision of Financial Products for Agribusiness   in Uganda
Uganda
Funded
7456
Number of households in northern Uganda with real increase in income

623
NU-TEC Development and Provision of Financial Products for Agribusiness   in Uganda
Uganda
Funded
7462
Total number of people employed by supported businesses (a) with regular   full-time/part-time employment

623
NU-TEC Development and Provision of Financial Products for Agribusiness   in Uganda
Uganda
Funded
7475
Number of Equity Bank staff (or partners) who have received capacity   building or training on agriculture lending

623
NU-TEC Development and Provision of Financial Products for Agribusiness   in Uganda
Uganda
Funded
7476
Percentage of Equity Bank staff (or partners) with proven increased   understanding of agriculture lending

623
NU-TEC Development and Provision of Financial Products for Agribusiness   in Uganda
Uganda
Funded
7477
Number of new staff hired or reallocated to deliver financial services to   businesses operating in the agricultural sector in Northern Uganda

671
Projet d'appui √† la s√©curit√© alimentaire  la r√©conciliation et la r√©silience   (PASERREL)
Mali
Funded
7844
Number of hectares under improved agricultural methods

See the Notes column I just added. There are only two indicators where (a) a disaggregation from another country was selected AND (b) there are results entered for that indicator. In both cases, they borrowed the "Sex" disaggregation from Uganda -- just two categories, Male and Female. Both results are from spring of 2018, some time ago and they actually entered disaggregated data into the borrowed categories. In all other cases, disaggs from other countries are selected but there are no results submitted for the indicator yet.
I'll check in with Marie about how to handle this. My instinct is to duplicate the Sex disaggregation for Nigeria and reassign the indicators to the duplicate, preserving all data already entered.
For the others, it's a little less straightforward. Do they really want to "borrow" those disaggregation categories from another country, without any modification? If yes, we can duplicate. If no, then we should deselect them, and the country team can create new disaggregations from scratch.

(per Slack): @jennyhavah all the indicators above are now fixed with the exception of the two from TolaData TEST program.  Disposition on those would be helpful as they may become difficult to edit once the country rule for disaggregations is better enforced in the UI.  Other than those two, this migration is complete (thanks to Marie!)

@camgnostic Do you mean TolaData Demo?
TolaData TEST is just for QA on Prod -- you can do whatever you like with those indicators, up to and including deleting them. In fact, I'm almost positive I fixed those indicators on Prod.
If there are also issues with indicators from TolaData Demo, that's another story, and we'll need to reach out to Marie for clarification.

I think that checking a couple of indicators from the list (removed from GH tix because of PII, can resend if you need) to make sure that they have the disaggregations they should would cover this ticket, @jennyhavah.

I checked indicators from two programs in the spreadsheet with active status, looking at the country disaggregation options provided in the indicator setup form. I did not see any options from the "wrong" country displayed, which means they couldn't be selected.


Improve error handling, replace rustc_serialize, add minor test-case fixes

The bulk of this PR is a re-write of our error system, as described in #15, and originally attempted on this branch. Since that branch has since gotten very stale, this PR does not build upon it but was instead written from scratch. Note that this PR does not close #15, as many unwrap()s still exist in the code. Some errors have been improved to use proper error variants instead of strings attached to a generic error, but this can be taken further in future PRs.
This PR also replaces all usages of rustc_serialize with serde_json, closing #19.
Additionally this PR fixes some minor issues related to test cases and the unstable feature.

This change is

Reviewed 14 of 14 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


This page is out of date

If we use the same approach it will give us following errors:
init() got an unexpected keyword argument 'options'
even if in the source code this doesnot exists.
[Enter feedback here]

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

ID: e37d6441-bb7b-8842-314d-1fe929bd9aa3
Version Independent ID: b3833510-5a57-cb23-51d0-f8df10ca9e71
Content: Use WebDriver to automate Microsoft Edge - Microsoft Edge Development
Content Source: microsoft-edge/webdriver-chromium/index.md
Product: microsoft-edge
Technology: devtools
GitHub Login: @MSEdgeTeam
Microsoft Alias: msedgedevrel

Thanks for the report! In order to make the right fix here, would you mind telling me more about:

Which programming language did you use?
Which exact code snippet in this page created the error?

Thanks!

I am using python
Code:
Choose specific browser binaries.
from selenium import webdriver from selenium.webdriver.edge.options import
Options options = Options() options.binary_location = r"C:\Program Files
(x86)\Microsoft\Edge Beta\Application\msedge.exe" driver =
webdriver.Edge(options = options)
On Fri, Jun 24, 2022 at 6:58 PM Patrick Brosset @.***>
wrote:

Thanks for the report! In order to make the right fix here, would you mind
telling me more about:

Which programming language did you use?
Which exact code snippet in this page created the error?

Thanks!
—
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/edge-developer/issues/2024#issuecomment-1165576408,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD4CURWACZVIOI3RH7VW6LLVQWZZDANCNFSM5ZPZJO4A
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Regards,
Vikalp Ravi Jain
+91884 919 4728
+9195924 33 054

I am using python"
Title: Configure Microsoft Edge Options
Choose Specific Browser Binaries
code:
from selenium import webdriver
from selenium.webdriver.edge.options import Options
options = Options()
options.binary_location = r"C:\Program Files (x86)\Microsoft\Edge Beta\Application\msedge.exe"
driver = webdriver.Edge(options = options)

Thank you. I'll make sure this gets tracked on our backlog and prioritized.

Yeah I just need to know how can we use binaries when we use edge for driver! Please let me know! I need to use latest beta edge but always it is pointing to default edge!

What version of python you are using and selenium webdriver?

python 2.7

I believe this can now be closed as PR #2218 was merged.


Fix Python build in CI

Looks like #650 didn't work.
The problem with the Linux build and Windows build are the breaking changes in #575. From action/upload-artifact's README:

Due to how Artifacts are created in this new version, it is no longer possible to upload to the same named Artifact multiple times. You must either split the uploads into multiple Artifacts with different names, or only upload once. Otherwise you will encounter an error.

This PR attempts to fix the problem by uploading multiple artifacts and then downloading them all.
The macOS build has two problems:

https://github.com/actions/setup-python/issues/906#issuecomment-2210869905: Python <3.11 is not supported on the arm64 macOS runners. It seems to work on the older x64 macos-13 runner?
https://github.com/PyO3/maturin/issues/2154

Test run here: https://github.com/miikka/trustfall/actions/runs/10270391220 (the final step obviously fails due to lack of permissions)

Thanks for digging into the issues and making the PR, I appreciate it! 🙏
Out of curiosity, what versions of Python are you using this with? Can I just drop support for <3.11 to simplify the macOS publish flow in the future, or is it still too early for that?

Hey, it worked this time! https://pypi.org/project/trustfall/0.1.7/#files
I'm on Python 3.11/3.12 myself. I don't have strong opinions on this, but it does not seem worth it to spend much effort on building wheels for the older versions.


SplitButton contents disappearing on subsequent clicks

Using an enumerable in an ItemsSource results in the contents of the button disappearing on each subsequent click.
Reproduce-able Code:
<mah:SplitButton x:Name="SplitButtonUpDown" Grid.Column="2" Margin="0,3,0,0" SelectedIndex="0" Background="{DynamicResource AccentColorBrush4}">
    <mah:SplitButton.ItemsSource>
        <x:Array Type="Grid">
            <Grid ToolTip="Downloads configuration from the server. Will overwrite all changes, except for private entries.">
                <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
                    <Grid Margin="0,5,0,0">
                        <iconPacks:Modern Kind="CloudDownload" Width="20" />
                    </Grid>
                    <Label Content="Download"/>
                </StackPanel>
            </Grid>
            <Grid ToolTip="Sends your configuration (without private entries) to the server for re-distribution.">
                <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
                    <Grid Margin="0,5,0,0">
                        <iconPacks:Modern Kind="CloudUpload" Width="20"/>
                    </Grid>
                    <Label Content="Upload"/>
                </StackPanel>
            </Grid>
        </x:Array>
    </mah:SplitButton.ItemsSource>
</mah:SplitButton>

I believe the items should not disappear upon subsequent clicks.
Screenshots:
First click--

Second click--

Third click--

Environment:

MahApps.Metro version [2.0.0-alpha0316]
OS: [Win 10 1809]
Visual Studio [2019 16.1.0 P2]
.NET Framework [4.5.2]

Repo example at: https://github.com/xagon0/316b4bf3-33e0-4746-80cc-3652d19dd241

@xagon0 this has now been fixed, and it will be released in the next version of MahApps.Metro v2.0

@punker76 Fantastic! Thanks so much!


Add support for .webp images.

WebP images are getting increasingly more common, and Pillow supports this format. Adding it to the list of valid formats is the only change required to make this work.

Could you please update the test cases?

Excuses for the spam but this should be correct. I also tried adding an image file in a format not mentioned to be supported but it got recognized anyway, so either these tests are not correct or the list of recognized formats is not complete.

@Wicloz Thanks for the changes. The formats included in the package are the ones where we explicitly tested that duplicates could be found reliably. In fact, before merging this PR, I'll create an artificial dataset comprising of near duplicates with webp format to check that duplicates can be found reliably. So, didn't include every format PIL supports. Instead, going with the community requests for the format support here.
Also, changing the base branch for merge to be dev as per contribution guidelines


Hi

Hi 👋👋
You By YouTube
sentry456123.github.io

Hi 👋👋
You By YouTube
sentry456123.github.io

HI!

Hi 👋👋
You By YouTube
sentry456123.github.io

HI!

You Me
- Sus
-Sus Boom

STOP POSTING ABOUT AMONG US! I'M TIRED OF SEEING IT!  I was in a server, right, and ALL the channels are just Among Us stuff. I showed my Champion underwear to my girlfriend, and the logo I flipped it and I said "Hey babe, when the underwear sus! HAHA!   I looked at my penis, I thought of the astronauts helmet and I go "PENIS? MORE LIKE PEN-SUS!" AAAAAAAAAAAAAA

STOP POSTING ABOUT AMONG US! I'M TIRED OF SEEING IT!  I was in a server, right, and ALL the channels are just Among Us stuff. I showed my Champion underwear to my girlfriend, and the logo I flipped it and I said "Hey babe, when the underwear sus! HAHA!   I looked at my penis, I thought of the astronauts helmet and I go "PENIS? MORE LIKE PEN-SUS!" AAAAAAAAAAAAAA

STOP You
Ayam


List of needed terms for Biobanking use case

From Chris Stoeckert, @cstoeckert:
For the Ontology for Biobanking project (http://obofoundry.org/ontology/obib.html), I have a need to capture the following in some way (used on a Consent and Enrollment form by a contributor):
The Jewish heritage category for a donor/participant on a caHUB study.
Ashkenazi Jewish
Sephardic Jewish
Candidate Ethnic Background (geographic)
Africa
Central African
North African
South African
Americas
African American
North American
Latin American
Caribbean
South American
Asia
Southeast Asian
South Asian
Central Asian
Chinese
Japanese
Indian
Australia/New Zealand
Australian
New Zealander
Europe
Eastern
Icelandic
Mediterranean
Scandinavian
Western European
Intercontinental
Middle Eastern
Hispanic

Hi All,
I need to address this now for a contract I'm working on. By importing terms from EFO and ERO under 'ethnic group', I can address about half of the above (see hierarchy below). However, I still need to address the following:
Central African
North African
South African
Southeast Asian
South Asian
Central Asian
Australia/New Zealand
Australian
New Zealander
Europe
Eastern European
Mediterranean
Scandinavian
Western European
Middle Eastern
Shall these be submitted to EFO to fit in the same way? How does Ancestro want to approach this?
ethnic group
African
American
African-American
European-American
Latino
Latino, Carribean
Latino, South American
Ashkenazi Jew
Asian
Asian Indian
Chinese
Japanese
Hispanic
mixed ethnicity
Nordic, Icelandic
Sephardic Jew

Looks like the indents were lost. second try
ethnic group
-African
-American
--African-American
--European-American
--Latino
---Latino, Carribean
---Latino, South American
-Ashkenazi Jew
-Asian
--Asian Indian
--Chinese
--Japanese
-Hispanic
-mixed ethnicity
-Nordic, Icelandic
-Sephardic Jew

Hi Chris,
We have most of these ancestral groups in ANCESTRO already and we should be able to create most of the ones that are missing (esp if you could supply us with definitions). Mixed ancestry is an ancestry status rather than an ancestral group.
If adjustments to the hierarchy are required, I may have to negotiate this with our curators as ANCESTRO was designed specifically to meet the needs of GWAS ancestry recording. I'm sure we can figure something out though.
I'm just in the process of doing some refactoring of the ontology, including adding more definitions and migrating to a new URI schema so please be aware that the current URIs are not stable.
Thanks
Dani

Hi Dani,
Sounds good! Happy to work with you on this and come up with definitions. Is there a more recent version of ANCESTRO to look at than the one at Bioportal?  I did not see definitions there and got an error trying to load the owl files from https://github.com/EBISPOT/ancestro into Protege.
Also will you be reusing URIs from EFO or ERO for terms they have?
Thanks, Chris

You could also try the version from OLS, it seems to be more recent.
(Also I realised that bioportal links to dani's github as homepage (https://github.com/daniwelter/ancestro) rather than https://github.com/EBISPOT/ancestro)

The version on Github is the latest version and it's also in OLS. What error did you get when trying to load the OWL files? I haven't committed the definitions back to Git yet - will try to do this by the end of the week.
The plan is for EFO to import ANCESTRO once the URIs are stable so there is no sense in importing EFO URIS. As I mentioned before, ANCESTRO was developed primarily to meet the needs of the GWAS Catalog and our curators had very specific requirements about how ancestral groups should be structured, which didn't quite fit the way ERO have done things, so we're not reusing their URIs at the moment.

Hi Chris,
There's now a file on here called ancestro_refactored.owl. This will eventually replace ANCESTRO but I didn't want to overwrite the master with the new version until I'm happy with the edits. I wanted to get the changes out for users to see on here asap though, so feel free to have a look.
Thanks
Dani

Hi Dani,
Will do and give feedback with respect to this tracker request.
Thanks, Chris

Hi Dani,
Thank you for explaining the relationship with EFO. I’m uncertain as to whether the Ancestro terms will work for me.  A main question/ concern is understanding what is meant by ‘ancestral group’ as it is not defined (see also https://github.com/EBISPOT/ancestro/issues/3) and how it fits in the BFO/OBO hierarchy. Is it a ‘population’ http://purl.obolibrary.org/obo/OBI_0000181 ?. Or is it an ‘information content entity’ since mention of ‘not sufficient information’ is included in definitions of classes like Asian and African.
Thanks, Chris

Closing this issue as it has been dormant for over a year. Please note that ANCESTRO has  been deprecated in favour of HANCESTRO. The ontology is now at release 2.3, deployed in the OBO foundry and available via OLS. Additional documentation is available. Missing ancestry categories should be requested in separate tickets.


extract embedded images out of svgs in detail.js

Extracts embedded <image> URLs from loaded SVG images.
I don't know how to verify that this works for all examples in the respective case statement, but it worked from one example from Bob here: https://deploy-preview-75--friendly-raman-30db7b.netlify.app/marketplace/asset/l5zhy-pakor-uwiaa-aaaaa-b4awg-maqca-aaejl-q
Broken (from #75):

Fixed (from this PR):

I needed to rearrange and cleanup some things so I'm closing this one as I copy/pasted into my PR, pushed, and merged.


SVG Paths getting messed up

Take a look at this: https://jsfiddle.net/jm0tujnb/1/
As you can see if you open your DOM inspector SVG.js completely messes up the "d" attribute of the path.
It probably has to do with https://github.com/wout/svg.js/commit/cf783fca1213d26b50bc07af0ca7e2b0f6385401 I think.

The "parser" fails at the non-negative numbers starting with "." instead of "0."
This is fixed with the latest commit (a bit ugly but I saw no other possibilitiy).


We have #first: and #next:. but no #last:

This PR add #last: on the iterator and the indexed dictionary and adds tests

as I merged with main, github now shows all the changes already merged, too


Declarative UI

    var ue = UsmfEngine();
    ue("tpl1.html", data1, $("#tpl-test1"));
    ue("tpl2.html", data2, $("#tpl-test2"));
    ue("tpl1.html", data3, $("#tpl-test3"));

The code above is imperative and blended into the app logic, which should be declarative.

I think it is possible only when two way data binding is introduced or use ES6 object.observe. Any suggestions?


add git to wrapper dependencies

@Mic92 fixed and squashed.

Oh, maybe I'm not using enough quotes. Why do you use so many?

Oh, maybe I'm not using enough quotes. Why do you use so many?

I was not sure how it would be passed to make wrapper but apparently not quoted. Otherwise it would just receive one but argument.


Implement map* and filter for ArrayView

This PR is for discussion purposes.
It relates to #1013 and #1275.
I believe that it is MUCH more flexible for the map* functions to return an Array.
Then, and code that was performing a map on an entire array could easily insert a [1:] and now map all but the first entry without modifying any other code.
Additionally, it is much easier to turn an Array into an ArrayView than to go the other direction.

Pull Request Test Coverage Report for Build 4199
Details

8 of 8 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 80.9%

Totals

Change from base Build 4198:
0.03%

Covered Lines:
4511

Relevant Lines:
5576

💛  - Coveralls


False positive "You may be attempting to nest ..." warning

I have a translation component, something in the lines of this:
const T = ({ translate, children, component = 'span', ...props }) =>
    React.createElement(component, omit(props, ['translations', 'language', 'dispatch']), translate(children))

and since I cannot use this with Helmet directly:
<Helmet>
    <title><T>some.translation.string</T></title>
</Helmet>

I'm using it like this:
<Helmet>
    <T component="title">some.translation.string</T>
</Helmet>

It works but I get a warning in the console which I believe is not right:
You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.

I think this is the culprit:
https://github.com/nfl/react-helmet/blob/6a3d3bf2a4ee6db7045ef27ea2bb1aee906146e3/src/Helmet.js#L186

While I second that this is a bug (I presume it is, since I had the same issue with https://github.com/lingui/js-lingui), you might get away with extracting the "translation" outside helmet for the time being.
Example from my project:
export default class PageContent extends React.Component {
  render() {
    const HeadModifier = withI18n()(({i18n}) => {
      const translatedTitle = i18n._(this.props.title);

      return (
        <Helmet>
          <title>My awesome project - {translatedTitle}</title>
        </Helmet>
      )
    })

    return (
      <ContentBox>
        <HeadModifier/>

        {this.props.children}
      </ContentBox>
    )
  }
}

PageContent.propTypes = {
  title: PropTypes.string.isRequired
};

And then use it like...
<PageContent title="some.translation.string"/>

Same issue, when I use a component to render title, description

I'm interested to know why nesting of React components in Helmet is not supported. Is it because, with the current implementation, it would not be possible to notify Helmet when nested components are updated?

Thinking about it, I second @Kernle32DLL . A decent enough work around is to return your head components (Translated title, Favicons etc) wrapped in a  tag. Kind of makes sense because the components intended to render in the head, I would guess would not be intended to be rendered elsewhere, so it is safer to return them wrapped in the ?
const Favicons = props => (
  <Helmet>
    <link rel="apple-touch-icon" sizes="152x152" href="../static/favicons/apple-icon-152x152.png" />
    <link rel="icon" type="image/png" sizes="16x16" href="../static/favicons/favicon-16x16.png" />
  </Helmet>
)

<Helmet>
    <meta />
    {/* more initial head stuff */}
</Helmet>

<Favicons />
{/* ^^ This will render in the head anyway because it returns wrapped in <Helmet> */}

So why this isn't being implemented?  It breaks composability and forces you to wrap everything in ReactHelmet (if even possible).
I am trying to implement a generic SEO component as a separate library. It would be nice to have it working without making react-helmet a mandatory dependency. I can't just import the component and render it inside ReactHelmet, nope have to wrap it inside the component (in this case completely separate library) which then has an implicit peerDependency on react-helmet.
Please fix this issue, I don't think I can hot-fix this for my own use-case. Have to invent some trick if I want to get it working.

@TeemuKoivisto this have not to be implemented to use Helmet like you want. Just use function as child pattern:
<T component="title" key="some.translation.string">
    {(translated) => <Helmet>{translated}</Helmet>}
</T>

In this case T can be library component (without Helmet dependency).

Is there any reason why elements must not be nested? we got hit by this too. Looks strange?

Getting this as well. Is there any plan to fix this?


Avoid hashing payload before signing

Please provide a paragraph or two giving a summary of the change, including relevant motivation and context.
Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.

[x] If the pull request requires a cryptography review (e.g. cryptographic algorithm implementations) I have added the 'crypto' tag.
[x] I have reviewed my diff in github, line by line and removed unexpected formatting changes, testing logs, or commented-out code.
[x] Every change is related to the PR description.
[x] I have linked this pull request to relevant issues (if any exist).

@spalladino This PR removes any hashing before signing the payload. This is more efficient because we now hash the payload directly in signature construction and don't need to perform an additional sha256 hash outside.
However, this isn't optimal. Optimal solution is to do:
const message = pedersenCompress(payload);
const signature = this.signer.constructSignature(message, this.privateKey).toBuffer();

Note that pedersenCompress is the turbo-pedersen hash (i.e. crypto::pedersen_commitment::compress_native). This version of Pedersen compression is not supported by Noir (noir supports the lookup-based Pedersen called crypto::pedersen_commitment::lookup::compress_native). Once we have the new design for Pedersen implemented, then we should come back to this.


Add support for grouping into series

Hey folks!
My first intention with this PR was to implement implode to allow gathering all the values of a given group into a Series. Halfway through it, I noticed I was getting some double wrapping (i.e. [[[1, 2]], [[3, 4]]] instead of [[1, 2], [3, 4]]).
Then I looked a bit further and noticed there isn't really a need for implode to have this feature, we just need to allow plain lazy series in summarize and it just works, which is the approach this PR follows. I also updated the docs to reflect that.
Please let me know if there's something I'm overlooking with this PR, or if this is not a wanted feature. I'm more than happy to start this over with a different approach or just scrap it altogether 🙂

@costaraphael Thanks for the PR!
I know that after https://github.com/elixir-explorer/explorer/pull/725 we have our eye on functions like implode. Though this does seem like an elegant way to get a similar (the same?) thing!
When you say you were getting double lists, what caused it?

@billylanchantin I first tried to get something like this working:
DF.new(
  letters: ~w(a b c d e f g h i j),
  is_vowel: [true, false, false, false, true, false, false, false, false, false]
)
|> DF.group_by(:is_vowel)
|> DF.summarise(letters: implode(letters))

To get this working, I went through the normal steps (adding the function to Explorer.Series, and Explorer.PolarsBackend.Series, etc), all very straight forward, since implode is already implemented as an eager function in Series and in Expr. To keep just the relevant bits, here's the Rust implementation I added for lazy series:
#[rustler::nif]
pub fn expr_last(expr: ExExpr) -> ExExpr {
    let expr = expr.clone_inner();

    ExExpr::new(expr.implode())
}

When I had this, the summarise call above would yield the following:
#Explorer.DataFrame<
  Polars[2 x 2]
  is_vowel boolean [true, false]
  letters list[string] [[["a", "e"]], [["b", "c", "d"]]]
>

I spent some time trying to understand what was happening, and at one point I tried removing the implode call from the Rust code as a sanity check:
#[rustler::nif]
pub fn expr_last(expr: ExExpr) -> ExExpr {
    let expr = expr.clone_inner();

    ExExpr::new(expr)
}

Lo-and-behold, it just worked:
#Explorer.DataFrame<
  Polars[2 x 2]
  is_vowel boolean [true, false]
  letters list[string] [["a", "e"], ["b", "c", "d"]]
>

Which is when I realized that maybe we don't need the implode call at all 😅

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:


Unable to connect with CLI and self signed certificate (SSL) Influxdb 2.0

Steps to reproduce:
List the minimal actions needed to reproduce the behavior.
Setup auth for influxdb with SSL (self-signed certs) -- see config below
Create setup
Start influxdb as  influxd --tls-cert=/etc/ssl/host.crt --tls-key=/etc/ssl/host.key
Try to manage the db using flux (see below)
Expected behavior:
InfluxDB is started and uses TLS.
Influx CLI can connect to the database using TLS.
Actual behavior:
InfluxDB is started correctly using the certificate and key provided. The UI can be accessed in https://host:8086, telegraf sends data using TLS. Only problem: can't connect to it using the CLI. I recall the flag --UnsafeSsl in previous versions, the issue is related to that I think. Is there support for it in version 2.0? Below you can find the terminal output.
user@influxdb2:/etc/ssl$ influxd --tls-cert=/etc/ssl/host.crt --tls-key=/etc/ssl/host.key
2020-10-20T12:27:59.920525Z     info    Welcome to InfluxDB
## ......starts as usual.....
2020-10-20T12:28:00.551404Z     info    Listening       {"log_id": "0PyVXdC0000", "transport": "https", "addr": ":8086", "port": 8086}

azureuser@influxdb2:/etc/ssl$ 2020-10-20T12:29:03.509726Z       info    http: TLS handshake error from IP:17170: remote error: tls: unknown certificate

azureuser@influxdb2:/etc/ssl$ influx user list
2020-10-20T12:30:24.504517Z     info    http: TLS handshake error from IP:39394: remote error: tls: bad certificate
Error: Get "https://host:8086/api/v2/users": x509: certificate signed by unknown authority.
Error: Get "https://host:8086/api/v2/setup": x509: certificate signed by unknown authority.

Environment info:
System info: Linux (ubuntu 18.04)
InfluxDB version: InfluxDB 2.0.0-rc.1 installed through apt-get
Influx CLI 2.0.0-rc.1
Config:
San.cnf
[req]
default_bits  = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
countryName = XX
stateOrProvinceName = N/A
localityName = N/A
organizationName = Self-signed certificate
commonName = host
[req_ext]
subjectAltName = @alt_names
[v3_req]
subjectAltName = @alt_names
[alt_names]
DNS.1 = host

Certificate generation
azureuser@influxdb2:/etc/ssl$ sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/host.key -out /etc/ssl/host.crt -days 365 -config san.cnf
Generating a RSA private key
.....................................................................+++++
................................................+++++
writing new private key to '/etc/ssl/host.key'
-----

P.S.: The motivation for the san.cmf file is the error shown below.
azureuser@influxdb2:/etc/ssl$ influx user list
2020-10-20T10:49:32.164394Z     info    http: TLS handshake error from IP:58100: remote error: tls: bad certificate
2020-10-20T10:49:32.327796Z     info    http: TLS handshake error from IP:58102: remote error: tls: bad certificate
Error: Get "host:8086/api/v2/users": x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0.
Error: Get "host:8086/api/v2/setup": x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0.

@martaferg could you add the --skip-verify option to your influx command:
azureuser@influxdb2:/etc/ssl$ influx user list --skip-verify

I too have this issue (or similar).
All the the influx CLI commands I've tried work, apart from "influx query".
I have a self-signed certificate.  I've tried using local IP and loopback but same results.
influx user list Doesn't work
sh-4.4# ./influx user list
Error: Get "https://<IP_ADDRESS>:8086/api/v2/users": x509: cannot validate certificate for <IP_ADDRESS> because it doesn't contain any IP SANs.
Error: Get "https://<IP_ADDRESS>:8086/api/v2/setup": x509: cannot validate certificate for <IP_ADDRESS> because it doesn't contain any IP SANs.
See 'influx user list -h' for help

influx user list --skip-verify  Does work
sh-4.4# ./influx user list  --skip-verify
ID                      Name
06f5747847820000        xxx
06f68d4163603000        guest

influx query --skip-verify  Doesn't work
sh-4.4# ./influx query 'schema.measurements(bucket:"telegraf")' --skip-verify
Error: Post "https://<IP_ADDRESS>:8086/api/v2/query?org=xxx": x509: cannot validate certificate for <IP_ADDRESS> because it doesn't contain any IP SANs.
See 'influx query -h' for help

Running InfluxDB 2.0.3 on Centos8
Influx CLI 2.0.3 (git: fe04d346df) build_date: 2020-12-15T01:00:16Z

I too have this issue (or similar).
All the the influx CLI commands I've tried work, apart from "influx query".
I have a self-signed certificate.  I've tried using local IP and loopback but same results.
influx user list Doesn't work
sh-4.4# ./influx user list
Error: Get "https://<IP_ADDRESS>:8086/api/v2/users": x509: cannot validate certificate for <IP_ADDRESS> because it doesn't contain any IP SANs.
Error: Get "https://<IP_ADDRESS>:8086/api/v2/setup": x509: cannot validate certificate for <IP_ADDRESS> because it doesn't contain any IP SANs.
See 'influx user list -h' for help

influx user list --skip-verify  Does work
sh-4.4# ./influx user list  --skip-verify
ID                      Name
06f5747847820000        xxx
06f68d4163603000        guest

influx query --skip-verify  Doesn't work
sh-4.4# ./influx query 'schema.measurements(bucket:"telegraf")' --skip-verify
Error: Post "https://<IP_ADDRESS>:8086/api/v2/query?org=xxx": x509: cannot validate certificate for <IP_ADDRESS> because it doesn't contain any IP SANs.
See 'influx query -h' for help

Running InfluxDB 2.0.3 on Centos8
Influx CLI 2.0.3 (git: fe04d346df) build_date: 2020-12-15T01:00:16Z

Looks like the value of --skip-verify is ignored in the query implementation. Will try to get a fix into 2.0.4

Looks like the value of --skip-verify is ignored in the query implementation. Will try to get a fix into 2.0.4


Access to heading value from BB8 ?

Hi,
Is it possible to have access to the heading value of bb8 ? I search for this functionality but I find nothing to get it and it could be useful to have it.
Thanks

It is typical to use the Inertial Measurement Unit (IMU) for this info. Please check out the example code https://github.com/orbotix/sphero.js/blob/master/examples/stream-imu-angles.js
Hope that helps!

Hi deadprogram,
yes it helped me but now I have a little because the add of the call to streamImuAngles add some sort of lag in the command executing for bb8. Do you know if there is a solution to decrease the framerate of sending data to minimize the add of lag ?
Thanks

Perhaps you want to play with different values for the timeout value for sending commands. For example:
var bb8 = new Sphero("F3:F2:6D:55:71:09", { timeout: 300 });

Hope that helps!

From now on, I am going to use "HTH" for "Hope that helps!" to save on bytes. :P

Hi, @reidakdumont did changing the timeout value help you? Please let us know.


Add Seminars Display

Add seminars to EPSchedule display, much like we already have for Advisory.
Requested by Audrey Yang

nevermind, #596 exists


Where's my key?

I stopped it, no throw...

It threw

after ~5 minutes of restarting the debug

It threw again

It's sporadic. As a behavior, I can say that if it doesn't throw the first few seconds the label starts to run, it doesn't throw at all, I have to restart the debug. When it throws it throws in the first 1 or 2 Million iterations. But I'm saying this after 2 throws. I haven't got the patience to obtain different idx values.
Version 13.0.1
int idx = 0;
test: JToken val = resultJSON["resultSetId"];
                resultId.TryAdd(jsonFile, val);
                string obVal = resultId[jsonFile].ToString();
                idx++;
goto test;

Duplicate of #

Duplicate of #

Duplicate of #

I stopped it, no throw...

It threw

after ~5 minutes of restarting the debug

It threw again

It's sporadic. As a behavior, I can say that if it doesn't throw the first few seconds the label starts to run, it doesn't throw at all, I have to restart the debug. When it throws it throws in the first 1 or 2 Million iterations. But I'm saying this after 2 throws. I haven't got the patience to obtain different idx values.
Version 13.0.1
int idx = 0;
test: JToken val = resultJSON["resultSetId"];
                resultId.TryAdd(jsonFile, val);
                string obVal = resultId[jsonFile].ToString();
                idx++;
goto test;


problem with react 15.4.0

hi, allen
we have a problem with react 15.4.0
Module not found: Error: Cannot resolve module 'react/lib/CSSPropertyOperations' in /home1/irteam/.jenkins/jobs/NFAS_WEB_ND/workspace/node_modules/rc-datetime-picker/dist

can you fix this problem ?

Fixed.


Add Augmented Code to company blogs.

I think the site URL is incorrect, could you change it to point to the blog URL please and I'd be happy to merge this.

Sure, I made the change to point to the blog, not to the home page.


env strings which include a space

Hi,
in bash I would export a string which contains a space by wrapping it inside "". eg:
FOO="bar baz"

If I used this in the library the string I would get would contain the "" though.
To use a space separated string in .env I would nee to do it like this:
FOO=bar baz

this would make the file unsourcable though. (command not found: baz)
example:
extern crate dotenv;
use std::env;

fn main() {
    dotenv::dotenv().ok();
    let foo = env::var("FOO").unwrap();
    println!("FOO: {}", foo);
}

$ echo 'FOO="foo bar baz"' > .env
$ cargo run
    Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs
     Running `target/debug/bar`
FOO: "foo bar baz"

$ rm .env
$ FOO="foo bar baz" cargo run
    Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs
     Running `target/debug/bar`
FOO: foo bar baz

Notice the ""

This should be fixed as of dotenv 0.10, at least for me the test program you posted compiles and produces the correct output!
If this is still an issue, please comment and I will re-open.


Rename boolean prop isDeselect to deselectable

Adjective is better suitable than a verb in this context.
Relevant for ASelect

in progress

done with commit 9d2bbb4


MSI based Windows setup

I need to install VS Code for our developers. They are not allowed to install software. As we are only using AD deployment this requires a proper MSI setup that installs per machine. In the installer I need to be able to disable automatic updates on machine level.
I have only seen a bad InnoSetup setup that cannot deployed via AD. Can you create a modern installer based on WiX toolkit, please? If you need help I may be able to help.

This would make it much easier to deploy and update via ConfigMgr.

I worked on this issue the last days and I'm close to complete the Inno to WiX setup, but I'm not sure if I'm allowed to post the WiX setup scripts and all the VSCode logos after the answers from https://github.com/Microsoft/vscode/issues/37187. That suxxx.
Is the MS setup developer available by email to exchange setup files with logos without making them public and without breaking a law/copyright?

#38008

I found this issue. During reading I'm currently not sure about the status. Will there be a MSI Installer in the near future? Any plans? That would be nice.

Guy. There is no way to deploy software via AD without MSI setup. Please reopen https://github.com/Microsoft/vscode/pull/38008!

At present, the only way to disable updates appears to be forcing a new settings.json into each user's profile.  At the very least, can we please get VS Code to respect a HKLM registry setting that would disable updates?

So very, very disappoointing that there is no MSI format installer.
How is it possible that MS product does not support AD Software Installation?

So, I found this to be an issue for me as well. But, there is a "workaround" (hack)...
Since they offer a .zip format, you would have to script unzipping of the file and creating a shortcut on the user's desktop.
Since I'm not going to hold my breath for this feature, I will be implementing this... unfortunately. Once I have written the code, I will provide a link to it here.
I would like to also thank the VSCode team for such a great product. In the grand scheme of things, this application is hands down the best text editor, surpassing Sublime Text, Atom, Notepad++, you name it. I am not a developer, but I use this program daily. So, thank you for sharing the <3

@Hickory420 Hey I am working on implementing this at more work. Have you come up with that work around you were speaking of?

I have already shared the installer code with vscode team... its in public github repro

Any updates on this request?

i would love this for intune for my students

I am aware VBScript is old school and out dated, I could have done this in powershell, but I figured since there are different PS versions out there, this would cover most systems all the way from Windows XP. Admittedly not my cleanest vbscript.
Option Explicit

Dim objFSO, objWscriptShell, objShellApplication
Dim ZipFile, UnzipDir, FilesInZip

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWscriptShell = CreateObject("WScript.Shell")
Set objShellApplication = CreateObject("Shell.Application")

ZipFile = "\\server01\some\accessible\share\VSCode-win32-x64-1.36.1.zip"
UnzipDir = "C:\path\on\local\machine"

' Make sure the directory we are extracting to exists
If Not objFSO.FolderExists(UnzipDir) Then objFSO.CreateFolder(UnzipDir)

Set FilesInZip = objShellApplication.NameSpace(ZipFile).items

objShellApplication.NameSpace(UnzipDir).CopyHere(FilesInZip)

' Create the shortcut
Dim VSCode_ShortCutName, VSCode_DesktopShortCut, VSCode_FullExecutable, lnk

VSCode_ShortCutName    = "Visual Studio Code.lnk"
VSCode_DesktopShortCut = objWscriptShell.SpecialFolders("desktop") & "\" & VSCode_ShortCutName
VSCode_FullExecutable  = UnzipDir & "\Code.exe"

' Reset the shortcut every time this script is run.
If objFSO.FileExists(VSCode_DesktopShortCut) Then objFSO.DeleteFile VSCode_DesktopShortCut,True

If Not objFSO.FileExists(VSCode_DesktopShortCut) Then
  Set lnk = objWscriptShell.CreateShortcut(VSCode_DesktopShortCut)
  lnk.targetpath   = VSCode_FullExecutable
  lnk.IconLocation = VSCode_FullExecutable & ",0"
  lnk.Description  = "Best Text Editor Ever"
  lnk.WorkingDirectory = UnzipDir
  lnk.save
End If

I have tested this with files on my local machine and it works. You can put this script in a Logon group policy and the end user will get VSCode deployed to their machine.

Any update?

Would Love It!

We still need this.

Agreed - but maybe efforts should concentrate on VSCodium which seems to understand the value of an MSI?

Still need this.  Coding is huge in education, and Microsoft actively refusing to use Microsoft's own MSI deployment mechanisms just throws barriers up in front of students and admins trying to deploy this software.  This should be as simple as I upload an MSI to Intune / Endpoint and assign it to students, many of whom are forced to be at home due to the pandemic.  Instead I'm now going to have to screw around trying to shoe-horn an exe installer into SCCM and somehow get this to the students at home.
Not cool Microsoft.

Agree, we use Visual Studio Code on our Enterprise-environment and has been deployed the app via SCCM. Using MSI-installer is much better solution for Enterprise-environment instead exe-installer. MSI-installer is needed!

Everyone needing MSI installer I suggest to take a look at https://github.com/VSCodium/vscodium/issues/106 and register your thumbsups on it.

Still need an MSI for vscode. Please!

If you disagree and feel that this issue is crucial: We are happy to listen and to reconsider.

Still need an MSI. But doesn't sound like you're listening.

Of course it is crucial. It is the standard packaging format of installers for Windows, for petes sake!

Just use VSCodium and the Story is to an end

Still need this.  VSCodium is fine and all but it's not what users expect and they (or the MS consultant insists on VS code even though it's incomplete).

Still no update on that?

Still no update on that?

VSCodium keeps releasing new versions at a steady pace following VSCode. I have given up here.

we're using the inno-based exe to deploy from intune as Win32-package. It works, if VS Code is closed. However, if it's currently running, it still tries to install, breaks the installation and VS Code gets unusable until it's getting reinstalled. Is there any workaround to pass as arguments to update only when VS Code is closed?

The issue with installing VS Code in a machine wide location (e.g. Program Files) is:

it would require the users to be administrators
by default automatic updates wouldn't work

Both of these problems are fixed if you grant Full Control to of the Program Files folder to all Users.
That way:

develops can install VS Code by themselves
VS Code can auto-update itself

Otherwise you're just heading into a world of pain of:

standard users not being able to install VS Code
standard users not being able to update VS Code

standard users not being able to install VS Code
standard users not being able to update VS Code

Good.
Speaking as an academic sysadmin we don't want users installing software.  If an update is required, it is our job to deploy it.  Using MSI for this mechanism would make this process INFINITELY simpler.

Both of these problems are fixed if you grant Full Control to of the Program Files folder to all Users

This is a very bad decision to make security-wise. A malicious user could replace the executable with a malicious version. It could also be used as a way to bypass AppLocker if configured to trust system-level locations.

That's not a world of pain.  That's exactly how it's supposed to work.  Giving the built in users group full control of program files is an incredibly bad idea and a shortcut to credential and account theft of any account (user or admin) that signs on to that computer.  It should never be done.

it would require the users to be administrators
by default automatic updates wouldn't work

Both of these problems are fixed if you grant Full Control to of the Program Files folder to all Users.

Guys, that is an absolutely wrong way! Not only sysadmin-level pro developers using VS Code. I'm administering nearly 500 school-PC with over 1500 student. No one have the ability to install something. They aren't developers and aren't power users, so they don't have any admin rights. But they are learning VS Code and they needed the updates.

develops can install VS Code by themselves
Never mind! Even the idea is a nightmare that user can install something on multi-user computers!

VS Code can auto-update itself
That isn't an option. That is a must! It should be a default ability, done by System and not by User.

The issue with installing VS Code in a machine wide location (e.g. Program Files) is:

it would require the users to be administrators
by default automatic updates wouldn't work

This is how managed installations are supposed to work and the listed "issues" are actually benefits!
The user is not supposed to be installing, or have the ability to install, anything. Everything is installed automatically by deployment tools.
I hope nobody follows the suggestion to change permissions on Program Files, this will be a security nightmare. I believe that the OP should edit his post to remove that ridiculous idea.

it would require the users to be administrators

Wrong.

by default automatic updates wouldn't work

Intentionally, yes.

Both of these problems are fixed if you grant Full Control to of the Program Files folder to all Users.

OMG... never do this!!!

Guys, that is an absolutely wrong way! Not only sysadmin-level pro developers using VS Code. I'm administering nearly 500 school-PC with over 1500 student. No one have the ability to install something. They aren't developers and aren't power users, so they don't have any admin rights. But they are learning VS Code and they needed the updates.

This is not what the MSI package is made for. This package protects your students from finding every day a different vscode version that breaks their code. It is soley the admins (or professor / teachers) job to make sure the proper version is installed on all systems. Every PC should be the 100% same - otherwise they spend every day an hour to learn that an wrong vscode version is installed or a previous student has broken it and it does not fit to their lessons.

@alexhass
They always think the user must use Latest version , but in fact there are many factors the administrator need control the version

MSI would be too convenient for the end user.
Plus they wouldn't be able to charge you for centralised deployment through their SCCM software if they fixed their installer.
Think about it.

Given that Microsoft doesn't consider this as a priority, I will do it myself

Perhaps this could be implemented in a fork of Code - OSS so people who need it at least can use it? Without the official marketplace, of course. But these enterprise users probably don't want users to install the extensions that they want, either - they probably want to install the same extensions for all users.

@aitor-gomila Already exists: https://www.github.com/VSCodium/vscodium/releases

If someone is still interested in this, I wrote a small tool that creates a VSCode installation MSI.

If an update is required, it is our job to deploy it.

That is a fine solution as long as:

you deploy it immediately (few hours after new version)
the user does not have to remind you to do it

Otherwise it's a non-starter.

Vscodium has an msi setup with updates disabled. This is crucial.

Specifically, https://github.com/VSCodium/vscodium/releases/download/<IP_ADDRESS>93/VSCodium-x64-<IP_ADDRESS>93.msi.


Multiple Codes for a User?

I just installed my Schlage Connect lock over the weekend. I discovered your app and am now in the process of entering the user codes. I love the scheduling feature, as I want to make codes available for my daughters for opening the door after school. So awesome.
I was wondering about a potential new feature. I am giving my daughters an "after school" code that is only valid for about 30 minutes. My thought is that if a friend is with them after school and sees the code, they could come back later and try the code themselves. (Kids do all sorts of crazy things!) But, I also want to give them a code that will work at other times, when they don't have friends walking with them to the front door, but will rotate that "regular" code in the event someone does happen to see it. (Kids don't know boundaries and LOVE to see things they aren't supposed to...)
I can do that through the app currently, but have to create separate users for each code. I was thinking it would be nice to set up a user, and then assign multiple codes for that user (after school code, regular code, weekend code, and anything else I can think of...)
Anyway, I am so happy I found your app. I'm entering my users and codes now. I am looking forward to playing with all the features.

Hi @CMStatz,
Although I'm not a contributor to this codebase I have been using Lock Manager for months and would suggest you provide your daughter with at least one code that has no scheduling feature associated with it. The reason for this is because once a code is programmed into the door it doesn't matter if your SmartThings hub or internet is online and working or not.  Since Lock Manager runs in the cloud, scheduling all these code changes will inevitably result in it not working one day due to your internet being down, or your lock not responding for various reasons (Low Battery, etc). Unfortunately, Lock Manager doesn't provide push notifications when the updateCodes command fails, so you won't know the code isn't working until your daughter arrives and finds out. For this reason, I always have at least one "backup" code programmed into the lock that I can provide if things don't work the way they should.
-Amy

Thanks, Amy. I actually set up five codes for each of my daughters, one that has full access, the other four work at different times, for different purposes. I hadn't thought about the loss of power issue, though. That's definitely something to keep in mind!
I was just thinking that with five codes, it would be easier to have one user, five codes, rather than five users, each with a code.
I appreciate you taking the time to reply! I'll definitely have a generic backup code, just in case anyone needs it. (My whole family lives nearby, work 30 codes available, they all want their own, and I laughed, because I can count the times on one hand they've ever needed to go into my house with my old key! Lol! - it's the novelty of the lock.  But, hey, I have the ability to do it, so I will.)

Well, your use case makes sense. But adding support for multiple codes per user introduces the problem of how to schedule for each code along with other options associated with that code such as the slot, etc. It seems like it would complicate the user interface significantly.
To keep an eye on code use I enable global push notifications on entry, so I know when someone uses a code. Combine that with a cloud-connected camera or doorbell, and you can easily use the timestamps to observe who used the code. If you look in the lock notification history, you can also see when the lock was manually unlocked. This gives you a timestamp to see who left the house.


Cyphers, Trinkets, and Artifact crafting recipes don't make sense

Cyphers take 8 copper ingots and 1 amethyst dust to craft, trinkets take 8 iron ingots and 1 amethyst shard to craft, and artifacts take 3 gold and 1 music disc to craft.
Even though copper is common, the recipe seems a bit too much for what cyphers are.
8 iron for trinkets is pretty rough considering how many trinkets you might want or need, probably less bad than how much you need hoppers, though.
3 gold seems like a weird amount for artifacts considering the rest take at least 8 items surrounding the center piece for crafting.

Whoops that was a bug from porting things to Paucal.


Fix non-us matching.

The parser currently does not correctly work with non-us ascii. In particular, if a list contains multiple quoted addresses and the first one is us ascii, but a later one is not, the regular expression will not work properly.
For Example: Mail::ToField.new('"Just Ascii"<EMAIL_ADDRESS>"Foo Bär" <x@example.com>').addrs
This is broken upstream:
=> [#<Mail::Address:70340928511720 Address: |"Just Ascii\"<EMAIL_ADDRESS>\"Foo Bär"<EMAIL_ADDRESS>>]
With the patch:
=> [#<Mail::Address:70340922281680 Address: |Just Ascii<EMAIL_ADDRESS>>, #<Mail::Address:70340922281660 Address: |"Foo Bär"<EMAIL_ADDRESS>>]

Please see my comment about an alternative to nested gsubs. Please also add a test to spec/mail/encodings_spec.rb in the encode_non_usascii section

an spec that might work
    it "should encode multiple combo of ascii then non-ascii correctly" do
      raw     = '"Mikel Lindsaar"<EMAIL_ADDRESS>"あdあ"<EMAIL_ADDRESS>      encoded = '"Mikel Lindsaar"<EMAIL_ADDRESS>=?UTF-8?B?44GCZOOBgg==?=<EMAIL_ADDRESS>      expect(Mail::Encodings.encode_non_usascii(raw, 'utf-8')).to eq encoded
    end

@jeremy mind taking a look at this one when you get a chance? I think all the rbx failures are not related to the change, but I don't have the ability to re-run master to double check.

Fixed by #1074


ndimage.shift results in incorrect values for inplace for float arrays

Description
When using in-place operations for float arrays, the image.shift returns incorrect results.
I noticed this bug when getting incorrect results and not an empty result as my example, but that's how I reproduced in a minimal example. Because it wasn't happening every time.
To Reproduce
import cupy  as cp
import napari
from cupyx.scipy import ndimage as ndi

def main() -> None:

    # Define the volume size
    volume_shape = (512, 512, 512)
    size = 500
    center = 256

    # integer works
    arr = cp.zeros(volume_shape, dtype=cp.float32)
    arr[tuple(slice(center - size // 2, center + size // 2) for _ in range(3))] = 1

    # Apply a shift using scipy.ndimage.shift
    shift_vector = (5, -68, -130)  # Shift in (z, y, x) order

    print("Before", arr.min(), arr.max())

    # not in-place works
    # arr = ndi.shift(
    #     arr,
    #     shift_vector,
    #     order=1,
    # )
    ndi.shift(
        arr,
        shift_vector,
        order=1,
        output=arr,
    )

    print("After", arr.min(), arr.max())

    napari.view_image(arr.get())
    napari.run()

if __name__ == "__main__":
    main()

Installation
Conda-Forge (conda install ...)
Environment
OS                           : Linux-5.15.0-92-generic-x86_64-with-glibc2.31
Python Version               : 3.10.12
CuPy Version                 : 12.2.0
CuPy Platform                : NVIDIA CUDA
NumPy Version                : 1.24.4
SciPy Version                : 1.11.2
Cython Build Version         : 0.29.36
Cython Runtime Version       : None
CUDA Root                    : /home/jordao/miniconda3/envs/imgproc
nvcc PATH                    : None
CUDA Build Version           : 11080
CUDA Driver Version          : 12000
CUDA Runtime Version         : 11080
cuBLAS Version               : (available)
cuFFT Version                : 10900
cuRAND Version               : 10300
cuSOLVER Version             : (11, 4, 1)
cuSPARSE Version             : (available)
NVRTC Version                : (11, 8)
Thrust Version               : 101501
CUB Build Version            : 101501
Jitify Build Version         : 11d783c
cuDNN Build Version          : 8800
cuDNN Version                : 8800
NCCL Build Version           : 21903
NCCL Runtime Version         : 21903
cuTENSOR Version             : 10700
cuSPARSELt Build Version     : None
Device 0 Name                : NVIDIA GeForce RTX 3090
Device 0 Compute Capability  : 86
Device 0 PCI Bus ID          : 0000:03:00.0
Device 1 Name                : NVIDIA GeForce RTX 3090
Device 1 Compute Capability  : 86
Device 1 PCI Bus ID          : 0000:04:00.0

Additional Information
No response

Thanks for reporting @JoOkuma!  The shift operation (and many ndimage features) rely on raw CUDA kernel generated on-the-fly. I haven't fully checked the code but it looks it does not support cases s.t. input and output memory overlap.
Supporting in-place will need almost full rewrite of the kernel so I'm thinking of adding a check and making a copy automatically if there is an overlap. https://github.com/cupy/cupy/blob/8fb6d0412908ebb8f73d81106cc0bcccb9cb49c8/cupyx/scipy/ndimage/_interpolation.py#L640-L655

Making a copy and updating the docs to say it's not in place would be excellent!
Thanks for the quick reply @kmaehashi


LSP-elixir cannot start

I get the following exception with the default config on LSP v1.6.1:
neither "command" nor "tcp_port" is provided; cannot start a language server

Having the same issue on Fedora 34, Sublime 4113 and LSP 1.7.0

0.4.2 might fix it

I've added "command": ["$server_path"] to my config by hand, and it seems to work now

Thanks for the confirmation


Uncaught Error: Cannot find module 'multicodec/src/base-table.js'

Node: v14.15.4
OS: Linux 5.9.16-1-MANJARO
libp2p: ^0.30.9
when i enter: const Libp2p = require('libp2p')
I got errors:
Uncaught Error: Cannot find module 'multicodec/src/base-table.js'
Require stack:

/home/funarp/learn/libp2p/node_modules/cids/src/index.js
/home/funarp/learn/libp2p/node_modules/peer-id/src/index.js
/home/funarp/learn/libp2p/node_modules/libp2p/src/index.js

  at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
  at Function.Module._load (internal/modules/cjs/loader.js:725:27)
  at Module.require (internal/modules/cjs/loader.js:952:19)
  at require (internal/modules/cjs/helpers.js:88:18) {
code: 'MODULE_NOT_FOUND',
requireStack: [
  '/home/funarp/learn/libp2p/node_modules/cids/src/index.js',
  '/home/funarp/learn/libp2p/node_modules/peer-id/src/index.js',
  '/home/funarp/learn/libp2p/node_modules/libp2p/src/index.js',
  ''
]

}
what should i do?

Can you list your package.json dependencies? You may have a version conflict

Can you list your package.json dependencies? You may have a version conflict

I just installed libp2p
{
"name": "libp2p_learn",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"libp2p": "^0.30.9"
}
}

and I try both npm install libp2p and yarn add libp2p, and node 15 or 14(LTS), I also have C/C++ build tools installed

multicodec accidentally released a breaking change in a patch, coordinating with them on a fix

multicodec accidentally released a breaking change in a patch, coordinating with them on a fix

should I downgrade multicodec or wait for libp2p to fix this?

I found a way to fix this: npm install<EMAIL_ADDRESS>after npm install libp2p, but why? npm should handle multicodec version problem, and libp2p's package.json is multicodec with 2.1.0 version

A patch was released in multicodec, 2.1.3 that fixes the issue. So you can remove multicodec from your modules list and just install libp2p.
Your fix works because you're effectively locking multicodec @2.1.0, npm will avoid installing the broken patch. libp2p doesn't lock dependency versions, so when a patch release comes out and you install, you get that version, this is intended.
Closing this as the underlying issue with multicodec was resolved.


Make Redis.dispatcher configurable

Redis.dispatcher is not configurable for now. Though the behavior of this dispatcher could be config, the RedisActor cannot use the same dispatcher with the other actors (Play or Spray actors for example). It is kind of a big deal if I want the number of threads to be the same as CPU cores, and all the actors use all of these threads.
So I'd like the name of dispatcher could be configurable. Here I come up with three methods:

Pass the name as a param of RedisClient, RedisClientPool, etc.
Use implict value.
Use Typesafe config, config it in the file.

All the methods could have a default value so that they don't break the compatibility. Which one is better for you? I can implement it.

I think implicit value + default value (Redis. dispatcher) would be the best

implicit dispatcher : MessageDispatcher = Redis.dispatcher
Redis {
def dispatcher(implicit ActorSys) = system.lookup("...default here")
}

Also can you replace all the https://github.com/etaty/rediscala/blob/5b82c8f5402e26b71671069a3b4da192a4adadbf/src/main/scala/redis/Redis.scala#L32
with the implicit dispatcher (avoid context switching, so that should improve performance a little also in some case)

I am also curious of how the threads behave when there is only one single redisclient (it might be a waste of resource, always jumping around). have to investigate that.

The cost of an actor's context switch should be smaller than a thread's. And the behavior of actors' context switch could be configured by throughtput of the dispatcher. We have more control for dispatchers than for OS threads.
I will implement the configuration this weekend.


[Feature Request] Back reference can be used in nested expressions.

Is your feature request related to a problem? Please describe.
Consider an HCL2 heredoc template,
a = <<EOT
something
EOT

We will need to determine if inner lines of Heredoc template is not started with EOT, hence
HeredocTemplate = "<<" Heredoc (!(\1 Newline) .)* \1 Newline;

As of v1.16.0, there is no way to get a back reference inside (...)* as it's under its own Sequence scope.
See https://github.com/soasme/PeppaPEG/blob/main/configs/hcl2.peg.
Describe the solution you'd like

The number of back reference "\N" always refers to the Nth member in the peek sequence rule.
If inner backref is needed, we can extend the syntax to \M.N, meaning Nth member in Mth member.
The number only applies to a sequence.

Describe alternatives you've considered
N/A
Additional context
N/A

\M.N is unnecessary as users can always use \N in a named rule sequence.


Uploaded files get courupted

Hi,
i have uploaded file as shown in documentation  in
but uploaded files on server are corrupted ie.
they have some meta added to start and end example
original file data txt file
abcdefg
uploaded data
------jdjdjdhj33
content type or some other info
abcdefg
------jndcjbj3899
please help

Sorry i found similar issue posted by @Jimson Liang


Add redirects for previously 404'ing pages

These two pages return 404, but have the same content_id as similar pages.

/government/world/organisations/british-trade-cultural-office-taiwan/about/recruitment is a sub page of an organisation that has been renamed in https://github.com/alphagov/whitehall/pull/2245. This subpage have not been renamed in this case. This PR fixes that.

/government/organisations/court-of-protection seems to have existed but dissapeared. It has the same content_id as /government/organisations/court-of-protection

Trello: https://trello.com/c/cme0kKzQ/366-fix-duplicate-content-ids

:+1:


<EMAIL_ADDRESS>

Add<EMAIL_ADDRESS>Used this successfully on Windows, Ubuntu, and macOS for the past year - in contrast to the newer version 2.1.91 this one uses also NASM to build some (hopefully optimized) assembly files.
Copy with some modifications from my personal Bazel registry:
https://github.com/Vertexwahn/bazel-registry/tree/main/modules/libjpeg_turbo

Hello @eustas, modules you maintain (libjpeg_turbo) have been updated in this PR. Please review the changes.

@bazel-io skip_check unstable_url

@eustas Can you approve this?

I reached out to @eustas privately -- will approve if there's no response by tomorrow.

LGTM. Thanks for the heads-up


Adding unit test for host_inventory/filesystem and refactoring it sligthly

I refactored host_inventory/filesystem.rb so that I could write a unit test for it. The unit test is under spec/host_inventory/filesystem_spec.rb

Thanks!

Released as v2.36.1.


[OCP3] Retry skopeo operations

Cherry-picks #1653
Maintainers will complete the following section

[ ] Commit messages are descriptive enough
[ ] Code coverage from testing does not decrease and new code is covered
[ ] JSON/YAML configuration changes are updated in the relevant schema
[ ] Changes to metadata also update the documentation for the metadata
[ ] Pull request has a link to an osbs-docs PR for user documentation updates
[ ] New feature can be disabled from a configuration file

Release notes already added in #1653


Configuring the invitation message with multiple recipient's

As per the documentation URL I'm sending multiple recipients in JSON body, but it's taking only one recipient which is configured last in the array. Below is the sample JSON I'm using.
{
"invitedUserEmailAddress"<EMAIL_ADDRESS>"sendInvitationMessage": true,
"invitedUserDisplayName": "prabha",
"inviteRedirectUrl": "http://localhost:8080",
"invitedUserMessageInfo": {
"ccRecipients": [
{
"emailAddress": {
"name": "prabha",
"address"<EMAIL_ADDRESS>},"emailAddress": {
"name": "bill",
"address"<EMAIL_ADDRESS>}
}
],
"customizedMessageBody": "Hi Prabhakar! this is sample email ignore it"
}
}
As per the above JSON, it's sending an email to<EMAIL_ADDRESS>as recipient not sending to<EMAIL_ADDRESS>
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 90ac5e5d-f7b3-3456-1be3-dda37e495e1b
Version Independent ID: e7152b1a-9bac-9502-2c76-e7bb9ce863d1
Content: recipient resource type - Microsoft Graph v1.0
Content Source: api-reference/v1.0/resources/recipient.md
Product: ****
Technology: microsoft-graph
GitHub Login: @angelgolfer-ms
Microsoft Alias: MSGraphDocsVteam

I found in the document "Currently only 1 additional recipient is supported". Still it supporting only 1 recipient??

@Prabhakar96-dev We will investigate and update the thread.

@Prabhakar96-dev, Thank you for reaching out. I did test this invitation api with multiple users in ccRecipients section in the JSON body and the email got sent to only the last person mentioned in the ccRecipient section. Do allow me some more time as I am working on this and would try out few more tests. I would keep you updated with the details.

@Prabhakar96-dev, I checked on this, as of now, only one ccReceipient is allowed in that body of the inviatation api call.
Hope this helps.

@souravmishra-msft , Thank you

@Prabhakar96-dev - I apologize for the delay in my response. Regarding the invitation email, the only restriction available is in the portal's UI, where if an admin is using the UI, he wont be able to send multiple invitations to a single user once the invitation is accepted by that user. But in case of Graph API, no such checks are available for the createInvitation API. The number of time you would call the createInvitation API with a valid access_token, that many times a notification email would be triggered for the target user.
What I can suggest you here is that in your application you can introduce a check that would check if the user is has accepted the invitation or not. If not then only make the call to the createInvitation API so that another email can be sent.
Hope this helps.

@souravmishra-msft , Thank you very much. You can close this thread .

Closing this thread for now.


Add light grey box to completeness prompts on reader

keep the red bar, add the box, extend to full width of centre column.

also, review the amount of white space above and below this prompt, it was looking a little too spaced out perhaps.


Updated URLs to primary resolvers csv and minisign

The URLs for the github hosted dnscrypt-resolvers.csv and dnscrypt-resolvers.csv.minisig have changed.
I've updated the same to reflect the new locations of those files.

Hi, can you please merge these changes ASAP. you have millions of broken clients and users complaining everywhere. What ever could be the hold up ? I think I might fork this projects. Lots missing. Optional auto update. Sort by ping time. Filter by encrypted etc. Not much work to do, but significant UX improvement. Shame, you had good intentions but you have failed to address issues over a year old now. Need to take over this project.


Remove hardcoded metadata object

There's some hard-coded column definitions here that the client currently makes use of:
https://github.com/OneZoom/tree-build/blob/d0aa5b9d2e8306eb316497b582b73c84713b946a/oz_tree_build/utilities/make_js_treefiles.py#L43
The pull request https://github.com/OneZoom/OZtree/pull/693 makes these redundant, so once this code makes it to production we won't need this any more.

The commit in question is https://github.com/OneZoom/OZtree/commit/eeb8553914f475ab23bac21b05cdf00920e0feb4 - once this has gone to production, then this metadata variable is redundant and can be removed.

I assume we will also be able to delete make_js_treefiles.py altogether from oztree? As part of splitting repos, we ended up with some files that exist on both sides, but that was always meant to be transitional.
In any case, sounds good to yank metadata once production is ready.

I assume we will also be able to delete make_js_treefiles.py altogether from oztree?

Yeah, AFAIK there's no reason for it to exist in OZtree.


Maintenence mode?

Is the whole connectors project in maintenence mode or only the cloudfoundry connector? what about the other cloud platforms eg. Kubernetes?

The entire project is in maintenance mode. The cloudfoundry connector was by far the most widely used cloud connector. The heroku connector was lightly used (based on the volume of issues and enhancement requests). The localconfig connector was only used for local testing, and the combination of Boot properties and Spring profiles is much easier to use than localconfig.
The Connectors project never had support for kubernetes.


Using providers in other watch faces

Can I build a complication and use it in all Android Wear 2 watches faces who support complications?

This is probably more appropriate for Stack Overflow. That said, the watch face maker controls the complications, you can't build a visual complication that is used on other watch faces.
However, you can build a complication data provider (very easy) where you can expose your app's data to all complications in Wear 2.0, e.g., you make a weather app and want to provide the current temperature. You can control what type of data is exposed. The watch face maker will style that data to match their watch face.
You can also provide a Intent to launch with your complication (when someone taps on it), and that can launch into your app (that provides the information).


[Feature Request] Model Search Enhancements:  speed index of attributes

Description
The models that I work are prolific in their use of attributes.
As a result, the ability to search attribute key/value pairs requires an infeasible amount of scrolling if the attribute key is not near the beginning of the alphabet.
Would very much appreciate a selection aid - like the pre-emptive selection implemented in the Properties-Name fie

ld

The search filter uses menus and sub-menus for the UI. We'd have to use a different UI control for Properties. Suggestions welcome...

After some experimentation I've concluded that using sub-menus is not ideal for displaying and selecting user properties. If you have only a few it's not a problem, but any more than a few and the sub-menu is too big, especially if you have hundreds.
Today's early access build of Archi 5.5 now has one "Properties..." sub menu in the Search Filter drop-down that opens a dialog where you can select which property keys you want (the same as the "Add Multiple Properties" dialog).


IE detection and opacity

previous lighthouse ticket #1278
by Jared Fedorchuk

Since browser detection is used for the getStyle and setOpacity functions you run into problems with IE 9 when using the scriptaculous fade/appear affects.
It seemed to me that IE9 was using the filter\alpha and regular opacity which was causing problems. I made it so it would only modify the opacity property.
I fixed it for my purposes by changing line 2539 from
else if (Prototype.Browser.IE) {
to
else if(navigator.appVersion.match(/MSIE\s+(?:6|7|8)\./)) {
and line 2742 from
else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) {
to
else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent) || document.all) {

Fixed this in 9ca2e6a0445a77858d8a84588c03901c2e0b45b4.


Add instructions on README about how to run the starter

How to run both locally and inside minishift.

https://github.com/nodeshift-starters/nodejs-configmap-redhat/commit/c061c8c5ea62c9f1b8e728d55ea4042fae401ad6


classbeamngpy.sensors.Electrics

Everything works just the documentation says: #TODO

How did you get the electrics values? I can't seem to figure out how to poll the electrics sensor.


Unable to resolve 'Openchain.MongoDb (>= 0.1.0-alpha1)

Hi,
trying to run openchain with mongodb, got an issue:
Unable to resolve 'Openchain.MongoDb (>= 0.1.0-alpha1)' for 'DNX,Version=v4.5.1'

same

+1

@bathie007 @maurodelazeri have you guys ever figured it out?

@karneaud I did not try fix it, but i think is the only way

@maurodelazeri  you should try multi chain.... much more reliable

@karneaud are u using it? idk much about MultiChain yet... i ll check it out

The MongoDB module is a community contribution and is maintained by @fluce. It hasn't been updated to run with Openchain 0.7.
At the moment, I recommend using either the Sqlite storage or the SQL Server storage.

I've updated the package to work with the latest version.
You can pull the following package from NuGet: https://www.nuget.org/packages/Openchain.MongoDb/0.2.0

@Flavien yes. thanks for this, but i'm a bit reluctant now to use openchain based on the longevity of this project. It is most definitely easier to implement than multichain( given that i had to overcome the learning curve with both frameworks) but the maintainability appears to be unreliable. what is the future like for openchain...? Thanks for updating this package

What do you mean by longevity? It's open source, anyone can submit pull requests for bugs they find or even for the code.
Multichain and Openchain are actually very different: Openchain is open source, Multichain isn't.


Ways of Increasing Speed?

I can a quick test of taking a video file, and re-encoding it to a specific file size.
Currently, the fastest I've seen it go is 0.16x. How can this be improved/sped up?
Full code:
https://gist.github.com/EladKarni/652ceb70009d5cda7fd20c9c967b21c9

I believe you got a pretty high definition video. But sadly there is no other easy ways to speed up at the moment. One possible way is to use x264 assembly capabitilities which requires migration from x86 to SIMD and it is a huge effort on going. More information here: https://github.com/ffmpegwasm/ffmpeg.wasm/issues/84

Thanks for responding!
Just figured I'd ask. It takes me 4min to re-encode a 21 second video and I was just wondering if I did something wrong. I'm making a simple tool that let's you re-encode videos into smaller file sizes so it is possible to upload to places like Discord. Sadly, due to the nature of the app, most videos coming in will be of a higher quality.

https://emscripten.org/docs/porting/simd.html
it's not simple as flippiner the -msse flag?


feature request: validators.uri()

it may be worth adding a separate method, validators.uri()
https://en.wikipedia.org/wiki/Uniform_Resource_Identifier
validators.url() could then be validators.uri.url() (while retaining validators.url() for backwards compatibility).
this would also allow file paths to be validated, e.g.
validators.uri.file('file:///tmp/file.txt')
IRC connections:
validators.uri.irc('irc://irc.freenode.org:6667/#somechannel
etc.
For official specification, see RFC3986 § 3.

An URI validator would be great.


[SPARK-15887][SQL] Bring back the hive-site.xml support for Spark 2.0

What changes were proposed in this pull request?
Right now, Spark 2.0 does not load hive-site.xml. Based on users' feedback, it seems make sense to still load this conf file.
This PR adds a hadoopConf API in SharedState, which is sparkContext.hadoopConfiguration by default. When users are under hive context, SharedState.hadoopConf will load hive-site.xml and append its configs to sparkContext.hadoopConfiguration.
When we need to read hadoop config in spark sql, we should call SessionState.newHadoopConf, which contains sparkContext.hadoopConfiguration, hive-site.xml and sql configs.
How was this patch tested?
new test in HiveDataFrameSuite

cc @yhuai @liancheng

Test build #60321 has started for PR 13611 at commit 02e7dcb.

Test build #60321 has finished for PR 13611 at commit 02e7dcb.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/60321/
Test PASSed.

Test build #60346 has started for PR 13611 at commit 3c6b9fd.

Test build #60346 has finished for PR 13611 at commit 3c6b9fd.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/60346/
Test FAILed.

Can we also add a test in sql/hive to make sure that confs in hive-site.xml file get propagated into metadataHive's hiveConf (HiveClientImpl has a getConf method, which can be used to check if the conf we set in the test is set in the hiveConf)?

Test build #60410 has started for PR 13611 at commit 99baba0.

Test build #60410 has finished for PR 13611 at commit 99baba0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/60410/
Test PASSed.

Test build #60422 has started for PR 13611 at commit 8b53b22.

LGTM pending jenkins.

Test build #60422 has finished for PR 13611 at commit 8b53b22.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/60422/
Test PASSed.

Thanks. Merging to master and branch 2.0.


"abriged" should be "abridged"

"abriged atomic weights, the isotopic abundance and the isotopes standard atomic weights"
should be
"abridged atomic weights, the isotopic abundance and the isotopes' standard atomic weights"
adding a "d" and an apostrophe. I added your project to my list https://github.com/Beliavsky/Fortran-code-on-GitHub/blob/main/README.md

Thanks!


Should we/do we support checking out commits?

Perhaps? https://www.atlassian.com/git/tutorials/undoing-changes/git-checkout has some good thoughts on it. When you do git checkout , it's read-only
Also, you can do git checkout   to checkout a single file from a commit, NOT read-only


Combining at-rest encryption with uniqueness constraint for a type: 'number' attribute

Sails version: 1.0.0
Node version: v8.2.1, v8.11.0
NPM version: 5.8.0
DB adapter name: sails-mongo
DB adapter version: 1.0.0
Operating system: Mac OS X v10.13.3

I am experiencing a concrete technical issue (aka a bug) with Sails
When I use unique: true and encrypt: true  validation rules together in my Users model. It's creating duplicate records each time I call /users/create?mobile=9876543210.
You can reproduce this issue following below code.
File Name: /config/models.js

module.exports.models = {
    schema: true,
    migrate: 'safe',
    attributes: {
      createdAt: { type: 'number', autoCreatedAt: true, },
      updatedAt: { type: 'number', autoUpdatedAt: true, },
      id: { type: 'string', columnName: '_id' }
    }
}

File Name: /api/models/Users.js

module.exports = {

  attributes: {
     mobile: {
        type: 'number',
        unique: true,
        encrypt: true
     }
}

#1
URL: /users/create?mobile=9876543210
Response :
  {
    "createdAt":<PHONE_NUMBER>395,
    "updatedAt":<PHONE_NUMBER>395,
    "id": "5abde4214663bafb2a40088b",
    "mobile": "YWVzLCK1Ni1nY20kJGRlZmF1bHQ=$Of0J4L5XcLUQtb4b$aYpVysmIF5acrg==$tAZiRmnCK8DKqnr6ntP6XA"
  }

#2
URL: /users/create?mobile=9876543210
Response :
  {
    "createdAt":<PHONE_NUMBER>183,
    "updatedAt":<PHONE_NUMBER>183,
    "id": "5abde8ce7478e0fb5d018cad",
    "mobile": "YWVzLCK1Ni1nY20kJGRlZmF1bHQ=$65Pl0jciFPqtgsNr$0uV4vcO6EgLWdg==$tAZiRmnCK8DKqnr6ntP6XA"
  }

This warning message is not appearing when I use `type: 'string'`.

Warning: After transforming columnNames back to attribute names for model `users`,
 a record in the result has a value with an unexpected data type for property `mobile`.
The corresponding attribute declares `type: 'number'` but instead
of that, the actual value is:

'YWVzLCK1Ni1nY20kJGRlZmF1bHQ=$Of0J4L5XcLUQtb4b$aYpVysmIF5acrg==$tAZiRmnCK8DKqnr6ntP6XA'

> You are seeing this warning because there are records in your database that don't
> match up with your models.  This is often the result of a model definition being
> changed without also migrating leftover data.  But it could also be because records
> were added or modified in your database from somewhere outside of Sails/Waterline
> (e.g. phpmyadmin, or another app).  In either case, to make this warning go away,
> you have a few options.  First of all, you could change your model definition so
> that it matches the existing records in your database.  Or you could update/destroy
> the old records in your database; either by hand, or using a migration script.
>
> (For example, to wipe all data, you might just use `migrate: drop`.)
>
> More rarely, this warning could mean there is a bug in the adapter itself.  If you
> believe that is the case, then please contact the maintainer of this adapter by opening
> an issue, or visit http://sailsjs.com/support for help.

Warning: After transforming columnNames back to attribute names for model `users`,
 a record in the result has a value with an unexpected data type for property `mobile`.
The corresponding attribute declares `type: 'number'` but instead
of that, the actual value is:

'YWVzLCK1Ni1nY20kJGRlZmF1bHQ=$Of0J4L5XcLUQtb4b$aYpVysmIF5acrg==$tAZiRmnCK8DKqnr6ntP6XA'

> You are seeing this warning because there are records in your database that don't
> match up with your models.  This is often the result of a model definition being
> changed without also migrating leftover data.  But it could also be because records
> were added or modified in your database from somewhere outside of Sails/Waterline
> (e.g. phpmyadmin, or another app).  In either case, to make this warning go away,
> you have a few options.  First of all, you could change your model definition so
> that it matches the existing records in your database.  Or you could update/destroy
> the old records in your database; either by hand, or using a migration script.
>
> (For example, to wipe all data, you might just use `migrate: drop`.)
>
> More rarely, this warning could mean there is a bug in the adapter itself.  If you
> believe that is the case, then please contact the maintainer of this adapter by opening
> an issue, or visit http://sailsjs.com/support for help.

URL: /users/find
Response :
    [{
      "id": "5abde4214663bafb2a40088b",
      "mobile":<PHONE_NUMBER>
    },
    {
      "id": "5abde8ce7478e0fb5d018cad",
      "mobile":<PHONE_NUMBER>
    }]

Have a look..

Hi @chandradeochakravarti, thanks for posting.  We hadn't anticipated anyone trying to do this, so I'm glad you're bringing it up.  The at-rest encryption in Waterline is not designed to be used with anything that you want to query on-- and it also wasn't designed to be coupled with uniqueness constraints.
Whether it would actually work or not is neither here nor there, though, because it seems like something else more pressing is coming up first: encrypt: true was really only designed to be used with strings.  It should hypothetically work with numbers as long as you set a string columnType, but I don't think that'll get rid of those warnings.
Short term solution:
Change it to a string and drop the unique constraint
Long term solution:
I'll take a look at what we can do to better handle encrypt: true, type: 'number' by default.  It's possible we can provide better automigration inferences on a per-adapter basis in order to still allow everything to work transparently without making you dive into physical-layer details.

https://trello.com/c/tukMDYSf

Hi, @mikermcneil Thank you for your reply, I got below warning message after lifting sails with --silly option.
Also, I'm getting the same issue using type: 'string' with unique: true and encrypt: true.
Warning: After transforming columnNames back to attribute names for model `users`,
 a record in the result has a value with an unexpected data type for property `mobile`.
The corresponding attribute declares `type: 'number'` but instead
of that, the actual value is:

'YWVzLTI1Ni1nY20kJGRlZmF1bHQ=$mYwZ6j1tGa4m1pWO$+cKUVI9LiP3tfQ==$XY7Q2MjkWLyjXjnnyUQOig'

> You are seeing this warning because there are records in your database that don't
> match up with your models.  This is often the result of a model definition being
> changed without also migrating leftover data.  But it could also be because records
> were added or modified in your database from somewhere outside of Sails/Waterline
> (e.g. phpmyadmin, or another app).  In either case, to make this warning go away,
> you have a few options.  First of all, you could change your model definition so
> that it matches the existing records in your database.  Or you could update/destroy
> the old records in your database; either by hand, or using a migration script.
>
> (For example, to wipe all data, you might just use `migrate: drop`.)
>
> More rarely, this warning could mean there is a bug in the adapter itself.  If you
> believe that is the case, then please contact the maintainer of this adapter by opening
> an issue, or visit http://sailsjs.com/support for help.

Warning: After transforming columnNames back to attribute names for model `users`,
 a record in the result has a value with an unexpected data type for property `mobile`.
The corresponding attribute declares `type: 'number'` but instead
of that, the actual value is:

'YWVzLTI1Ni1nY20kJGRlZmF1bHQ=$mYwZ6j1tGa4m1pWO$+cKUVI9LiP3tfQ==$XY7Q2MjkWLyjXjnnyUQOig'

> You are seeing this warning because there are records in your database that don't
> match up with your models.  This is often the result of a model definition being
> changed without also migrating leftover data.  But it could also be because records
> were added or modified in your database from somewhere outside of Sails/Waterline
> (e.g. phpmyadmin, or another app).  In either case, to make this warning go away,
> you have a few options.  First of all, you could change your model definition so
> that it matches the existing records in your database.  Or you could update/destroy
> the old records in your database; either by hand, or using a migration script.
>
> (For example, to wipe all data, you might just use `migrate: drop`.)
>
> More rarely, this warning could mean there is a bug in the adapter itself.  If you
> believe that is the case, then please contact the maintainer of this adapter by opening
> an issue, or visit http://sailsjs.com/support for help.

     : Published message to  sails_model_create_users :  { verb: 'created',
  data:
   { createdAt:<PHONE_NUMBER>219,
     updatedAt:<PHONE_NUMBER>219,
     id: '5abf1b8bdac501ff5ebc8f0d',
     mobile: 'YWVzLTI1Ni1nY20kJGRlZmF1bHQ=$mYwZ6j1tGa4m1pWO$+cKUVI9LiP3tfQ==$XY7Q2MjkWLyjXjnnyUQOig' },
  id: '5abf1b8bdac501ff5ebc8f0d' }

@chandradeochakravarti hmm that's strange-- I notice in the error message it still mentions that your mobile attribute is type: 'number'.  Could it be using an old model definition or something?

@mikermcneil The above warning message is appearing only with type: number. type: string is not showing any warning message.

Hi @chandradeochakravarti I am happy to see you were able to move past the issue. I am currently cleaning the Sails issues that appear to be resolved. Please feel free to open another issue if the need arises.


Address the collective-specific env var such as A2ATIMINGFLAGS

We are still using environment variables such as A2ATIMINGFLAGS. This should be renamed or moved the collective-specific code.

The only one left is A2A_PROFILING_OUTPUT_DIR


Updated bootstrap to 4.0.0-beta

Fixes: #1112

Codecov Report

Merging #1113 into master will increase coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1113      +/-   ##
==========================================
+ Coverage   63.65%   63.67%   +0.01%
==========================================
  Files         106      106
  Lines        5869     5869
  Branches      729      729
==========================================
+ Hits         3736     3737       +1
  Misses       1994     1994
+ Partials      139      138       -1

Impacted Files
Coverage Δ

saleor/core/utils/random_data.py
83.98% <0%> (+0.39%)
:arrow_up:

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 02da74d...314e996. Read the comment docs.

@dominik-zeglen Please link to any related issues when opening a pull request, this time I've edited the original comment for you.