clarification regarding composer.json requirement

I'm not sure why a composer.json file is needed for compiling PHP extensions written in pure C or C++.
I see what the composer.json code part does (get the needed PHP version), but that makes not much sense, because composer is (generally) not part of a C toolchain.
Normally you have config.w32 files as only config files.
https://github.com/DanielRuf/php-spx/actions/runs/10759187217/job/29835547179

Hi @DanielRuf
composer.json is not required if you want to just use this action as in the workflow you can specify everything as inputs to the action.
It supports reading them from composer.json also as you might consider adding that to add support for the new pie tool.
https://github.com/php/pie/blob/main/docs/extension-maintainers.md


Create loan contract prototype

The loan contract is essentially an extension of openzeppelin crowdsale contracts that takes in a loan token rather than either.

Parameters are defined on creation
Only 1 loan currency is accepted (that is defined at creation) [this could be expanded without too much work]
There is a hard cap
Once the cap is reached, the money can be withdrawn
There can be a kickstarter-style time limit

Next work:

Finish the prototype.
Use logic proxy for the LoanRequests to dramatically save deployment costs.
Write the basic tests.

From the smart contract, I see ETH is not accepted as a payment method. I think that helps keep the authenticity of the loan agreement, and makes the loans not attractive for arbitrage seekers.
But, I think we could have more than one token accepted as payment method, but I can see how that adds complexity, especially since we would like to create a MVP first.

From the smart contract, I see ETH is not accepted as a payment method. I think that helps keep the authenticity of the loan agreement, and makes the loans not attractive for arbitrage seekers.
But, I think we could have more than one token accepted as payment method, but I can see how that adds complexity, especially since we would like to create a MVP first.
I'll look into adding tests, on the contract, and any optimization that comes to mind

I think we might consider removing functions from the crowdsale that use Ether or at least convert them to only signatures, since we will not be using Ether in the whole system. This will cost down on gas everywhere, as well as possibility of errors
Any particular reason for this event: https://github.com/onggunhao/enable/blob/our-contracts/contracts/LoanRequest.sol#L58

I see we do not really have contract logic yet,
What do you have in mind?

I can see adding more than one token being pretty straitforward, we're just trading ownership tokens for ERC20 transfers at a certain rate per token, but I agree that getting the MVP out first is more important.
Agreed with removing functions, I just started hacking on top of the openzeppelin crowdsale. I actually had to make some changes to the base contract to handle token payments rather than either, so the whole clean inheritance from existing libraries is kind of moot.
No particular reason for that created event, it's a holdover from before I wrote the factory.

One thing I'm interested in discussing is the repayments array - where the required payment for each pay period is preloaded into the contract. I wanted to minimize calcuation on-chain, but on-chain may be the way to go as opposed to using all this storage, especially as we've settled on a simple type of loan.

I dealt with something similar to this in my Crypto-will product:
https://github.com/adibas03/crypto-will
https://github.com/adibas03/crypto-will/blob/master/contracts/Will.sol#L178
https://github.com/adibas03/crypto-will/blob/master/contracts/Will.sol#L67
In the end, I resolved to doing a minimalist add and divide calculation on chain to ensure errors or intentional skips were accounted for. But, to make this work, we need to store the nextRepayment which will be a uint of the index of the array to be paid next.
I will code this up, and we can optimize, for omissions and unnecessary additions.

Also, looking through the updates:
https://github.com/onggunhao/enable/blob/loan-tenor-units/contracts/LoanRequest.sol#L22
Do we really want TenorsUnits, when we can just make our calculations in seconds, and that means we do not need to do any more calculation, when trying to check for if repayment is due. Using tenors, mean we have to account for the selected tenor. We can always do the Tenor calculation on the fronted using libraries like moment.js
without TenorUnits
    struct Loan {
        ...
        uint private nextRepayment;
        uint private repaymentTenor; //Repayment tenor  in seconds
    }

function internal _getRepaymentTimestamp (uint repayment) returns (uint) {
    return (repayment+1) * loan.repaymentTenor;
}

isRepaymentDue () {
    ...
    return now >= _getRepaymentTimestamp(loan.nextRepayment);
}

with TenorUnits
    struct Loan {
        ...
        uint private nextRepayment;
        uint private repaymentTenor; //Repayment tenor  in TenorUnits
        TenorUnits tenorUnit
    }

    enum TenorUnits {
        DAYS, WEEKS, MONTHS, YEARS
    }

function internal _getRepaymentTimestamp (uint repayment) returns (uint) {
    uint multiplier;
    if (loan.tenorUnit == TenorUnits.DAYS) {
        multiplier = 86400;// seconds in a day: '1 days' is also supported by solidity
    } else if (loan.tenorUnit == TenorUnits.WEEKS) {
        multiplier = 604800;// seconds in a week: '1 weeks' is also supported by solidity
    } else if (loan.tenorUnit == TenorUnits.MONTHS) {
        multiplier = 2592000;// seconds in a '30 day' month: Not supported by solidity
    } else if (loan.tenorUnit == TenorUnits.YEARS) {
        multiplier = 31536000;// seconds in a year: Not supported by solidity
    }
    return (repayment+1) * (loan.repaymentTenor * multiplier);
}

isRepaymentDue () {
    ...
    return now >= _getRepaymentTimestamp(nextRepayment);
}

@tspoff mini repayment logic implemented: #22

Removing the tenor units sounds good to me.

Archiving discussion


fix password login with a blank username

my transmission username is a blank string and the loose check caused it to fail login every time

Doing it this way worked for you?
When testing an empty username, I can't access it at all, using 'username' in options or how it is currently. I can't even access Transmissions own web interface with an empty username.

Closing as old.


Performance compare

Would be interesting to compare performance with https://github.com/margelo/react-native-nitro-sqlite.

PRs are welcome, all the benchmark code is in the example app, so it should only be a matter of adding nitro-sqlite and doing the large query.

Got curious decided to try it, I had to create a new expo app since it seems nitro doesn't work with yarn workspaces in the example app. However, the results are as I expected, nothing will be faster than binding directly to JSI C++ code:


rename this cookbook

k8s is not the best name for the overall intent of this cookbook and implies that people will understand the shortname

the cookbook was renamed and released under the new name to the supermarket with a deprecation notice on the existing k8s cookbook


allow setting namespace for helm chart

This is based on cert-manager's helm chart override and resolves #145

This should fix #198

This addresses #198

@vinny-sabatini, thanks for looking into this. I believe this PR should resolve https://github.com/cert-manager/trust-manager/issues/145? Can you please add a proper description to the PR?

/retest

/assign @SgtCoDFish @inteon


chore(deps): update vaultwarden/server docker tag to v1.32.2 - abandoned

This PR contains the following updates:

Package
Update
Change

vaultwarden/server
minor
1.31.0 -> 1.32.2

Release Notes

dani-garcia/vaultwarden (vaultwarden/server)
v1.32.2
Compare Source
Notable changes

Fixed collection management for managers

What's Changed

Fix compiling for Windows targets by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/5053
Updates and collection management fixes by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/5072
Fix --version from failing without config by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/5055

Full Changelog: https://github.com/dani-garcia/vaultwarden/compare/1.32.1...1.32.2
v1.32.1
Compare Source
Notable changes

Fixed syncing/login with native mobile clients
Added CLI option to backup SQLite database
Email Template changes regarding invites, 2FA Incomplete logins, and new logins

What's Changed

Update GitHub Action Workflows by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4849
Fix Duo Redirect not using path by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4862
Fix manager in web-vault v2024.6.2 for collections by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4860
Update email footer padding values by @dfunkt in https://github.com/dani-garcia/vaultwarden/pull/4838
Remove unecessary email normalization by @Timshel in https://github.com/dani-garcia/vaultwarden/pull/4840
Fix Vaultwarden Admin page error messages by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4869
Update issue template by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4876
remove overzealous sanity check by @stefan0xC in https://github.com/dani-garcia/vaultwarden/pull/4879
Fix Login with device by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4878
Switch to Whitelisting in .dockerignore by @Timshel in https://github.com/dani-garcia/vaultwarden/pull/4856
Remove version from server config info by @zacknewman in https://github.com/dani-garcia/vaultwarden/pull/4885
Update issue template by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4882
Update crates (GHSA-wq9x-qwcq-mmgf) by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4889
Updated security readme by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4892
Allow custom umask setting by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4896
Allow Org Master-Pw policy enforcement by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4899
Allow enforcing Single Org with pw reset policy by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4903
Add a CLI feature to backup the SQLite DB by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4906
Update web-vault, crates and gha by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4909
Add orgUserHasExistingUser parameters to org invite by @Timshel in https://github.com/dani-garcia/vaultwarden/pull/4827
Update Rust version & crates by @dfunkt in https://github.com/dani-garcia/vaultwarden/pull/4928
Fix sync with new native clients by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4932
Fix collection update from native client by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4937
fix invitation link via /admin by @stefan0xC in https://github.com/dani-garcia/vaultwarden/pull/4950
Fix Pw History null dates by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4966
fix 2fa policy check on registration by @stefan0xC in https://github.com/dani-garcia/vaultwarden/pull/4956
Actually use Device Type for mails by @dfunkt in https://github.com/dani-garcia/vaultwarden/pull/4916
remove backtics from postgresql migrations by @stefan0xC in https://github.com/dani-garcia/vaultwarden/pull/4968
Fix Device Type column for 2FA migration by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4971
Fix encrypted lastUsedDate by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4972
Fix keyword collision in Rust 2024 and add new api/config value by @dani-garcia in https://github.com/dani-garcia/vaultwarden/pull/4975
Add extra linting by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4977

New Contributors

@zacknewman made their first contribution in https://github.com/dani-garcia/vaultwarden/pull/4885

Full Changelog: https://github.com/dani-garcia/vaultwarden/compare/1.32.0...1.32.1
v1.32.0
Compare Source
Security Fixes
This release has several CVE Reports fixed and we recommend everybody to update to the latest version as soon as possible.

CVE-2024-39924 Fixed via #4715
CVE-2024-39925 Fixed via #4837
CVE-2024-39926 Fixed via #4737

Other changes

Updated web-vault to v2024.6.2
Fixed issues with password reset enrollment by rolling back a web-vault commit

What's Changed

use a custom plan of enterprise tier to fix limits by @stefan0xC in https://github.com/dani-garcia/vaultwarden/pull/4726
chore: Dockerfile to Remove port 3012 by @calvin-li-developer in https://github.com/dani-garcia/vaultwarden/pull/4725
Fix bug where secureNotes is empty by @cobyge in https://github.com/dani-garcia/vaultwarden/pull/4730
Improved HTTP client by @dani-garcia in https://github.com/dani-garcia/vaultwarden/pull/4740
Update admin interface by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4737
Fix for RSA Keys which are read only by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4744
Fix Email 2FA login on native app by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4762
Update crates & fix crate vulnerability by @dfunkt in https://github.com/dani-garcia/vaultwarden/pull/4771
Fix Dockerfile linter warnings by @dfunkt in https://github.com/dani-garcia/vaultwarden/pull/4763
allow re-invitations of existing users by @stefan0xC in https://github.com/dani-garcia/vaultwarden/pull/4768
Allow to override log level for specific target by @Timshel in https://github.com/dani-garcia/vaultwarden/pull/4305
Add support for MFA with Duo's Universal Prompt by @0x0fbc in https://github.com/dani-garcia/vaultwarden/pull/4637
Allow to increase the note size to 100_000 by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4772
Update Rust, Crates and GHA by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4783
Duo: use the formatted db email by @Timshel in https://github.com/dani-garcia/vaultwarden/pull/4779
Update rust-toolchain.toml to 1.80.0 by @dfunkt in https://github.com/dani-garcia/vaultwarden/pull/4784
fix issue with adding ciphers to organizations on native ios app by @stefan0xC in https://github.com/dani-garcia/vaultwarden/pull/4800
Rewrite the Push Notifications section in the configuration template by @dfunkt in https://github.com/dani-garcia/vaultwarden/pull/4805
Secure send file uploads by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4810
make access_all optional by @stefan0xC in https://github.com/dani-garcia/vaultwarden/pull/4812
Remove lowercase conversion for featureStates by @dfunkt in https://github.com/dani-garcia/vaultwarden/pull/4820
Fix mail::send_incomplete_2fa_login panic issue by @dfunkt in https://github.com/dani-garcia/vaultwarden/pull/4792
Update crates, web-vault and fixes by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4823
Updated web-vault to v2024.6.2b by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4826
Update Rust to 1.80.1 by @dfunkt in https://github.com/dani-garcia/vaultwarden/pull/4831
Fix data disclosure on organization endpoints by @BlackDex in https://github.com/dani-garcia/vaultwarden/pull/4837

New Contributors

@cobyge made their first contribution in https://github.com/dani-garcia/vaultwarden/pull/4730
@0x0fbc made their first contribution in https://github.com/dani-garcia/vaultwarden/pull/4637

Full Changelog: https://github.com/dani-garcia/vaultwarden/compare/1.31.0...1.32.0

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Autoclosing Skipped
This PR has been flagged for autoclosing. However, it is being skipped due to the branch being already modified. Please close/delete it manually or report a bug if you think this is in error.


Options not working

I saw https://github.com/NightCatSama/vue-slider-component/issues/110
and made like this, but slider not working
See https://jsfiddle.net/2xy72dod/5384/
if you comment v-data="settings" and uncomment :min="1" and :max="10" - slider is working
What is it?

You are missing one >.


Pushback for not-root urls does not work

I have the following url for my project: http://localhost:1337/project/public
If i declare my routes with this schema:
router.map({
  '/test': {
    component: 'test'
  },

  '/other': {
    component: 'other'
  }
});

and my navigation:
TEST
OTHER

it redirects me to http://localhost:1337/other. So, if i change the routes wit ./, it works with my url, but when i go back in browserhistory, nothing happens in my view:
router.map({
  './test': {
    component: 'test'
  },

  './other': {
    component: 'other'
  }
});

TEST
OTHER

You can pass in the root options:
var router = new Router({
  root: '/project/public'
})


chromium 71 backport to stable

Issue description
This commit https://github.com/NixOS/nixpkgs/commit/8942a3e00c678102e1412170e44b49aa885cd955 needs to be backported ASAP, since there are lots of CVEs fixed in it. Problem is: We switched the build to clang 7 on master, and clang 7 doesn't seem to be in stable. Can we get clang 7 in stable, somehow, or is it better to keep scraping for gcc patches, until 18.09 is phased out?
Steps to reproduce
build chromium from that commit, cherry-picked onto release-18.09 https://github.com/bendlas/nixpkgs/commit/fac4e364eeca71830aaae4a703ba8e2760500897
FAILED: obj/components/google/core/common/common/google_util.o
g++ -MMD -MF obj/components/google/core/common/common/google_util.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -DCR_LIBCXX_REVISION=332543 -DCR_LIBCXXABI_REVISION=331450 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -I../.. -Igen -Igen/shim_headers/zlib_shim -Igen/shim_headers/libpng_shim -Igen/shim_headers/libwebp_shim -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -I../../third_party/boringssl/src/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -pthread -m64 -march=x86-64 -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-comments -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fno-builtin-abs -fvisibility=hidden -I/nix/store/kkczf0s9g04f5sfiwzd7y0f0qj0hkrgw-glib-2.56.0-dev/include/glib-2.0 -I/nix/store/yh447r6mqpa6i047i46bplzii98l3rdy-glib-2.56.0/lib/glib-2.0/include -I/nix/store/ayqlbmkkdaq697gs8xqjzjh0pd8529id-nspr-4.19-dev/include -I/nix/store/vgw83k7p0cr51g1mkh01had81dzqfrbg-nss-3.39-dev/include/nss -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include -fvisibility-inlines-hidden -c ../../components/google/core/common/google_util.cc -o obj/components/google/core/common/common/google_util.o
../../components/google/core/common/google_util.cc: In function 'bool google_util::{anonymous}::IsCanonicalHostGoogleHostname(base::StringPiece, google_util::SubdomainPermission)':
../../components/google/core/common/google_util.cc:120:24: error: call of overloaded 'NoDestructor(<brace-enclosed initializer list>)' is ambiguous
       {GOOGLE_TLD_LIST});
                        ^

Switching back to clang 6 doesn't work either https://github.com/bendlas/nixpkgs/commit/35b18e787d220a55dca2f2f7789ff2601a556c1c
[2/586] CXX obj/buildtools/third_party/libc++/libc++/algorithm.o
FAILED: obj/buildtools/third_party/libc++/libc++/algorithm.o
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/buildtools/third_party/libc++/libc++/algorithm.o.d -D_LIBCPP_BUILDING_LIBRARY -D_LIBCPP_OVERRIDABLE_FUNC_VIS=__attribute__\(\(__visibility__\(\"default\"\)\)\) -DLIBCXX_BUILDING_LIBCXXABI -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DCR_CLANG_REVISION=\"344066-1\" -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -DCR_LIBCXX_REVISION=332543 -DCR_LIBCXXABI_REVISION=331450 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -Xclang -mllvm -Xclang -instcombine-lower-dbg-declare=0 -no-canonical-prefixes -fcomplete-member-pointers -m64 -march=x86-64 -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -fstrict-aliasing -fPIC -Wall -Wno-unused-variable -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-declaration -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-user-defined-warnings -Wno-unused-lambda-capture -Wno-null-pointer-arithmetic -Wno-enum-compare-switch -Wno-ignored-pragma-optimize -Wno-defaulted-function-deleted -std=c++14 -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include -fvisibility-inlines-hidden -fexceptions -frtti -c ../../buildtools/third_party/libc++/trunk/src/algorithm.cpp -o obj/buildtools/third_party/libc++/libc++/algorithm.o
clang++: error: unknown argument: '-fcomplete-member-pointers'

@volth @aszlig @YorikSar @domenkozar
Technical details

system: "x86_64-linux"
host os: Linux 4.19.2, NixOS, 19.03pre-git (Koi)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.1.3
channels(root): "nixos-15.09.636.8c44b45"
nixpkgs: /etc/nixos/pkgs

@bendlas: Geesh.... how much churn would adding clang 7 be in comparison of doing GCC patches? Also, could clang 7 be backported in a way so the change only affects Chromium?

Cc: @dtzWill, who introduced clang 7

how much churn would adding clang 7 be in comparison of doing GCC patches?

As you yourself probably remember, GCC patches are doable, if somewhat of a hassle, and how many more chromium releases could there be anyway, before next nixos stable? If we were to go that route, I'll be switching master back to gcc as well for now (sorry, @volth).
OTOH, nixos is supposed to be good at stuff like doing a custom clang 7. What I don't know, though, is the impact on hydra and whether we can afford it.

Adding new packages to stable is OK.

Adding new packages to stable is OK.

Awesome! I've read it to late, so I've already scraped up the patch, this time. But in this case, I won't switch master back to gcc, but instead try to backport clang7 to release-18.09


Artifactory support

It's always been hard to figure out how to refer to these in conversations, but I've largely taken to calling them "artifactories" or an "artifactory" for one. Termed after JFrog's project (I'm sure I'll catch some flack for this later on), an artifactory is a repository for build artifacts. They often host both published library code as well as other deployable artifacts. For the purpose and scope of this ticket, we will consider the following artifactories in scope:

JFrog Artifactory
Sonatype Nexus
Helm Chart Repositories

In order to process artifactories, we often need to pull a list of artifacts, download targz, unpack them, and walk the underlying structure.. Some languages, like Java, host their pom.xml files as separate artifacts in an of themselves.

Missed this somehow, but it's got a lot of good links: https://github.com/depscloud/depscloud/issues/7


How to run on CPU?

I have GPU, I'm running the code on it very well, but I want to see how does it work on CPU. Is there a "no gpu" option?

I think it depends on tensorflow version. install cpu version tensorflow instead of tensorflow-gpu.

Just add two lines if u use a gpu version of tensorflow
import os
os.environ["CUDA_VISIBLE_DEVICES"]="-1"


Add new Function New-PSOneQRCodeText and some more things

Added a private function New-PSOneQRCode
Added a public function New-PSOneQRCodeText
Update README.md (add Command Overview)
Update Aliases (New-QRCodeText)
Changed comparison  of $null to the left side  (https://poshadmin.de/?p=1384, https://evotec.xyz/the-curious-case-of-null-should-be-on-the-left-side-of-equality-comparisons-psscriptanalyzer/)

Ping @TobiasPSP

Can confirm this works well. Needed to pull the code from this PR to generate some QR codes from Base64 strings.
Good work @T0biii 👍

@Windos Thanks I hope @TobiasPSP can merge it and publish it in the PowerShell Gallery

Thanks for adding this @T0biii, works great and hope to see it on the Gallery soon @TobiasPSP

Sorry for the delay guys!


Getting error SEVERE: Cannot read JBIG2 image: jbig2-imageio is not installed

Describe the bug
A clear and concise description of what the bug is.
I'm getting the following stack trace error when running pdftotree on a PDF that contains scientific chemical information:
SEVERE: Cannot read JBIG2 image: jbig2-imageio is not installed
[DEBUG] pdftotree.TreeExtract - Tabula recognized 0 table(s).
Traceback (most recent call last):
  File "/opt/anaconda3/envs/noble_app_env/bin/pdftotree", line 94, in <module>
    args.visualize,
  File "/opt/anaconda3/envs/noble_app_env/lib/python3.7/site-packages/pdftotree/core.py", line 66, in parse
    pdf_html = extractor.get_html_tree()
  File "/opt/anaconda3/envs/noble_app_env/lib/python3.7/site-packages/pdftotree/TreeExtract.py", line 319, in get_html_tree
    page.appendChild(table_element)
  File "/opt/anaconda3/envs/noble_app_env/lib/python3.7/xml/dom/minidom.py", line 114, in appendChild
    if node.nodeType == self.DOCUMENT_FRAGMENT_NODE:
AttributeError: 'NoneType' object has no attribute 'nodeType'

I've installed the latest Java version for Mac OS X. pdftotree seems to work just fine on simple PDFs. I've also haven't been able to figure out how to even attempt trying to install jbig2-imageio manually. I'm not familiar with how to install that JAR file into the pdftotree installation
To Reproduce
Steps to reproduce the behavior:

Install the Java JDK for Mac OSK
Install ImageMagick with brew
Attempt to run hOCR extraction with pdftotree on a file with chemical molecule images

Expected behavior
A clear and concise description of what you expected to happen.
For the proper hOCR output to be generated and for the command to execute successfully
Error Logs/Screenshots
If applicable, add error logs or screenshots to help explain your problem.
Environment (please complete the following information):

OS: Mac OS X 10.15
pdftotree Version: [e.g. v0.5.0]
pdfminer.six Version: [e.g. 20201018]

Additional context
Add any other context about the problem here.

Same here, any updates on this?


Render URL of external service

If a external service or ingress has been created render the external HTTP(S) URL in slack

@hwinkel 👍 Would you mind to send us a PR for that ?


Improve handling of low battery on Mac

I ran into this situation yesterday and wanted to share my experience.
My configuration is basically vanilla local development, default VirtualBox boot2docker VM, using Toolbox 1.8.1b on OSX 10.10.4 on a MacBookAir6,2.
I was working on a prototype web app local to my Mac using my standard tools: compose, text editor, etc. Since I was outside and had been all day the battery on my got much lower than normal.
While in mid-code edit my containers disappeared without warning. After a few minutes of head-scratching I realized that the VirtualBox VM had auto-suspended:
$ docker-machine ls
NAME      ACTIVE   DRIVER         STATE     URL   SWARM
default            virtualbox     Saved

According to VBox.log this is because my host battery was getting critically low:
21:34:04.302612 Console: Machine state changed to 'Saving'
21:34:04.427705 Saving state of VM, reason 'host battery low'
21:34:04.431507 Changing the VM state from 'RUNNING' to 'SUSPENDING'
21:34:04.505056 PDMR3Suspend: 70 681 420 ns run time
21:34:04.505108 Changing the VM state from 'SUSPENDING' to 'SUSPENDED'
21:34:04.505808 Changing the VM state from 'SUSPENDED' to 'SAVING'

By default VirtualBox automatically suspends VMs when the battery reaches critical level. ( https://www.virtualbox.org/ticket/9925) I suspect auto-suspend is to avoid potential VM corruption in the event of total power loss but as some folks on the VirtualBox ticket point out, the default behaviour is conservative but surprising especially in head-less use-cases such as docker.
Suggestions for possible improvements:

Investigate the pros and cons of the setting VBoxManage setextradata "<vm name>" "VBoxInternal2/SavestateOnBatteryLow" 0"  by default. (https://www.virtualbox.org/manual/ch09.html#hostpowertweaks)

Make it more obvious that bad things are happening. I don't know if the docker-machine architecture could support something like "docker-machine logs" in preference to a machine status polling loop hack?

I could just do something host-side to make this scary condition more scary. For example: http://hints.macworld.com/article.php?story=20110219013713667

The irony of this exercise is as soon as VirtualBox suspends the condition that triggered the warning (10 minutes of estimated battery remaining) goes away because VirtualBox stops burning through CPU. This just makes the expected behaviour extra confusing.
Thanks to @nathanleclaire for encouraging me to write this up.

Thanks for the report @nomisbeme !  It will help us to improve this in the future.

This also confused me the first time it happened. I am not about to upgrade to Docker for Mac, so will be running virtualbox for longer, and would be nice to not have it auto close.


@children not populated by the time attached is called

I'm submitting a bug report

Library Version:
1.0.0

Operating System:
OSX 10.x|Linux (distro)|Windows [7|8|8.1|10] (all)

Node Version:
6.3.0

NPM Version:
3.10.3

JSPM OR Webpack AND Version
JSPM 0.16.45 | webpack 2.1.0-beta.17

Browser:
works in Chrome 52.0.2743.116
appears to be broken in all other major browsers (mobile not tested)

Language:
ESNext (potentially related to babel)

Code Example:
https://github.com/mbroadst/aurelia-children-issue
Current behavior:
This is a pretty involved component using the AbstractRepeater to provide a performant grid component. The grid displays three columns, and constantly changes data every 50ms after that.
Expected/desired behavior:

What is the expected behavior?
The data displays and changes during the interval

What is actually happening?
On chrome this works as expected. On any other tested browser - but specifically Firefox - the data never displays. The reason for this appears to be that the local variable decorated with @children is not populated by the time attached is called on the parent component. This method here is the first function called in attached for the Grid, and you'll note that on Firefox the array is empty at the point the console.log(this.columns) is called. If you, on the other hand, put the contents of scrapeColumnViewFactories into a setTimeout(() => { // stuff }, 50);, the code works as expected.

It is important to note that these issues do not occur in a gist.run, only when building completely from source using the webpack skeleton. I have not tested this with the same jspm skeleton.

What is the motivation / use case for changing the behavior?
This might be expected behavior, but if it is I don't think it's properly documented. Otherwise, it might indicate an issue with the lifecycle, @children, or behavior of the task queue

Is this related to https://github.com/aurelia/templating/issues/403?

@JeroenVinke this does look very similar! Although I wasn't able to reproduce using a gist.run, so it might be slightly different. It looks the like the suggested approach moving forward is to manually find the child VMs since I'm not tracking future changes to the children, but rather scraping data from them once attached.

@JeroenVinke yep looks like the getChildVMs approach fixes my issue.. sorry for the noise here!


python310Packages.losant-rest: 1.17.2 -> 1.17.3

Diff: https://github.com/Losant/losant-rest-python/compare/v1.17.2...v1.17.3
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 224213 run on x86_64-linux 1

4 packages built:

python310Packages.losant-rest
python310Packages.losant-rest.dist
python311Packages.losant-rest
python311Packages.losant-rest.dist


Correct higher order co-moment analytics

Hi Vivek
Thanks for your package OptimalPortfolio. It created a great base structure for convex portfolio optimization in Python. However, I have improved the higher order moment analytics. Just  like you insert a covarianvce matrix for the second moment and not a vector of column wise variances, you should also use a co-skewness matrix and a co-kurtosis matrix instead of vectors of column-wise skewnesses and kurtoses.
I have implemented this modification correctly. Now there is a comoment_utility that will optimize based on these matrices.
Remark: presently, I've taken correct co-moment matrix estimation from the R package 'PerformanceAnalytics' through rpy2. A next step will be to implement these in native Python.
Best regards
Sven

Thanks for the improvement!


This template no longer works

The deployment fails with:
"Resource handler returned message: "The runtime parameter of nodejs12.x is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs18.x) while creating or updating functions. (Service: Lambda, Status Code: 400, Request ID: 0cfaea73-519e-4c9e-a57d-f983a2e2c252)" (RequestToken: 5b6cfae8-94b7-745c-c31d-f7029c02e83d, HandlerErrorCode: InvalidRequest)"

Just updated to the latest and deployed successfully. Let me know if it fix on your end.


Appropriate reset unbind to ButterKnife in Fragments

Correct binding reset in fragments when using ButterKnife.

@gusthavosouza thanks for teaching me about this!

@samtstern I appreciate that and thanks for this awesome projects!
I want to say thank you for teaching me about all this projects :)


land_polygons and water_polygons

I have done lots of changes in https://github.com/mapzen/vector-datasource/wiki/Mapzen-Vector-Tile-Service. Update, reorder and add some small missing steps. I hope I have not done big mistakes.
Nevertheless, is still missing some data when you follow only this guide. Where are from the land_polygons and water_polygons ? There are not included nor fetched.

In addition to missing these two files, running perform-sql-updates.sh throws this at the end:
psql:apply-planet_osm_polygon.sql:31: ERROR:  column "building:part" does not exist
LINE 1: ... WHERE mz_calculate_is_building_or_part(building, "building:...
^
QUERY:  CREATE INDEX planet_osm_polygon_is_building_or_part_index ON planet_osm_polygon(mz_calculate_is_building_or_part(building, "building:part")) WHERE mz_calculate_is_building_or_part(building, "building:part") = TRUE
CONTEXT:  PL/pgSQL function inline_code_block line 14 at SQL statement

@frodrigo: thanks for the changes to improve the instructions! But, it looks like you removed the loading of this data in one of your edits. Here's the diff in question:
https://github.com/mapzen/vector-datasource/wiki/Mapzen-Vector-Tile-Service/_compare/3fcc6426258989f33a222e507bcaacde3b31f568...fd6b8079f0a203a02b32f50fd7a90df1e1920ef8
The gist file linked to there downloaded the additional data and loaded it. Can you restore those steps in the instructions?
If it's confusing to ask the user to download a gist file, maybe there's another way that we can specify these steps? Maybe we include this script file in the repo itself and ask the user to run it?

I revert this change. It's was not clear to me that we have to run local script AND the external one. But, yes an integrated script will be better.


web_video_server: 0.0.6-0 in 'kinetic/distribution.yaml' [bloom]

Increasing version of package(s) in repository web_video_server to 0.0.6-0:

upstream repository: https://github.com/RobotWebTools/web_video_server.git
release repository: https://github.com/RobotWebTools-release/web_video_server-release.git
distro file: kinetic/distribution.yaml
bloom version: 0.5.23
previous version for package: null

web_video_server
* Fixed topic list to display all image topics, fixing Issue #18 <https://github.com/RobotWebTools/web_video_server/issues/18>.
* Contributors: Eric

https://github.com/RobotWebTools/web_video_server/issues/29


[backport]Fix normalization warning in F.average test

#3704

jenkins, test this please

jenkins, test this please

jenkins, test this please

jenkins, test this please

LGTM!


'Run Test' Button not responsive

Challenge http://www.freecodecamp.com/challenges/bonfire-factorialize-a-number has an issue. Please describe how to reproduce it, and include links to screenshots if possible.
When I enter the following code, I do not get a response:
function factorialize(num) {
for (i=1; i=num; i++) {
num = num * i
}
return num;
}
factorialize(10);
However, If I introduce a bug in my code, say by altering the syntax, it responds with the accurate error. For example, using 'nu' instead of 'num' on the 3rd line of code will result in the error "can't find variable: nu" in the console.

@AbuNadhrah thanks for posting this issue!
Actually your code is incorrect. I mean this part:
for (i=1; i=num; i++) {
num = num * i
}

This is an infinite loop because there is no any condition which will stop this loop. You can find more info about this bonfire in our Wiki. Please, discuss issues like this in our Gitter char room first, thanks.
Closing this issue.

Please review the Guidelines for Contributing, thank you!.


Implement the Rosetta API

Spec: https://docs.cdp.coinbase.com/rosetta/docs/welcome/

@robinbb Can we make a list of requirements for completion?


[material-ui][Menu] Scroll disappear when Menu component is opened

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
Link to live example:
Steps:

visit Material-UI Menu demo page: https://mui.com/material-ui/react-menu/
click any button
when the menu is open, the scroll in the right will disappear

Current behavior 😯
the scroll in the right will disappear when Menu is open
Expected behavior 🤔
scroll will not disappear when the Menu is open
Context 🔦
Recently, I use Material-UI to build my own blog, when I click the left top Icon Button, the page will occurs some offset.
Your environment 🌎

npx @mui/envinfo
System:
    OS: Windows 10 10.0.22621
  Binaries:
    Node: 18.17.1 - D:\env\nodejs\node.EXE
    Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 10.1.0 - D:\env\nodejs\npm.CMD
  Browsers:
    Chrome: Not Found
    Edge: Spartan (44.22621.2283.0), Chromium (117.0.2045.43)
  npmPackages:
    @emotion/react: ^11.11.1 => 11.11.1
    @emotion/styled: ^11.11.0 => 11.11.0
    @mui/icons-material: ^5.14.9 => 5.14.11
    @mui/lab: 5.0.0-alpha.145 => 5.0.0-alpha.145
    @mui/material: ^5.10.10 => 5.14.11
    @types/react: 18.2.22 => 18.2.22
    react: 18.2.0 => 18.2.0
    react-dom: 18.2.0 => 18.2.0
    typescript: 5.2.2 => 5.2.2

Are you talking about the content's scroll bar? If so, then that disappears because the content section disappears. Other than that I don't see the disappearing scroll bar you're talking about.

Are you talking about the content's scroll bar? If so, then that disappears because the content section disappears. Other than that I don't see the disappearing scroll bar you're talking about.

Sorry for my inaccurate expression, It would be better to show this effect with pictures(I can't upload the video due to network issues):
Before Menu component is opened:

When the Menu component is opened:

You can see the scroll is disappeared, and the search component in the upper right corner is offset.

Thank you for clarifying, so clicking the menu takes off the scrollbar stopping the user from scrolling while on the menu.
Unless this is supposed to happen I'll work on this issue in the afternoon.

Duplicate of #17353


Examples of hover where type expansion is not performed across files.

This is fixed in recent commits.


fix(linter): fix panic in jest/expect-expect

closes #3323

#3324  👈
main

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

Join @Boshen and the rest of your teammates on  Graphite


Confusing wording which should be changed

Describe the Issue
The difference between ES5 and ES6 construction is the removal of keyword function. The constructor in ES6 or function constructor in ES5 is invoked by a new keyword.
The wording of the question says

In ES5, we usually define a constructor function and use the new keyword to instantiate an object.

and then after code

The class syntax simply replaces the constructor function creation:

Affected Page
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/es6/use-class-syntax-to-define-a-constructor-function
Your code
NA
Expected behavior
In my experience, it should be

The class syntax simply replaces the keyword function with construction.

Screenshots

System

Device: [e.g. iPhone 6, Laptop]
OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04]
Browser: [e.g. Chrome, Safari]
Version: [e.g. 22]

Additional context
No response

I think saying that the keyword function is replaced with the keyword constructor is literally true but also not very useful of an observation.

Should we make this change? Since it's not too complicated of an update to the wording and if it only helps better someone's understanding of the material, we should make the change. But let me know what you think.

I think that this change removes the usefulness of that sentence. It should be about not what literal characters are changing on the screen but rather what those changes are accomplishing.

I think that this change removes the usefulness of that sentence. It should be about not what literal characters are changing on the screen but rather what those changes are accomplishing.

I definitely agree with this take.

I second Jeremy's stance - I don't see any need to change the verbiage here.
Thanks for opening this issue. We are closing this as "wont fix". If you think we're wrong in closing this issue, please request for it to be reopened and add further clarification. Thank you and happy coding.

Crap, never clicked the button

That said, the explanation is a bit awkward, at least in my eyes.
Perhaps something like this:
In ES5, an object can be created by defining a constructor function and using the new keyword to instantiate the object.
var SpaceShuttle = function(targetPlanet){
  this.targetPlanet = targetPlanet;
}
var zeus = new SpaceShuttle('Jupiter');

The class syntax replaces the constructor function:
class SpaceShuttle {
  constructor(targetPlanet) {
    this.targetPlanet = targetPlanet;
  }
}
const zeus = new SpaceShuttle('Jupiter');

The class syntax replaces the constructor function

I think this is the potentially confusing part. The class example has a constructor method, but I'm guessing a lot of people will think of that as a "constructor function" and thus it doesn't look like the ES5 constructor function has been replaced. I think we just need to be a little more descriptive in the explanation. Perhaps something like:

The class syntax replaces the ES5 constructor function with a constructor method:

I can make this change if we think it's worth it? Just lmk

I'm not sure why constructor is in a code block in the sentences.

In ES5, we usually define a constructor function and use the new keyword to instantiate an object.
The class syntax simply replaces the constructor function creation:

We just call it a constructor function. The constructor method used with a class and a "constructor function" are two different things. It isn't even a constructor function until it is invoked using new. It becomes a constructor function by way of invocation, not definition.
I would suggest we remove the code block and only use that with the constructor method.

As an aside, technically a class is a function.
class test {}
console.log(typeof test)// 'function'

You can even use an IIFE (not sure why you would do that).
const person = new (class {
  name = 'John';
  getName() {
    return this.name;
  }
})();

console.log(person.getName()); // John

We just call it a constructor function. The constructor method used with a class and a "constructor function" are two different things. It isn't even a constructor function until it is invoked using new. It becomes a constructor function by way of invocation, not definition.

I would suggest we remove the code block and only use that with the constructor method.

@lasjorg Thanks for the correction about the constructor function as I am new to this.
what @jeremylt reworded it is the way I think should be as it is not confusing and straight forward.

I wouldn't say the constructor method is a replacement for a constructor function, if anything, I would say the class is.

In ES5, an object can be created by defining a constructor function and using the new keyword to instantiate the object.
The ES6 class syntax replaces the ES5 constructor function.

Not sure if we need to rephrase anything here but we should at the very least remove the code blocks from the two sentences as they are used incorrectly.
In the context of a constructor function, constructor isn't a language construct, it's just what we call such a function.
Inside a class, the identifier constructor is a language construct and you can only have one constructor identifier inside the class, that is you can't overload the constructor method and you can't have a field named constructor (you can have a property though).
// SyntaxError: Duplicate constructor in the same class
class User {
  constructor(name) {
    this.name = name;
  }
  constructor(age) {
    this.age = age;
  }
}

// SyntaxError: Classes can't have a field named 'constructor'
class User {
  constructor = 'test';
  constructor(name) {
    this.name = name;
  }
}

class User {
  constructor(name) {
    this.constructor = name;
  }
}

const user1 = new User('John');
console.log(user1.constructor); // John

In ES5, an object can be created by defining a constructor function and using the new keyword to instantiate the object.
In ES6, a class declaration can have constructor method that is invoked with the new  keyword:
class SpaceShuttle {
  constructor(targetPlanet) {
    this.targetPlanet = targetPlanet;
  }
}
const zeus = new SpaceShuttle('Jupiter');

Do we want to open this for contributions with my last suggested wording?

@jeremylt I think so, just make sure both of the new keywords are inside a code block and constructor for the class constructor. As they are both actual code and should be shown as such.

In ES5, an object can be created by defining a constructor function and using the new keyword to instantiate the object.
In ES6, a class declaration can have a constructor method that is invoked with the new keyword:

I think the second sentence might need to be changed slightly, but I'm not sure how best to word it.

In ES6, a class declaration has a constructor method, it is created implicitly or explicitly, and is invoked when instantiating the object with the new keyword:

At the very least the use of code blocks around the word constructor in the original text is wrong and as such is a bug. I don't see how this is a feature request or even something that needs discussion.

My only small concern is with this part of the sentence.

has a constructor method that is invoked with the new keyword

It makes it sound like you call the constructor directly using new.
There is some level of indirection between the class and the constructor I'd like to verbalize. I know the word "invoked" does carry some level of indirection but I'm not sure if that will be clear enough to a beginner.
The class is the constructor.
console.log(SpaceShuttle.prototype.constructor === SpaceShuttle); // true
console.log(Rocket.prototype.constructor === Rocket); // true

But I do like what you have. 👍

Side note, there is a missing + in the console.log() for the SpaceShuttle class. Just in case anyone uses the code for the update.


chore(11.3.0): prepare new release

Changelog changes and new gold sponsor for our project which will enable Travis! 🚀

Guys, I'm going to release this as I'm not sure I will have more time during the weekend.


Diagnosed vs. Active Condition

Conceptual Changes
I created a new Diagnosed Condition condition and revised the meaning of Active Condition.
"Active" conditions are now conditions that the patient currently has, but may not be in the patient's record yet if the patient hasn't had that condition's target_encounter. This new condition is useful for controlling program flow before the diagnosis. For example, consider the following scenario:
A patient has a peanut allergy. They go to an allergist. The allergist runs a series of tests. If the patient has an active peanut allergy, the test will return positive for a peanut allergy (even though the patient's record does not yet list a peanut allergy) and the allergist can then diagnose that allergy.
This could also be useful for separating disease progression and treatment. An Active Condition could influence a disease to progress even though the condition is not yet diagnosed.
"Diagnosed" conditions must be both active (the patient is currently affected by the condition) and recorded in the patient's record.
There is one caveat: If a patient has a condition that is no longer active, it will remain in the patient's record as a previously diagnosed condition, but the Diagnosed Condition condition will now return false since that condition is no longer active.
If the need arises to check if a patient ever had a condition, perhaps we would need a new logical condition to test for that. However, in practice none of our modules need that sort of logic.
Code Changes
I was able to remove the present attribute from the Record class. I expanded the Person entity to include the onset_condition, end_condition, active_condition?, and  diagnosed_condition? methods. These need to be evaluated for the entity rather than just the record since the notion of a condition now spans both the entity (active conditions) and the record (diagnosed conditions).
I also refactored the record API with more consistent method names and some convenience methods that make manipulating the record a little more intuitive. All of the new find_* methods (e.g. find_medication or find_condition) now do a reverse scan of the patient's record and find the most recent item.

One thought I have now is that perhaps the ConditionEnd state should also specify a target_encounter state. That way a ConditionEnd state ends the patient's active condition, but doesn't formally end the condition in the patient's record until they have another encounter and that condition is confirmed to be "ended". What do you think?

Ending the condition should already coincide with an Encounter. After all, nothing happens to the record outside of encounters. Specifying the target_encounter would only say it has to happen at this specific encounter, rather than the next encounter.

Also, what is this for? Precursor to allergy pull request? I want to stop infrastructure changes unless they are required to support module requirements.

I vote no more target_encounters.

Precursor to some allergy stuff.

As it turns out, I was able to model my Atopic Triad of allergies without needing this distinction. I am going to retire this idea for now. We can revisit it later.


US-SK105

Hello
Everyone has done a fantastic job over the past year. My two earlier Midea-U's now work perfectly with HomeKit.
I want to pass this new information along:
I purchased a 3rd unit and the dongle has changed to an US-SK105 model. The device does not seem to show up in HomeBridge logs and only my previous devices show up. (Using the Midea or Nethome Plus apps)
I also noticed, during setup on Nethome Plus, that it seems to have newer features that allowed the device to be recognized from "scan" function" without changing my phone network. Perhaps bluetooth? Also has a 5ghz radio turned on, and sees the networks, even though it's non-functional.
Jorge

Disregard. I got it to work somehow.