Implementation for private genome database

Hi,
I am configuring easy_gdb for my species (a great platform, by the way!!) and would like to have it as a private database. I have generated the file .htpasswd and have added a user with a username and a password. How can I verify the privacy of the database? I would expect that, in order to access it, I would have to add my username and password at some point.
Thanks in advance,
Kostas Alexiou

Hello Kostas,
If you are installing it in a server or a local linux machine with apache, you would have to edit the apache configuration file:
vim /etc/apache2/sites-enabled/000-default.conf

and then, uncomment the next lines:
    <Directory "/var/www/html">
         AuthType Basic
         AuthName "Restricted Content"
         AuthUserFile /etc/apache2/.htpasswd
         Require valid-user
    </Directory>

Then save and close the file. You have to be certain that when you generated the .htpasswd, it was saved in the same path as the one included in the configuration file:
htpasswd -c /etc/apache2/.htpasswd UserName

and at the end of the process you will need to restart apache, so the changes have effect:
/etc/init.d/apache2 reload

You might need to use sudo to run those commands in a server. After this step you should see the authentication popup when reloading the web browser. Additionally, you could change the path in the directory to control which pages are private and wich ones are publicly accessible, you could also add several Directory blocks, and you could change the message in the AuthName line.
Alternatively, if you are using Docker, you will have to run those commands inside your Docker implementation by running first the next command in the easyGDB_docker path:
docker-compose exec easy_gdb /bin/bash

Then you can run all the commands mentioned above.
Thank you for using easyGDB. Please, let me know if you are able to implement the password authentication and do not hesitate to contact me again here or by email.

Hi Noé,
Thanks for your help. I have uncommented the corresponding code in the apache configuration file inside the docker container. The authentication pop window is now appearing nice and clear.
The corresponding information present in the README file (https://github.com/noefp/easy_gdb#private-application) is pointing to go to the easy_gdb_apache.conf and uncomment the <Directory></Directory> code patch present there. However, the code was already uncommented and, since I was not getting the popo window, does this suggest that the file is not overwriting the apache configuration settings?
Best,
Kostas


Social login

Added a new Category - Social Log-In
Some apps added in this category -
Google Sign-in
Apple Sign-in
Facebook Sign-in
SAP Customer Data Cloud
(Issue is given here - https://github.com/AliasIO/wappalyzer/issues/3245)

@rockeynebhwani Have added these 4 for now. Will update

Thanks!


No response after ESP8266 Reboot

Hi all,
I've flashed the example led to my ESP8266 however when I move it from my USB flasher and power it back on I'm left with the accessory unable to respond. Am I doing something wrong?

Logs please

I have similar issue, accessory is not responding after few minutes after start.

Is there a fix? I/we can't get any logs because the ESP won't response at all.

Hi @maximkulkin,
I also ran into this problem, on the WeMos D1 Mini (4MB) with ESP8266EX chip.
Once the pairing is broken, the only way to recover is to run homekit_storage_reset() and redo the pairing.
My impression is that the pairing breaks when Homekit tries to control the ESP while the homekit-esp library is busy initialising on the wifi connection: Most of the power-cycles maintain the pairing, but when the home app is opened while the esp is booting, pairing breaks.
Here are some logs. Let me know if I can help debug further.
Power-cycle with successful pairing
ESP-Open-SDK ver: 0.0.1 compiled @ Nov 17 2018 18:43:34
phy ver: 273, pp ver: 8.3

init start
init complete..
mode : sta(dc:4f:22:55:cf:53)
add if0
>>> HomeKit: Starting server
>>> HomeKit: Using existing accessory ID: 2D:DD:27:0C:2B:03
>>> HomeKit: Found admin pairing with 9239412C-F341-4B65-BFC4-A559D7DE5DC6, disabling pair setup
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
>>> HomeKit: Configuring mDNS
scandone
add 0
aid 2
cnt

connected with my-wifi, channel 11
dhcp client start...
ip:<IP_ADDRESS>,mask:<IP_ADDRESS>,gw:<IP_ADDRESS>
mDNS announcement: Name=Window blind-2DDD
                                          md=MyCurtainpv=1.0id=2D:DD:27:0C:2B:03c#=1s#=1ff=0sf=0ci=14 Port=5556 TTL=4500
>>> HomeKit: Got new client connection: 4
>>> HomeKit: [Client 4] Pair Verify Step 1/2
>>> HomeKit: [Client 4] Pair Verify Step 2/2
>>> HomeKit: [Client 4] Found pairing with 9239412C-F341-4B65-BFC4-A559D7DE5DC6
>>> HomeKit: [Client 4] Verification successful, secure session established
>>> HomeKit: [Client 4] Get Accessories
>>> HomeKit: [Client 4] Get Characteristics
>>> HomeKit: [Client 4] Update Characteristics
>>> HomeKit: [Client 4] Update Characteristics

Power-cycle with unsuccessful pairing
ESP-Open-SDK ver: 0.0.1 compiled @ Nov 17 2018 18:43:34
phy ver: 273, pp ver: 8.3

init start
init complete..
mode : sta(dc:4f:22:55:cf:53)
add if0
>>> HomeKit: Starting server
>>> HomeKit: Using existing accessory ID: 2D:DD:27:0C:2B:03
>>> HomeKit: Found admin pairing with 9239412C-F341-4B65-BFC4-A559D7DE5DC6, disabling pair setup
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
>>> HomeKit: Configuring mDNS
scandone
add 0
aid 2
cnt

connected with my-wifi, channel 11
dhcp client start...
ip:<IP_ADDRESS>,mask:<IP_ADDRESS>,gw:<IP_ADDRESS>
mDNS announcement: Name=Window blind-2DDD
                                          md=MyCurtainpv=1.0id=2D:DD:27:0C:2B:03c#=1s#=1ff=0sf=0ci=14 Port=5556 TTL=4500

When the pairing failed once, it will fail every time
ESP-Open-SDK ver: 0.0.1 compiled @ Nov 17 2018 18:43:34
phy ver: 273, pp ver: 8.3

init start
init complete..
mode : sta(dc:4f:22:55:cf:53)
add if0
>>> HomeKit: Starting server
>>> HomeKit: Using existing accessory ID: 2D:DD:27:0C:2B:03
>>> HomeKit: Found admin pairing with 9239412C-F341-4B65-BFC4-A559D7DE5DC6, disabling pair setup
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
Function called without core lock
>>> HomeKit: Configuring mDNS
scandone
add 0
aid 2
cnt

connected with my-wifi, channel 11
dhcp client start...
ip:<IP_ADDRESS>,mask:<IP_ADDRESS>,gw:<IP_ADDRESS>
mDNS announcement: Name=Window blind-2DDD
                                          md=MyCurtainpv=1.0id=2D:DD:27:0C:2B:03c#=1s#=1ff=0sf=0ci=14 Port=5556 TTL=4500

I’m having a similar issue, I’m unable to reestablish a connection even if I make sure that the HomeKit app is closed completely before/during restart. @berikv were you able to implement homekit_storage_reset() upon a failed pairing? I’m not even able to monitor logs after a power cycle (my board has a switch so I’m not actually disconnecting the UCB cable).
I’d be interested in talking out some ideas to remedy this issue. My biggest concern (untested) is when my HomePod gets here it will be my homehub and if there is ever a power failure I’d imagine that the homehub would attempt to establish that connection immediately upon restored power, so in any instance of what you described (berkiv) the pairing would always fail.
Would a simple delay after a reboot solve this?

Check out my related issue/discussion I just posted, I am thinking this is hardware difference related. Issue #171

Check your board documentation: it might be like with Spark Fun ESP8266 dev board you need to pull some pin high/low to have it boot program instead of bootloader. See #171


GodMode: App is active in dock and app-switcher

Description: GodMode is visible in the dock and app-switcher, which makes it very uncomfortable to tab between two applications without accidentally opening GodMode. For example, people often cmd+tab between an IDE and a browser as they work, and use GodMode in between. Having it be an app makes it unusable and barely different from having a couple LLMs open side-by-side in a browser tab.
Steps to Reproduce: Launch GodMode
Expected behavior: Will show/hide on pressing the global shortcut but will not be active in the dock or the app switcher (CMD+Tab).
Environment: macOS 13.4. GodMode (1.0.0-beta.0)

For example, people often cmd+tab between an IDE and a browser as they work, and use GodMode in between.

so technically you can use the quick open shortcut (defaults to cmd+shift+g) and that makes it easy to access godmode from wherever
however,

Expected behavior: Will show/hide on pressing the global shortcut but will not be active in the dock or the app switcher (CMD+Tab).

this is a smart solution. would happily take a PR for this, i am not exactly sure how we would make it happen


Docs 2.0: Documentation for jlink-image

We need end user documentation for our jlink-image support. Things we need to add or update:

New: jlink custom runtime image guide (similar to GraalVM Native image guide)
Update Creating docker image guide to be an introduction, then link to quickstart, jlink and native image guides for details.
Update quickstart guides to also link to native-image and jlink guides

Fixed by PR #1639


update default OAuth2 clients

Description

default OAuth2 client changed from "web-client" to "fylr-web-frontend"
adding optional OAuth2 clients to values.yaml
bugfix: indentation of optional oauth2 clients corrected in configmap representing fylr.yml
as clients are public, some secrets have been removed

How Has This Been Tested?

deployed in a kubernetes cluster
browser test confirms oauth2 still works between default client and server
output in /insepct/config confirms that default client and optional clients are changed
asset upload confirms that there are no obvious side effects harming basic fylr functionality

I received a review via non github-communication:

The PR Looks good to me, I've deployed a test instance and everything looks good


Feature/iterated ts outputs

Your checklist for this pull request
Please review the guidelines for contributing to this repository.

[X] Make sure you are requesting to pull a feature/bugfix branch (right side). Don't request your master!
[X] Make sure tests pass and coverage has not fallen ./test.sh.
[X] Update the CHANGELOG.md to describe your changes in a bulleted list under the "Development" section at the top of the changelog. If this section does not exist, create it.
[ X Make sure code style follows PEP 008 using black.
[X] Make sure that new functions and classes have inline docstrings.

Description
get_time_series_results() now returns an iterator, instead of concatting all of the raw data into one big data frame.  This should prevent out-of-memory errors.  Users of this method can load results one project at a time and process them individually.

looks good to me! At some point I would still like to discuss whether we need all all those years of values but this should fix the memory issue for now at least. merging and bumping version now.


Spring Boot profiles not being honoured when obtaining config in 2020.0.0 and Boot 2.4.1

Describe the bug
When using a spring profile (e.g. SPRING_PROFILES_ACTIVE as kubernetes), the configuration YAML file unique to that profile (e.g. application-kubernetes.yml) doesn't seem to be sought-by or provided-to the spring boot client as expected. In addition, the ConfigDataLoader doesn't report the profile on boot which contradicts the application's report of which profiles are active, as shown here:
│  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )                                                                                │
│   '  |____| .__|_| |_|_| |_\__, | / / / /                                                                                │
│  =========|_|==============|___/=/_/_/_/                                                                                │
│  :: Spring Boot ::                (v2.4.1)                                                                                │
│ 2021-01-07 12:05:08.048  INFO [vets-service,,] 1 --- [           main] o.s.s.p.vets.VetsServiceApplication      : Starting VetsServiceApplication v2.4.1 using Java <IP_ADDRESS> on vets-service-deployment-5bbb4bb84f-kws4z with PID 1 (/workspace/BOOT-INF/classes started by cnb in /workspace)                                                     │
│ 2021-01-07 12:05:08.052  INFO [vets-service,,] 1 --- [           main] o.s.s.p.vets.VetsServiceApplication      : The following profiles are active: kubernetes                                                                                │
│ 2021-01-07 12:05:08.295  INFO [vets-service,,] 1 --- [           main] o.s.b.context.config.ConfigDataLoader    : Fetching config from server at : http://config-server-service.default.svc.cluster.local:8888                                                                                │
│ 2021-01-07 12:05:08.296  INFO [vets-service,,] 1 --- [           main] o.s.b.context.config.ConfigDataLoader    : Located environment: name=vets-service, profiles=[default], label=null, version=668cd0749018689e9c1cd5419fac6420482deea9, state=null

Software versions
Spring Boot 2.4.1
Spring Cloud BOM 2020.0.0
Sample

K8s deployment YAML for the 2020.0.0 version of my petclinic-microservices demo is here. All images are in public docker hub.

Config server's config files repo is here.

Spring codebase for this sample is here.

Supplementary info
If the application-kubernetes.yml is included locally on the classpath, then the application appears to use it as expected. Also, config files made available the config server named to reflect the application's spring.application.name property (e.g. vets-service.yml) also seem to be picked up as expected. The issue seems to only affect profile based names hosted remotely on the config server and required by the application via the config client.

Supplementary info
If the application-kubernetes.yml is included locally on the classpath, then the application appears to use it as expected. Also, config files made available the config server named to reflect the application's spring.application.name property (e.g. vets-service.yml) also seem to be picked up as expected. The issue seems to only affect profile based names hosted remotely on the config server and required by the application via the config client.

please try with version 3.0.1 https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2020.0-Release-Notes#known-issues

please try with version 3.0.1 https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2020.0-Release-Notes#known-issues

@benwilcock You can explicitly tell the config server what profiles to look for using a property in your application.yml (the one inside your app, not the one in the cloud server). This can serve as a temporary workaround while the cloud team fixes this easy (or presumably it is already fixed in 3.0.1. For instance:

server.port: 9003
spring:
  application.name: user-repository
  config.import: configserver:http://localhost:8888
  cloud.config.profile: ${spring.profiles.active}

@benwilcock You can explicitly tell the config server what profiles to look for using a property in your application.yml (the one inside your app, not the one in the cloud server). This can serve as a temporary workaround while the cloud team fixes this easy (or presumably it is already fixed in 3.0.1. For instance:

server.port: 9003
spring:
  application.name: user-repository
  config.import: configserver:http://localhost:8888
  cloud.config.profile: ${spring.profiles.active}

we can reopen if 3.0.1 didn't fix things.

we can reopen if 3.0.1 didn't fix things.


Added CONTRIBUTING.md

Makes sense to have a CONTRIBUTING.md file - standard across most OSS projects.

@maclover7 can you split out the versioning into a separate PR?  A few other things depend on the VERSION file at the moment.

@maclover7 Thanks for this, I ended up pulling in and changing the CONTRIBUTING.md file you made.  (sorry, I didn't merge this first)


Great project

After a simple trial, I found this is a great project, which can even change the future of javascript, but there is still a lot of work to be done.Need to promote this project so that more developers can understand it and join the project to complete it together.
Hope to see its completed version as soon as possible.

Hi @czkoko , thank you very much for your support ! Yes, there is a lot of work to be done, but still NectarJS is an interesting project. Don't hesitate to join us and on Discord and tell us how you could help


fix: Time::getAge() calculation

Description

fix Time::getAge() calculation
fix test case

Returns the age, in years, of between the Time’s instance and the current time. Perfect for checking the age of someone based on their birthday:
https://codeigniter4.github.io/CodeIgniter4/libraries/time.html#getage

There are a few ways to calculate human age.
However, the current implementation does not seem to be common.
E.g.:

birthdate: December 31, 2020
now: January 1, 2022
age: 2

Checklist:

[x] Securely signed commits
[ ] Component(s) with PHPDoc blocks, only if necessary or adds value
[ ] Unit testing, with >80% coverage
[ ] User guide updated
[x] Conforms to style guide

Refactored.

Thank you @kenjis


Throw on external calls from contracts

Exeternal calls to contracts should have way to show what is wrong when they fail. For this call and others
https://github.com/ethersphere/storage-incentives/blob/7cdfd9ce254c368c9cee0955095e4992bb61af06/src/Redistribution.sol#L472C9-L472C56
(bool success, bytes memory data) = addressB.call(abi.encodeWithSignature("functionName(args)"));
if (!success) {
    // Handle failure
    bytes memory actualErrorData = sliceBytes(data, 4);  // Removing the first 4 bytes that represent the function selector
    // Handle the error based on `actualErrorData`
}

or
try PostageContract.withdraw(winnerSelected.owner) {
    // This block will execute if the withdrawal is successful
    // You can put code here to handle the success case, if needed
} catch Error(string memory reason) {
    // This block will execute if there was an error with the withdrawal
    // 'reason' contains the error message/revert reason
    // You can put code here to handle the error, log it, etc.
    emit WithdrawalFailed(reason);
} catch (bytes memory lowLevelData) {
    // This is for errors that don't return a reason string
    // 'lowLevelData' contains the raw error data
    // You can put code here to handle this specific error case, log it, etc.
    emit WithdrawalFailed("Low-level error occurred.");
}

This actually wont help much. If there is a custom error, then it will just again throw bytes data, so best we can do here is. Emit string that says some default value and again still check bytecode error. This needs to be solved on the application level.
Etherescan currently doesnt solve it, can be caught with trace.  Tenderly solves this nicely as it should.

Is the root problem you're trying to address causing issues on Gnosis Chain?

This is on PH4 we are currently working on and ways to debug reverts. But this solution and idea wasnt right, tested it and it didnt make sense to do it this way, the result is the same. Conclusion is just to use better debugging tools like tenderly


Settings WEBSITE_LOAD_USER_PROFILE = 1 needed

It should be mentioned that without the setting WEBSITE_LOAD_USER_PROFILE = 1 the secret might not not be fetched but instead throw the following exception;
An unhandled exception was thrown by the application. Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException: The system cannot find the file specified. at Internal.Cryptography.Pal.CertificatePal.FilterPFXStore(Byte[] rawData, SafePasswordHandle password, PfxCertStoreFlags pfxCertStoreFlags) at Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, String fileName, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] data) at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData)
This didn't happen in a new Azure function but when adding keyvault to a older version. Not sure if that matters but it's the only difference between my two environments since everything is published with CI/CD and the same build.
I found the solution at https://stackoverflow.com/questions/62787147/the-system-cannot-find-the-file-specified-azure-key-vault-certificat

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

ID: 7feaa3d0-7233-a3cb-cb9b-a9a55b1f0d7a
Version Independent ID: f41f9d51-52f8-1f45-1043-1344a3b74458
Content: Use Key Vault references - Azure App Service
Content Source: articles/app-service/app-service-key-vault-references.md
Service: app-service
GitHub Login: @mattchenderson
Microsoft Alias: mahender

@jstensved Thanks for the feedback! We are currently investigating and will update you shortly.

@SnehaAgrawal-MSFT @mattchenderson  hey i experience the same behavior still so what was the result of the investigation ?

This is really really bizarre. I spent hours today figuring out what was wrong with my Azure Key Vault and App Service set up. We used Key Vault locally and it was fine, but once deployed, it was granted permissions to read secrets from Key Vault, it should have all been fine, but I kept getting this exception.
I finally fixed it just by adding WEBSITE_LOAD_USER_PROFILE = 1 to the app setting config.
What is this?? This is so obscure, why is the error message so bad??

It remains a mistery...

Internal item created: https://dev.azure.com/msft-skilling/Content/_workitems/edit/288943

Thanks for your feedback and your contribution to Azure docs.
Feedback for this repository is moving away from GitHub to a system specific to the Microsoft Learn platform. Issues for this repository will soon be disabled, and additional comments from GitHub will no longer be possible. However, we are now tracking and triaging this issue in the new feedback system.
To learn more about our feedback systems, please see Provide feedback for Microsoft Learn content.
#please-close


DurationDt incorrectly encoded

Per email from Nehashri P L
I have been working with MedicationOrder resource using HAPI - DSTU2. There are a few problems that I am facing while parsing the resources. I see that the Duration resource which is a part of the Timing.repeat is not parsed consistently. It sometimes seems to be able parse it and sometimes fails to parse it. There are no errors thrown but the same resource is not parsed properly sometimes. Here is an example resource we are using:
<MedicationOrder xmlns="http://hl7.org/fhir">
    <id value="7af48133-4c47-47d7-8d94-6a07abc18bf9"/>
    <identifier>
        <value value="urn:uuid:7af48133-4c47-47d7-8d94-6a07abc18bf9"/>
    </identifier>
    <dateWritten value="2015-09-22T17:04:40.000+05:30"/>
    <status value="active"/>
    <patient>
        <reference value="http://www.mci.com/patients/98104750156"/>
        <display value="98104750156"/>
    </patient>
    <prescriber>
        <reference value="http://www.pr.com/providers/812.json"/>
    </prescriber>
    <encounter>
        <reference value="urn:uuid:445be5c3-d373-422a-b46d-d0ec5862b52f"/>
    </encounter>
    <medicationCodeableConcept>
        <coding>
            <system value="/openmrs/ws/rest/v1/tr/drugs/104"/>

            <display value="Lactic Acid"/>
        </coding>
    </medicationCodeableConcept>
    <dosageInstruction>
        <timing>
            <repeat>
                <boundsDuration>
                    <value value="10"/>
                    <system value="http://unitsofmeasure.org"/>

                </boundsDuration>
                <frequency value="2"/>
                <period value="1"/>
                <periodUnits value="wk"/>
            </repeat>
        </timing>
        <asNeededBoolean value="true"/>
        <route>
            <coding>
                <system value="http://localhost:9080/openmrs/concepts/1011" />

                <display value="Oral"/>
            </coding>
        </route>
        <doseQuantity>
            <system value="http://localhost:9080/openmrs/ws/rest/v1/tr/vs/Quantity-Units" />

            <value value="10"/>
        </doseQuantity>
    </dosageInstruction>
</MedicationOrder>

This appears to be an HAPI encoding issue. The resource should be encoding boundsDuration as boundsQuantity, since duration is a profile on quantity.

This turned out to be real after all. I have committed a fix.


PowerToys run high CPU usage...cycling

PowerLauncher.exe CPU usage is extremely high and cycles a lot.
Goes from 0% to up to 41% about every 5 seconds.
Disabling this for now until resolved - my surface fan is running overtime :)
Cheers
flavio

Closing this in favour of #3208


Assembly Level Axial Expansion Prototype

Description
Aims to improve assembly-level axial expansion through component-level expansion of all blocks within an assembly. Enables 1) both thermal and non-thermal (e.g., burnup) driven expansion, and 2) the input of cold/as-built component dimensions and axial expansion within an assembly as temperatures vary.
This replaces the fuel-block driven expansion previously found in armi.reaector.assemblies.py::axiallyExpandBlockHeights.
Internal TerraPower code issue discussion here
A few notes:

Includes both assembly- and core-level axial expansion functionality.
Tested assembly types found in armi.reactor.tests.test_reactors.py::loadTestReactor (various fuel assembly types, shield, and control assemblies)
Assembly-level expansion has expansion height verification with hand calculation.
Unit test code coverage is 99%.

Missing one runLog.warning statement.

One TO-DO statement  in armi.reactor.converters.axialExpansionChanger.py::ExpansionData::_isFuelLocked

Checklist

[x] The code is understandable and maintainable to people beyond the author.
[x] Tests have been added/updated to verify that the new or changed code works.
[x] There is no commented out code in this PR.

One exception in axialExpansionChanger.py::_manageCoreMesh -- was copied over from armi.reactor.converters.meshConverters.py

[x] The commit message follows good practices.
[x] All docstrings are still up-to-date with these changes.

If user exposed functionality was added/changed:

[ ] Documentation added/updated in the doc folder.
[ ] New or updated dependencies have been added to setup.py.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.aalberti seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@albeanth  You need to sign the CLA to make a PR.
Thanks!

Thanks for the contribution @albeanth! @john-science and I will take first stab at reviews and testing out this functionality in the coming days/week. We can in parallel work on testing internally and then sync up on the updates then. Once we are through with the major comments and recommendations, we can pass to @ntouran for the final review and sign off.

Can you re-format this PR with black?
I notice all the tests are passing but the black formatting is failing the build.

@john-science - I am reviewing again now, but you can review when you are ready!

@albeanth The "Fake" material and exception....
Are those just for testing? I don't see them used anywhere.
Normally, a good rule of thumb is to delete all unused code. So, that whole file could go. But I assume you're using it for something I'm not seeing?
Also, should we just copy/paste that file into a unit test file? I don't want to infect our REAL code with stuff we only need for unit tests, you know?

@albeanth The "Fake" material and exception....
Are those just for testing? I don't see them used anywhere.
Normally, a good rule of thumb is to delete all unused code. So, that whole file could go. But I assume you're using it for something I'm not seeing?
Also, should we just copy/paste that file into a unit test file? I don't want to infect our REAL code with stuff we only need for unit tests, you know?

@john-science addressed here https://github.com/terrapower/armi/pull/606/commits/c9712deea459019976330009bdf19a3bb8b8749d


CentOS 8 base image is EOL

Environment info

NooBaa Version: ALL
Platform: NOT APPLICABLE

Actual behavior
CI builds fail because their CentOS 8 base image is EOL and package repository mirrors have been moved to archive.
Expected behavior
CI builds succeed
Steps to reproduce
Run make tester
More information - Screenshots / Logs / Other output
> [ 2/11] RUN dnf update -y -q &&     dnf clean all:
#5 1.801 Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

Proposal
Switch to CentOS Stream 8 as base image: quay.io/centos/centos:stream8

Hi @DanielSel
Thanks for pointing that out.
Can you please open a quick PR?

Done, PR: #6866


Signal database version 219: no such table sqlite_schema

Getting the below error trying to convert v219 database, but I fear this project is dead. No commits for over a year now...
2024-03-22 20:49:45 | INFO - This is signal2html version 0.2.11
2024-03-22 20:49:45 | INFO - Found Signal database version: 219.
2024-03-22 20:49:45 | WARNING - This database version is untested, please report errors.
Traceback (most recent call last):
  File "/Users/<userid>/Library/Python/3.8/bin/signal2html", line 8, in <module>
    sys.exit(main())
  File "/Users/<userid>/Library/Python/3.8/lib/python/site-packages/signal2html/__main__.py", line 20, in main
    sys.exit(main())
  File "/Users/<userid>/Library/Python/3.8/lib/python/site-packages/signal2html/ui.py", line 37, in main
    process_backup(args.input_dir, args.output_dir)
  File "/Users/<userid>/Library/Python/3.8/lib/python/site-packages/signal2html/core.py", line 677, in process_backup
    qry = db.execute("SELECT COUNT(*) FROM sqlite_schema")
sqlite3.OperationalError: no such table: sqlite_schema

Just read the README in more detail - switching to signalbackup-tools' exporthtml feature instead.


pipe typings don't work with Array Destructuring

RxJS version: 5.5.6
Code to reproduce:
someObservable.pipe(
  map(val => ["foo", 42]),
  map(([str, num]) => null)
);

Expected behavior:
str should be detected as type string and number should be of type number
Actual behavior:
TypeScript says: str and num are both of type string | number
Additional information:
Tested with TypeScript 2.6.2 and 2.7.2
The exact same code works when used within subscribe:
someObservable.pipe(
  map(val => ["foo", 42])
)
.subscribe(([str, num]) => console.log(str, num));

This is not an RxJS issue - TS infers an array type for array literals, not a tuple. Anything else would be very annoying:
const a = ['a', 'b', 'c']
a.push('d')
a[3] // error if a is a 3-element tuple

You just need to tell TS the array is a tuple:
someObservable.pipe(
  map((val): [string, number] => ["foo", 42]),
  map(([str, num]) => null)
);

But why does it work within the subscribe method?

@benneq This is because subscribe is able to infer types directly from the class it lives on, where pipe has to do some complicated type inference, that frankly is new and still a little broken. This isn't something we can fix on the RxJS side.
You'll need to add typings as @felixfbecker recommended.


Define Windows test app.

High-level description
This changes the Windows integration test app to follow the required constraint. A new group
group_windows is introduced which runs only Windows related tests. The tests should be
triggered with
./test_util/terraform_test.sh windows

Corresponding DC/OS tickets (required)

D2IQ-64129 JIRA title / short description.

@mesosphere-mergebot label Ready For Review

@mesosphere-mergebot changelog-not-required adding a test

@mesosphere-mergebot sync


Merges changes of virtual_env branch

This merge allows the use of catkin_virtualenv to avoid the need of a separate python 3 ws with ros compiled from sources.
Main changes are to the package and CMakeList files
Readme is also changed to reflect the new way of working
rosinstall is changed to include the catkin_virtualenv package (it can be installed via apt-get) but it seems to work only with the latest version.

@chcorbato can you please check this, and merge the PR if it's ok

@chcorbato can you please check this, and merge the PR if it's ok

@marioney can you address Gijs's comments?
I resolved two of them by creating issues.
Is this PR review something @JWijkhuizen or @shreyashpalande can do?


Added Mapping files for supported Plugins

Signed-off-by: Shivani Shukla<EMAIL_ADDRESS>Description
Adds Mapping files for the following Plugins:

http
grok
elasticsearch
amazon_es

Issues Resolved
#467
Check List

[x] New functionality includes testing.

[x] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #535 (b480e49) into main (52e0468) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##               main     #535   +/-   ##
=========================================
  Coverage     92.28%   92.28%
  Complexity      569      569
=========================================
  Files            71       71
  Lines          1725     1725
  Branches        144      144
=========================================
  Hits           1592     1592
  Misses          102      102
  Partials         31       31

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 52e0468...b480e49. Read the comment docs.


fix: load subscription and plan in confirm plan change modal

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 10.09%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
9401

Relevant Lines:
93168

💛  - Coveralls


Extended speech recognition and refactoring

Related issue

Closes #68

Proposed changes

Extend speech recognition functionality to handle extra parameters
Refactor the speech recognition class
Add validation for handled parameters

Also as an additional note, we changed the text displayed when pressing the guideButton on Voice Control activity, in order to match the DialogFlow functionality that has been introduced so far.


SNS local testing

Is there a way to publish & consume SNS locally?

yes. but it doesn't work on the latest version (I'm dealing with issues right now with 0.6.2). for 0.3.0 the commands look like this: sam local generate-event sns notification --message \"$(cat event.json)\" | sam local invoke MyAwesomeLambda
contents of event.json:
{
  "foo": "bar"
}

@j You can mock out the event with sam local generate-event as @ste00martin stated. The bug he is referencing is #755, so you can track the update there (I have a fix out in PR).
Closing


Intermediary many-to-many table with queries: null does not create auth perms

Describe the bug
Intermediary many-to-many table with queries: null does not create auth perms. Removing queries: null will successfully result in
Amplify CLI Version
4.18.1
To Reproduce

Generate intermediary many-to-many relation, disabling direct queries with @model(queries:null)
Add authorization permissions to model using @auth directive.
amplify push
Check generated AppSync schema, no auth directives are carried to the model. Attempting to traverse many-to-many relation in either direction will fail with Unauthorized
Remove queries:null from intermediary table, run ``amplify push`
Generated AppSync schema now contains proper auth directives such as @aws_api_key, etc.

Expected behavior
I would expect authorization for the many-to-many relations to be configurable using the @auth directive on the table itself. If this was not the intention, and we are not supposed to configure auth from the intermediary table but rather at the field-level, I believe this should be documented. In either case, I'm willing to submit a PR to address this.
Desktop (please complete the following information):

OS: Ubuntu 20
Node Version: 10.13.0

Additional context
Sample schema:
type Post
  @model {
  tags: [TaggedPost] @connection(keyName: "byPost", fields: ["id"])
}

type TaggedPost
  @model(queries: null)
  @auth(
    rules: [
      { allow: private }
      { allow: public, provider: apiKey, operations: [read] }
    ]
  )
  @key(name: "byPost", fields: ["postID", "tagName"])
  @key(name: "byTag", fields: ["tagName", "postID"]) {
  postID: ID!
  tagName: ID!
  post: Post! @connection(fields: ["postID"])
  tag: Tag! @connection(fields: ["tagName"])
}

type Tag
  @model
  @key(fields: ["name"]) {
  name: ID!
  description: String
  posts: [TaggedPost] @connection(keyName: "byTag", fields: ["name"])
}

Hello @quorth0n
Since the queries are disabled for tagged post are you looking at allowing access to tagged post from Post and/or Tag? You can add field auth on Post and Tag to allow read on TaggedPosts
An example of this kind of implementation below
type Post
  @model {
  id: ID!
  tags: [TaggedPost] @connection(keyName: "byPost", fields: ["id"]) @auth(rules: [ { allow: public, provider: apiKey, operations: [read] } ])
}

type TaggedPost
  @model(queries: null)
  @auth( rules: [
    { allow: private }
  ] )
  @key(name: "byPost", fields: ["postID", "tagName"])
  @key(name: "byTag", fields: ["tagName", "postID"]) {
  id: ID!
  postID: ID!
  tagName: ID!
  post: Post! @connection(fields: ["postID"])
  tag: Tag! @connection(fields: ["tagName"])
}
type Tag @model {
  id: ID!
  description: String
  posts: [TaggedPost] @connection(keyName: "byTag", fields: ["id"]) @auth(rules: [ { allow: public, provider: apiKey, operations: [read] } ])
}

@SwaySway thank you, that is the solution I ended up using and accurately addresses my use case. I believe a quick blurb in the docs may be helpful in case anyone else shares this question, let me know if you'd like me to submit a PR to include that.


Add visual regression tests

TODO:

Make sure fonts get loaded see: https://app.circleci.com/pipelines/github/zimmerman-zimmerman/iati.cloud.frontend/1106/workflows/e857bb6e-bd3d-4c0c-85dc-385291fabb5a/jobs/2759

Make sure all pages gets screened.


How can I use surfman and webrender together？

Hi  guys，I want to use surfman(as the GL context) and webrender (as the Render engine) to do some Rendering stuff，because surfman use ANGLE on Windows, which should achieve better robustness.
but all examples in webrender use glutin as the GL context, and Servo's implement is too complicated to understand,  so I don't know how to achieve that now, I need some help~

Servo uses surfman and webrender - https://github.com/servo/servo/blob/master/components/webrender_surfman/lib.rs is where the glue code lives, https://github.com/servo/servo/blob/master/components/servo/lib.rs#L355-L376 is where it's initialized, and https://github.com/servo/servo/blob/master/ports/winit/headed_window.rs#L151-L162 is where it's integrated with the winit crate (along with various other uses of surfman in that file).

@jdm thanks, I got  those parts. but how can I draw something(like a rect)  in a surfman-winit window then,   is there some code that I can refer

@Hankszhang You bind the surfman framebuffer and draw the rect like you usually would in GL. The bit that integrates with winit is create_native_widget_from_winit_window, which WebrenderSurfman then uses to create a surface that's bound to a GL context.

https://github.com/servo/servo/blob/master/components/compositing/compositor.rs#L1408-L1419 is the code that integrates with rendering with webrender specifically.

OK, I'll try.  thanks a lot~
It would be nice if there is a surfman-webrender example, look through Servo project to find out how this work  is a little painful ==


Open definition in an external editor

Elevator Pitch
back in the day when using intellij idea and mathematica, there was in implementation that from the mathematica notebook (similar to the jupyter notebook) you could type a hotkey and open the definition in intellij. This feature was awesome when developing and i was wondering if it could possibly be implemented here.
Motivation

Design Ideas

It looks like opening files in external program is possible with https://github.com/martinRenou/jupyterlab-fileopen.

Also see: https://github.com/martinRenou/jupyterlab-fileopen


add check for connection before calling Connected() on it.

add another explicit check for Connection's nil-ness

These are good changes, thank you. I'm squirreling now.


Added a solution to the challenge 'intersection' in CSX/Callbacks

I finally figured out how to solve 'intersection' using the reduce method - and it was simpler than I thought it would be.  I've been working on it all day.
I also included updates to Reduce10DifferentExamples.js in CSX/Practice/.

If you would review intersection.js that would be great!
No need to look at Reduce10DifferentExamples.js


Recommended histogram bucket sizes for HTTP connection duration

The http.server.request.duration histogram recommends bucket sizes: https://github.com/open-telemetry/semantic-conventions/blob/203691d99612452df0c951640b04521e34969628/docs/http/http-metrics.md?plain=1#L67-L68
A server library has a histogram to track HTTP connection duration. It should have defined bucket sizes, but I'm are unsure what values to set. The HTTP request durations are too short (a connection could last, minutes, hours or even days).
Is there any agreement in the OTEL ecosystem about what good histogram buckets are for HTTP connection duration? (or longer running tasks in general)

related: #316

I am suggesting:
[0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300]
in #https://github.com/open-telemetry/opentelemetry-dotnet/issues/4922
It uses an approx 2x escalation for each bucket with alignment to minutes at the end.
It doesn't go up to hours, but the main benefit for longer connections is that you don't need to pay the setup costs of each connection on each request. Once the connection duration is in the order of minutes, the incremental cost of benefit of longer connections rapidly diminishes. This should be a good balance.

Up to 300 seconds is much better than 10 seconds. I think there are situations where a connection could live quite a long time. For example, web sockets in the browser (e.g. SignalR) and server-to-server scenarios where a client is reused for a long time.
I removed some of the smaller values and added capacity for up to an hour.
Before:
[0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300]
After:
[0, 0.01, 0.05, 0.1, 0.5, 1, 5, 10, 30, 60, 120, 300, 600, 1200, 3600]

Is there any update on consideration of this? Particularly when these get converted to Prometheus histograms that do not track min and max, as far as I can tell we can never query the metrics to show request duration longer than 10 seconds.
10 seconds is a shockingly low amount of time for the highest request duration  bucket to record.

hi @francoposa, this issue is about connection duration (across multiple requests) as opposed to request duration.
you may want to consider using a metric view to configure longer request duration buckets for your use case


Add support to download header as part of profile and overwrite old profile images

Hello. I'm sending this to add support for downloading the header as part of the profile scrapping.
I also noticed that some of the users I follow change the avatar/header from time to time and I thought it would be nice for the scrapper to also download it when there is a change. So for that I added an expiration time to the cache for the avatar and header and updated the downloader code to overwrite the file with the new one if it's from the profile.
The cache for the profile is set to a week, I think that's enough to avoid trying to download it every day, but often enough to get new avatars/header.
I'm not used to developing on python so please let me know if this is acceptable or you need me to do some improvements.
Btw. I tested this locally and it seems to be working correctly but did not make or change any unit test, I'm not familiar with these yet.
Any feedback is welcomed.
Thanks!

Good catch on the missing headers
I only added the first commit though
The reason being is that the url is basically what is match to check.
It the url should change when a new avatar/header is uploaded
If you wanted to make sure that you only had one avatar and header per image
you could do this
"{re.sub('_.+','',filename)+f'.jpg' if responsetype=='Profile' else f'{date}-{text}.{ext}'}",
in your file_format config
make sure code execution is on

I updated how the custom value work now
Basically if you pass a dictionary every value is now converted executed as code
While the code execution option is on.
With that said you could do something like
custom: {"Profile":"'header.jpg' if re.search('header',filename) else {filename}"}
"{custom.get(responsetype,f'{date}-{text}.{ext}')}"

Awesome, no worries, yeah that is a much better solution! I'll try these solutions. Thanks!


TEST - FR

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Trello card: [#171] TEST - FR


Reduce warnings in medspaCy

I added the warning below to warn that the RegexMatcher might not exactly match the specified pattern since the matches need to expand to align with spaCy's token boundaries. But it's loaded for every single component which uses the RegexMatcher so when loading a model it generates this warning like 10 times in a row.

I think it would be a useful warning to show once, so if there's a way to have it only show up a single time that would be great. But otherwise I think we should continue disabling it.
This one is generated by spaCy but I think would make sense for us to suppress it. Since we load a Matcher component by default, it's very reasonable that the user may not add any patterns to the underlying Matcher so they shouldn't have to see this error when the MedspacyMatcher processes a doc.

@abchapman93  @turbosheep  I believe we have addressed at least one of these now, right?  I think that "does not have any patterns defined" is now removed.  Is the other still present as well?
Should we Close this or leave it open for now?

We removed all of the medspacy sourced warnings and I have flagged python to ignore the component 'matcher' does not have any patterns defined as well, but sometimes it still slips through.
These appear because of the underlying Matcher and PhraseMatcher objects from spacy throw warnings when they have no patterns defined. The MedspacyMatcher object centralizing all of our patterns do not necessarily utilize both the matcher and phrasematcher even though patterns exist.
As far as I know, spacy does not provide a way to check whether matchers or phrasematchers are empty before calling them. We could implement something ourselves to prevent these objects from being called without patterns, though.

any solutions here?


modify raft gc log impl for witness

ref tikv/tikv#12876
Signed-off-by: Wenbo Zhang<EMAIL_ADDRESS>
What is changed and how it works?

Issue Number: Ref #12876
What's Changed:
modify raft gc log impl for witness

Related changes
Check List
Tests

Integration test

Side effects

Performance regression

Consumes more CPU
Consumes more MEM

Breaking backward compatibility

Release note
None

/run-tests

/run-tests

/run-tests

If witness is restarted, how to know there is pending raft log?

Register the pull voter_replicated_index method in Peer's start method, when the apply thread detects that has_compact returns false, it is considered a reboot scenario, will do compaction using voter_replicated_index (leader's first index) as compact_idx.

/merge

/run-tests


No Emoji Support?

Describe the bug
emojisEnabled does not seem to have any effect.
To Reproduce
Steps to reproduce the behavior:

Add emojisEnabled to the Editor component

Expected behavior
An emoji button in the toolbar? Auto-completing emoji names prefixed with :? I'm not sure.
Screenshots
https://codesandbox.io/s/verbum-editor-forked-znf6rw?file=/src/App.tsx:298-311

Hello @carpiediem, it's working, even in your example. Just try to type :).
The list of emojis you can check here.
Let me know if you don't have any questions, I'll close the issue.

Okay, that works for a handful of faces, but there are 100+ emoji in unicode. How do I add the rest?

I'm searching an example at Lexical playground, there is EmojiPickerPlugin. So I decide to add this plugin. You can check it in #59.
Unfortunately user can't expand emoji list by it self, there is a list of emojis saved in emoji-list.ts file.
If you have any ideas how to do it correctly or functionality, let me know. Maybe you know some examples with same case.
In other way, if this solution suits you I will merge #59 and close this issue.


Pseudocode compiler

I think I've completed #105 . Let me know if there are any errors/problems.
Thanks!

Apologies for the constant changes in the wording


bug:Exception: Widget won't fit into the page as its height<PHONE_NUMBER>000001) exceed a page height<PHONE_NUMBER>7952747). You probably need a SpanningWidget or use a single page layout

Exception: Widget won't fit into the page as its height<PHONE_NUMBER>000001) exceed a page height<PHONE_NUMBER>7952747). You probably need a SpanningWidget or use a single page layout.
can't save pdf file.
I see pdf plugin also have so many proplem like this.if syncfusion_flutter_pdf: ^22.2.11 is better than pdf: ^3.10.4 ?

syncfusion is much harder to work with so i used pdf
but i am planning to support the syncfusion compilation to
Currently  pdf wont create the file if its single widget height is bigger than page height

syncfusion is much harder to work with so i used pdf but i am planning to support the syncfusion compilation to Currently pdf wont create the file if its single widget height is bigger than page height

can do something to set our widget height smaller or equal than page height。

currently not its depends on html document if the paragraph and list are samller that will fit in single page than with would create document without any issue

or conditionally you can set custom height of page in Multipage layout in pdf

thank you .I'll give it a try, but it always gives off an unstable feeling，and not suitable for production environments.


Needs updating to stable release

Can you update this to work with the stable/official release? Thanks

v9.0.0 has been released with support and fixes for stable Android 12, including AOSP-based ROMs.


[CSRanking] Favour concrete members over protocol requirements in Swift 5 mode

(This is the Swift 5 mode portion of #18927)
We already have a similar rule that prefers concrete members over protocol extension members – IMO this new rule is a natural extension of it.
This allows the following code to become unambiguous in Swift 5 mode:
protocol X {
  func baz() -> Int
}

class Y {
  func baz() -> Int { return 0 }
}

func foo(_ x: X & Y) {
  // currently ambiguous, will be made unambigous in Swift 5 mode (favouring Y's `baz()`)
  x.baz()
}

Note that this new rule isn’t applied to overloads found through dynamic lookup in order to ensure we keep cases such as SR-7299 ambiguous.
Note also that this new rule is potentially source breaking (hence why it requires Swift 5 mode) – for example, the following contrived case is currently unambiguous, but will be made ambiguous by the change:
protocol P {
  static func foo() -> Int
}

class C {
  func foo() -> Int { return 0 }
}

extension P where Self : C {
  static func bar() {
    let m = foo // currently unambiguous, will be made ambiguous in Swift 5 mode
  }
}

Arguably this change is unifying the behaviour with that of protocol extensions, where a similar example is already ambiguous:
protocol P {}
extension P {
  static func foo() -> Int { return 0 }
}

class C {
  func foo() -> Int { return 0 }
}

extension P where Self : C {
  static func bar() {
    let m = foo // error: Ambiguous use of 'foo()'
  }
}

And currently, adding static func foo() as a protocol requirement to the above suddenly resolves the ambiguity – with this Swift 5 mode change, the ambiguity is kept in both cases, which seems more consistent.

@swift-ci Please smoke test

@swift-ci Please test source compatibility

@rudkx Source compat failed to clone the repo – could you try again?

@swift-ci Please test source compatibility

Just resolved a merge conflict. Given the source compat suite passed, should I revert https://github.com/apple/swift/pull/18951/commits/37a949075f648879b3d79e77fa0cca0cd4e159f9?

@hamishknight Yes, sounds good.

Linux failure looks unrelated – same failure as https://ci.swift.org/job/swift-PR-Linux-smoke-test/9516/

@swift-ci Please smoke test Linux platform


nix-doc: 0.6.2 -> 0.6.3

This fixes #270484, which is an issue caused by the tags file not being sorted by all the fields, creating a race condition where sometimes the test suite could spuriously fail due to differently ordered output.
See also: https://github.com/lf-/nix-doc/issues/24
Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.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

[x] Fits CONTRIBUTING.md.

Priorities
Add a :+1: reaction to pull requests you find important.

@ofborg build nix-doc

@ofborg build nix-doc


Disable logging by night/sunset whatelse

It works great, but my inverter is only sending data when the solarpanels produce some load. So, when the sun sets, there is no data any more.
Now solarman is foaming the logs that it cannot reach the device any more.
Would be nice to have a switch to disable logging completly as its obvious that there is no data at least after sunset until sunrise.
I mean, after setting up everything, its not necessary to log any more.

Hi. I have some logs for this abnormal situation. I think this abnormal values are also a problem for the energy dashboard. See the screenshot attached: It stopps after 23:59 and doesnt show values on the next day. If I restart the docker container, all the values from 0:00 are shown correctly:
`2023-03-12 06:16:38.970 WARNING (SyncWorker_5) [custom_components.solarman.solarman] Querying inverter<PHONE_NUMBER> at <IP_ADDRESS>:8899 failed on connection start with exception [OSError]
2023-03-12 06:17:39.051 WARNING (SyncWorker_0) [custom_components.solarman.solarman] Querying inverter<PHONE_NUMBER> at <IP_ADDRESS>:8899 failed on connection start with exception [OSError]
2023-03-12 06:18:38.054 WARNING (SyncWorker_5) [custom_components.solarman.solarman] Querying registers [3 - 128] failed, aborting.
2023-03-12 06:19:38.037 WARNING (SyncWorker_5) [custom_components.solarman.solarman] Querying registers [3 - 128] failed, aborting.
2023-03-12 06:20:38.103 WARNING (SyncWorker_4) [custom_components.solarman.solarman] Querying registers [3 - 128] failed, aborting.`

I can confirm it: My template in issue #116 was able to run the energy dashboard over midnight without problems. This morning, my data was continuously shown after the day change at midnight.


RF: Use NULL::integer[] when no continuous features

JIRA: MADLIB-1219
When variable importance is enabled, to compute importance score,
distribution of the categorical and continuous features are computed.
For continuous features, this function requires initializing a vector of
length = number of continuous features. When there are no continuous
features, this initialization fails.
This commit fixes the issue by inputing a NULL::integer[] vector when
there no continuous features.
Closes #249

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/402/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/403/

See https://issues.apache.org/jira/browse/MADLIB-1219 for results from my tests.
LGTM

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/406/

The changes look good. +1 for adding an install check test.
I noticed that con_features is populated by decision_tree.py:_classify_features which does something like con_types = ['real', 'float8', 'double precision', 'numeric']. Is it better to call the utilities function is_psql_numeric_type  ?

@kaknikhil Thanks for the suggestion. It makes sense to use that function with integer types excluded (since DT does not treat integer as continuous). I'll add that as a separate commit since it's unrelated to this PR.


Consider returning a string from each logging message that can be put into the default log file location

Describe the bug
Currently, the error messages are only being output to stdout, in the future I would like to control this with -v or --verbosity, so it might be useful to by default output these to the constructedLogFilePath in FileHandler (using FileHandler object) and then making printing to stdout optional with verbosity flags.
Expected behavior
Logging messages should have both the ability to output to stdout and a the log file in FileHandler. This would mean that the interface for exceptions should return a String.

Closed by: Commit a81de62993aff523132b321016eabacb324e6f95


dependencies "contain code that will be rejected by a future version of Rust"

I'm getting this warning when built using latest rustc:
warning: the following packages contain code that will be rejected by a future version of Rust: buf_redux v0.8.4, multipart v0.18.0
multipart is abandoned and buf_redux is its abandoned dependency. The cleanest fix would be to switch to something else providing multipart encoding.
I made local forks of the affected crates and fixed it, also upgraded them to 2021 edition.
The fix was trivial, mostly just adding dyn and removing some semicolons in macros.
Here's the patches needed to do that:
buf_redux:
5514df91edd41543afa8b51c51fd3824b66e8b67.diff.txt
multipart:
f56611df6a528ab3141c1f9a047401f2140fb69a.diff.txt

This is, unfortunately, more trouble than it initially seemed.
Multipart and buf_redux are direct dependencies and thus fairly easy to swap out, indeed someone already maintains an updated version of buf_redux so I only had to publish an updated crate for the former.
The spanner in the works comes from traitobject which is even more unmaintained than the other two - this gets pulled in by our old-ish version of Hyper so we can't replace it with a fork as easily.
Rouille can't be the only place these new deprecation warnings are showing up so I'll see if there is any information elsewhere about what the suggested migration plan is.

Is it possible to make multipart an optional feature instead? Not everyone needs Content-Encoding: multipart/* for their applications.

Is it possible to make multipart an optional feature instead? Not everyone needs Content-Encoding: multipart/* for their applications.

Yes, but doing so is a breaking change and requires a 4.0 to do so - and I don't really think it's worthwhile for that.
Regardless you'd still be caught out by the hit on traitobject as it's via Hyper, a mandatory dep.

Regardless you'd still be caught out by the hit on traitobject as it's via Hyper, a mandatory dep.

There is now a somewhat recent RUSTSEC advisory for multipart that is starting to show up wherever Rouille is used. Low severity only, but would be nice to avoid.

How are Hyper and traitobject relevant here? They don't seem to be dependencies of Rouille.

Hi!
Is there any solution for that? I see that it was discussed a year ago, but the current version of rouille ("3.6.2") still raises this warning.
warning: the following packages contain code that will be rejected by a future version of Rust: buf_redux v0.8.4, multipart v0.18.0

I have been seriously thinking of forking Rouille and multiple unmaintained dependent crates. I think there is a place and value for threaded, non-async libraries too.

Hi folks. I don't have a huge amount of time available to devote to Rouille anymore - I previously worked somewhere that made extensive use of it for backend services, but have since moved on.
To fix this particular issue, a replacement for the deprecated Multipart crate needs to be found. The problem when I tried, was that the maintained crates I found all assumed the use of Hyper and Async, and provided no Sync or standalone functionality. You can of course write a sync wrapper around any trivial async code that doesn't directly interact with a runtime, I simply didn't have the time to do so.
I can continue to read and accept PRs for this, but I can't promise much work on it myself.


Encapsulate GCS connection into one struct to use it to apply dependency inversion

Add gcsutil and update FuzzBinder accordingly.

Thanks for the reviews :)


Add EKS-A CLI and imagebuilder CLI to weekly release assets

This PR adds the EKS-A CLI tarball and imagebuilder CLI tarball to the assets of the weekly Github release from main.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve
/override eks-anywhere-presubmit


Cythonized data classes allow omission of required arguments.

Describe the bug
When instantiating a data class, it usually detects if a required argument is missing and raises an error. In Cython, nothing happens until you try to access the missing field and an AttributeError is thrown:

Traceback (most recent call last):
File "", line 1, in
File "main.py", line 24, in init main
AttributeError: 'Bb' object has no attribute 'a1'

To Reproduce
from dataclasses import dataclass

@dataclass
class Aa:
    a1: str
    a2: str = '100'
    a3: str = None

class Bb(Aa):
    b1: str = '123'
    b2: str = None

bb = Bb()
print(bb.a1)

Expected behavior
Without Cython, the above yields the following traceback when calling the constructor:

Traceback (most recent call last):
File "main.py", line 23, in
bb = Bb()
TypeError: init() missing 1 required positional argument: 'a1'

Environment (please complete the following information):
OS: Ubuntu
Version: 18.0.4

Additional context
Python 3.6.9, Cython 0.29.21, dataclasses 0.7 (backport)

Duplicate of #2552.


Set inner html on rule rendering

Not sure about this one. I want to be able to format the output of rules, but I think this probably could allow for some dodgy stuff. Thoughts?
Use case: https://bitbucket.org/atlassian/atlassian-frontend-landkid-deployment/pull-requests/31
Also install httplease-asap as a devDep for locally testing the package-ownership rule.

Sweet, yea. Deffs get the concern. It's not user generated in any way, so I'm happy with it.


Depracated style "Processing" for text component

Technical
At the list of styles for text is appearing deprecated style for wearable profile. This style should be removed from description of text component.
Description
Remove deprecated style.

Steps to reproduce

Create a new project in Design Editor
Insert text component
Select text
Select styles from right side panel

Expected behaviour
No list of styles
Actual behaviour
Deprecated style appears

Patch has already been merged.


Bug: Vanguard slayer doesn't qualify for extra slayer talent feat

Describe the bug
The slayer archetype (vanguard) apparently has a unique version of the class feature "slayer talents", this is preventing it from qualifying for the modded feat: extra slayer talents
To Reproduce
Steps to reproduce the behavior:
Level vanguard to 7+ attempt to take extra slayer talent
Expected behavior
either a separate feat for vanguard slayer talent, or vanguard being able to select the generic one
Screenshots

Oh, I see what is going on here, Will be fixed in 1.3.2

This is now fixed


Add disable action Hooks

Description
Onehook lock action didn't works.
To Reproduce
$ onehook show 171
HOOK 171 INFORMATION
ID                : 171
NAME              : HA_Host_Error
TYPE              : state
LOCK              : Use

EXECUTION LOG
   ID       TIMESTAMP    RC EXECUTION
   57     08/02 02:51     0 SUCCESS
... more and more
   74     09/12 11:36     0 SUCCESS
   75     09/21 13:34     0 SUCCESS             <-- last execution

I need to set this hook didn't run, so I lock with this:
$ onehook lock 171 --use

Expected behavior
Hooks shouldn't run, I guess.
   * lock <hookid>
        Locks a Hook with differents levels for lock any actions with this Hook,
        show and monitoring never will be locked.
        Valid states are: All.
        Levels:
        [Use]: locks Admin, Manage and Use actions.
        [Manage]: locks Manage and Use actions.
        [Admin]: locks only Admin actions.
        valid options: admin, all, manage, use

But this hooks triggered and run again.
$ onehook show 171
HOOK 171 INFORMATION
ID                : 171
NAME              : HA_Host_Error
TYPE              : state
LOCK              : Use

HOOK TEMPLATE
ARGUMENTS="$TEMPLATE -m -p 0"
COMMAND="ft/host_error.rb"
NAME="HA_host_error"
REMOTE="NO"
RESOURCE="HOST"
STATE="ERROR"
TYPE="state"

EXECUTION LOG
   ID       TIMESTAMP    RC EXECUTION
   57     08/02 02:51     0 SUCCESS
... more and more
   75     09/21 13:34     0 SUCCESS
   76     09/22 16:18     0 SUCCESS <-- triggered

Details

Affected Component: onehook
Hypervisor: KVM
Version: OpenNebula <IP_ADDRESS>

Progress Status

[ ] Branch created
[ ] Code committed to development branch
[ ] Testing - QA
[ ] Documentation
[ ] Release notes - resolved issues, compatibility, known issues
[ ] Code committed to upstream release/hotfix branches
[ ] Documentation committed to upstream release/hotfix branches

Hi @harsxv
This is the expected behavior, lock is to prevent you from accidentally deleting the hook. Maybe you are looking for a "disable" operations that suspends the execution of a hook.
It is probably a good idea I'll use this issue to implement this in a future release.
Cheers and thanks for the feedback

This is the expected behavior, lock is to prevent you from accidentally deleting the hook. Maybe you are looking for a "disable" operations that suspends the execution of a hook.

Yes correct, I'm looking for a "disable" operations to suspends the hooks, instead delete it immidiately.
I hope many feature will be released on a next future release. Thank for your response and fabulous work @rsmontero and team.


HDFS: placement constraints

TODO:
[ ] make default constraints empty
[ ] add driver placement constraints
[ ] check this out

:metal:


Grow scaffold from "script" to "library" project

I think the ProjectScaffold follows a pattern usual in all F# projects - it started with two fairly simple script files (generating documentation and FAKE build script) that keep growing and getting more complex. I think this is quite natural (Literate documentation in F# Formatting started as a script file too :-)). But I think that ProjectScaffold has now reached the level when it is too complex to be just two script files.
At the moment, there is quite a lot of logic in the two script files that a person using ProjectScaffold for the first time should not see and should not care about (say, the workaround to make Razor work on Mono). Don't get me wrong - all this logic is really useful and it's great to have it - but we should not "bother" the first-time user with it.
Also, there is quite a lot of variations on what kinds of projects people may want to create with ProjectScaffold (multi-project vs. single-project, type-provider vs. normal, multi-language, etc.).
So, I think we should extract some of the functionality into a library & simplify the template. Here is what I think we should do:

We should create a library (it could be called ProjectScaffold.dll or something better) that references F# Formatting and FAKE and contains some of the functionality from both build script & docs generation.

I like the structure that FsReveal uses - we can have master branch which contains the template (which relies on ProjectScaffold.dll and gets it from NuGet via Paket). Then we can have other branch (say, develop or library) with the more complex functionality.

This would let us keep the master branch relatively stable and it would make it easier to update projects to latest version of ProjectScaffold (just paket update). The ProjectScaffold NuGet package can contains fsx files that we #load from the template (this way, it is easier to add new dependencies if we need to, or change paths etc.).

Because master would be simple, it would also let us create multiple different templates. (Because most of the work would be done in the library).

The only other alternative I can think of would be to move some of the ProjectScaffold functionality into F# Formatting and FAKE. But I don't like this that much - F# Formatting and FAKE should not be tightly linked with ProjectScaffold.
Also, I think we could consider eliminating separate generate.fsx script for the documentation. If the ProjectScaffold library is sufficiently easy, we can just have documentation generation as 3 targets in the build script. Finally, I think that the best way to design the ProjectScaffold library API is to use something like Scaffold.GenerateReference(projectInfo, ... ) with projectInfo being some record or a class (wrapping shared info about project) and ... are optional parameters.
Now, this changes project scaffold from being just "scaffolding" into another stand-alone component that people can use. But I think this is inevitable at this point - because it really is not a "scaffolding" project anymore (in the sense that you cannot just clone it and modify bits of it - even I don't understand everything that the template does these days!)

Another useful project that we should look at is https://github.com/matthid/Yaaf.AdvancedBuilding by @matthid, which he mentioned here: https://github.com/tpetricek/FSharp.Formatting/pull/275

I personally don't really like the ProjectScaffold layout (I think the layout is unnecessarily complicated). Normally I use my own (https://github.com/matthid/Yaaf.AdvancedBuilding) which updates with  paket update , so I'm not always up2date with ProjectScaffold.

I think that what I'm suggesting here is actually closer to what @matthid is doing. And I 100% agree about the complexity of ProjectScaffold.

Well, initially AdvancedBuilding was a project to improve support for building for multiple targets, but it didn't worked out the way I imagined. As a matter of fact msbuild is good enough if you work with the platform variable (which seems to be never used besides AnyCPU, and actually works on recent xbuild/mono as well). As a matter of fact, if used in a specific way you can get pretty good multiple platform support with F#/FAKE But you need to follow some strict guidelines like https://github.com/matthid/Yaaf.Logging/blob/develop/src/source/Yaaf.Logging/Yaaf.Logging.fsproj#L54 has to match your configuration in buildConfig.fsx, see below. So, you should completely ignore the source code in AdvancedBuilding, it is basically only used for testing the generic build script. I played with the idea of automatically converting existing files to the better format but it's usually a good idea to know your msbuild files and edit them manually.
The general idea is this:

Have some very simple ``build.shandbuild.cmdwhich basically call intopackages/Yaaf.AdvancedBuilding/content/build.sh/.cmdthese files then prepare the environment and call paket or nuget to restore allbuilddependencies. Once everything is prepared for the build procedure they callFAKE build.fsxas usual. Note that nowbuild.shandbuild.cmdcan be updated viapaket update`.
Like the build scripts you can opt-in into an update-able FAKE script as well, however this is a bit more difficult:
First include packages/Yaaf.AdvancedBuilding/content/buildConfigDef.fsx
To define your build configuration (basically a simple record definition)
Then you load an instance of this record by including buildConfig.fsx (you could define it in build.fsx as well but I rather enjoy splitting the configuration from the actual build code)
Then you simply include  packages/Yaaf.AdvancedBuilding/content/buildInclude.fsx which predefines generic FAKE targets while using your (above loaded) configuration.
Note how you can define additional configuration in buildConfig.fsx and additional FAKE targets/dependencies in build.fsx.

Some things I specifically don't like about ProjectScaffold (for this issue):

You cannot update with it (once cloned you are on your own)

the docs folder: Whenever I go in there I need to search through all folders to find what I need.
In AdvancedBuilding I use this:
generateDocs.fsx is in root directory, the *.md, *.fsx files are directly in /doc or any subdirectory, then I have doc/content which is recursively copied to the dest (for content like pictures/css/js) and doc/template for all templates. That's it.

The simple /bin folder: When you opt-in to AdvancedBuilding you will get a per platform output directory like /build/net40 build/net45 (this is configurable). I think even when you only use a single platform/target this helps you by early discovering possible problems when you for example upgrade from net40 to net45.

docs/output: As we are now able to build the website multiple times (almost for free) I would suggest to always build local documentation as well. In AdvancedBuilding I build the documentation to release/documentation/local/html and release/documentation/github/html. Additionally I build the latex templates (because why not). It's actually nice to quickly open the local documentation and check everything before uploading to github.

release: actually I copy everything to release at the end, so the created nuget package is in release/nuget, you can find the relevant .dll files in release/lib/{platform} (without any dependencies like in build/{platform}) and the docs (see last paragraph).

From all the above the docs directory is definitely the biggest pain. You could argue that my solution has potential clashes. But actually because only *.md and *.fsx files are processed and templates only are *.cshtml there is not much that can happen. So the only clash that can happen is if you want http://website/content/file.html (ie a file.fsx in the content folder), however this case doesn't really hurt as we would have file.fsx and file.html in outdir/content/
So we could do something similar for ProjectScaffold to make it more "update-able".
We could create some generic re-usable script-files and reference them via paket, however I don't think (from my experience with AdvancedBuilding) we can make ProjectScaffold a library (or at least I couldn't do it).

Also, I think we could consider eliminating separate generate.fsx script for the documentation.

While I agree in theory, it is sometimes nice to have a standalone documentation generation. While I see that a extra FAKE target "should" be handling this as well, I never actually managed to make the --single-target feature always work (especially taking mono, build.cmd and build.sh into account). I actually use https://github.com/matthid/Yaaf.AdvancedBuilding/blob/develop/packages/Yaaf.AdvancedBuilding/content/buildInclude.fsx#L131 (like even before FAKE had the single-target switch) and it works perfectly (you can even define extra dependencies for the _single version).
The reason why I didn't combine generate.fsx and build.fsx in AdvancedBuilding is actually a bootstrapping thing in RazorEngine (it just isn't possible there). Also when you have multiple build dependencies depending on different RazorEngine.dll version you will run into troubles. By separating the scripts you don't risk running into that (I don't think anybody actually has such a setup, besides RazorEngine itself).
TL;DR
Maybe one (the simplest) solution to reduce the ProjectScaffold complexity is to use AdvancedBuilding (Note that you do not actually need to change your current layout here at ProjectScaffold as most folder-paths are actually configurable in AdvancedBuilding, the defaults are just different :) ). This way you get back to very, very simple build.fsx, build.sh, buildConfig.fsx generateDocs.fsx and build.cmd. And as long users don't change any defaults their build scripts will be updated with paket update.

My main concern if moving to a library type project is that we don't destroy the ease of customizing.
IE: Scaffold is (at least for me) a great starting point, but I need to tweak it a bit to do exactly what I want.
Currently It is relatively easy for me to maintain my project specific tweaks while keeping up to date with the latest and greatest.
As long as we simply move helper functions to a library in order to clean up build.fsx then we are probably good.
Another concern is that not being just a script will grow ProjectScaffold into a pseudo FAKE thing. IE:
If your script gets too big, there is quite a big motivation to move helpers into libraries where they belong: Like extending Paket, or FAKE, or maybe even creating some specific library for a specific feature. When ProjectScaffold becomes a library, it will no longer feel messy to add a bunch of helpers there, And it will be easy to end up with a lot of paralell code that could perhaps be generalized and put into FAKE or other projects.
What to do?
My suggestion would be to extract helpers and functions into a FAKE sub project, (avoiding hard dependencies from FAKE to all the other projects scaffold users), but keep them in the FAKE github repo. This way we will keep a single repo of FAKE related build helpers avoiding duplicate efforts. And it is easier for maintainers to have a good overview and make decisions on what features belongs where.

It would be really nice to have generate.fsx as a library that can be parameterized in a nice way, as it stands the errors I've gotten when things break with it are awful and so we've disabled it in most of our projects. I think most people only need the standard use case and customization could always be done by forking and building it yourself.

I like the idea of having it as a library too. I don't think we should be relying on git or creating complicated guidelines and file layout patterns to be able to 'fork' a project out of scaffold and then keep it up to date. At the moment agree that keeping up to date is too hard. I typically don't, until things break, and then it's quite an annoying job to come here and figure out what I need to change. Also if I want to use a new feature it's too onerous to backport it.
Maybe clojure's leiningen is a good place to look for inspiration. In particular, eventually I think this should evolve in a plugin-based architecture, where plugins can mainly contribute new project templates, fake targets and paket dependencies. Then project maintainers could write their own plugins for scaffold, and the whole thing would become less monolithic and imposing.

We had a discussion yesterday in which we proposed using Yeoman generators. Yeoman runs on node, but the upside is that it exists, provides a cross-platform story, and follows the approach taken by the ASP.NET team. If nothing else, it could provide a path to something better.

Following Ryan comment - discussion took place on F# slack channel (http://fpchat.com/), I'd love to invite anyone who still is not hanging out there ;)
[To be clear: If I mention project I mean fsproj level, ProjectScaffold is solution level tool]
And to the topic (and maybe bit off-topic). I really think we should try to provide good way of scaffolding  different type F# projects not depending on VS and VS Gallery. While ProjectScaffold is doing decent / good job in providing general structure and set of commonly used tools for whole solution set up, I feel the biggest "point of pain" right now is creating F# projects for different types of applications.
[To be clear again: I have no idea how complex are those tasks as such, I've never written Yeoman generator]
Generator approach( Yeoman was suggested since it's most popular and pushed by ASP .Net team tool) would allow us to create better user experience in creating F# solutions (for example asking user what tools to add etc.) but also It could be base to provide good project level scaffolding. Users could be asked what is his project target, what .Net / F# version, what type of projects too add (MVC, WebAPI, WPF, Console, Suave, whatever we would want to include).
While all those things could be done in some script files "by hand" I suggest using existing widely used infrastructure. Yeoman is popular tool, it's multiplatform, it's going to be popularized in .Net world by ASP.Net team ( we can be saying: "Yes, we also have it! Just come and try F# out" ;) ), there exist integrations of yeoman with text editors (Atom sample - https://atom.io/packages/atom-yeoman). From what I understand yeoman generators are written in JS... but we have some experience with dealing with this unpleasant fact ;)
And my last point (I guess it would be not trivial to implement). For project level scaffolding I would love to see (some time in the future) system similar to Atom Package Manager - Packages ( in our case project templates) are just github repositories, Atom package "server" just registers address of repository ( + some rating / download number) and that's all. It would be cool if people could just publish templates on GitHub and we would be able to use them.
Yet again: this post is result of some my ideas mixed with ideas of other guys from Slack channel (@panesofglass, @pblasucci, @cumpsd). I have no idea how complex it would be from point of view of ProjectScaffold (I've never even contributed here, just a "from-time-to-time" user) nor how complex it is from yeoman point of view ( but I know @cumpsd has some experience in that field)
Well, I think that's all :)

2 points:
Big picture
I strongly agree that F# should provide its own development environment story. We shouldn't depend on MS doing it for us, especially not cross platform. You could argue that MS is making the move towards OSS, which is like a huge container ship making a slow turn. However, over time there are always issues popping up with something that appears to be internal MS. (OWIN story, weird handling of GH issues, reinventing everything every x time, creating issues to announce things and saying they don't actually want feedback)
Can we look at MS and hook onto things they do? Sure. Should we depend on them to make our story? No.
Right now, the F# story exists out of a very limited set of tools, you can use Visual Studio to get everything, or Xamarin. Not sure how far you can get with vim at the moment, but things like Sublime, Atom, we have bits, but no full story.
If I'm wrong, I would be more than happy to be corrected :) If someone has a way right now to do a complete F# project, without touching VS, let me know :)
Scaffolding
As for the yeoman story. I do believe it is a good tool, it fits in the command line view most F# people have, together with editors like Atom.
We have to think on what we want to scaffold. Do we want to scaffold project templates? Do we want to scaffold certain file skeletons?
I guess the easiest would be to model it like the aspnet generators, where they do indeed clone GH repos which serve as templates.
If we can discuss a bit more on it, I could have a look at starting up the yeoman story.

In my team we maintain a lot of projects, they are all C# and need to support an ancient .NET runtime (3.5), but were all created with ProjectScaffold anyway.
Obvious problems:

No way to upgrade/update (build.fsx/generate-scripts/dependencies)
Syncing of multiple projects is therefore impossible

We introduced a base build-script that we download as a paket http dependency so we can add stuff across multiple projects. In a projects we ended up just using a "settings.fsx" that provides the project config for the build and can override existing tasks:
namespace Wooga

#r @"packages/FAKE/tools/FakeLib.dll"

open Fake

module Settings =

    let project = "Wooga.SomeProject"

    let shortIdentifier = "someProject"

    let summary = "Some project"

    let description = "Some Project"

    let authors = [ "Some authors" ]

    let tags = "some"

    let solutionFile  = "Some.Project.sln"

    let testAssemblies = "tests/**/bin/Release/*Tests*.dll"

    let gitOwner = "some"

    let gitHome = "https://github.com/" + gitOwner

    let gitName = "Some.Project"

module Build =

    Target "ReleaseDocs" (fun _ -> ())

[...]

A good starting point to improve things would be, instead of having these values replaced inside a template, we should put them inside a config file (json/yaml/xml)...

@devboy You just described in a nutshell what Yaaf.AdvancedBuilding is doing, the difference is that the "config" itself is in F# (https://github.com/matthid/Yaaf.AdvancedBuilding/blob/develop/buildConfig.fsx) instead of json/yaml/xml.
It's just that it is currently trimmed to my use-case (using nunit for example and no SourceLink support to be able to build on linux -> maybe portable pdb allow this in the future). But it is easily extendable.

FAKE could be the model to emulate for the evolution of project scaffold. It could be run as a commandline tool, or setup with a fsx. The core library handles dealing with templates, the filesystem,  fsprojs, solutions, etc. Specialized kinds of projects (MVC, WebAPI, WPF, Console, Suave) get their own modules with helper functions for their setup & configuration.  It can ship with a set of  config scripts for supported project types (scaffold templates for all effective purposes), with the standard ProjectScaffold layout and packages for F# OSS development as the default.
A scaffolding DSL with helpful operators for setting up the folder heirachy
When you want to setup your project you pass the exe a config script and a target dir (or do the same in FSI) and it constructs your scaffold at the location.
Once it's a library it'd be really easy hook it up to a posh module.


Replace compile_fail doc tests with trybuild

https://github.com/dtolnay/trybuild

This does not require a bump of the runtime version.

@ascjones test fails.


Prompt segments empty

Hi,
Wanted to try your maintained version of agnoster, and once I installed the theme, all I have is :

When I try to let's say agnoster_add_segment status, it reports that status is an unknown segment... If I try to list the available variables starting with AGNOSTER_, I don't have the list of available segments or the current segements actually :
$ echo $AGNOSTER_
AGNOSTER_KNOWN_BAD_EMOJI_CODEPOINTS  AGNOSTER_RANDOM_EMOJI                AGNOSTER_THEME_VARIANT
AGNOSTER_PATH_STYLE                  AGNOSTER_RANDOM_EMOJI_EACH_PROMPT    AGNOSTER_VERSION

All I did was to use zplug to install this theme.
Any clue what could be wrong ?
Running zsh 5.8 on Fedora 33.

Well that's weird. I'll fire up a Fedora VM and see if I can reproduce this.


Add missing requires for chef/knife/acl_base

We were previously relying on load-order for this to work; however, this
doesn't work for knife-rehash which only load requested plugin.

@jeremiahsnapp I think this will fix: https://github.com/chef/knife-acl/issues/30

@ssd Thanks a lot for this PR. I added the same require to lib/chef/knife/acl_remove.rb and some unless defined? to handle the constants in acl_base.rb. It looks good to me now.


DocC generates inconsistent output for global Objective-C functions that are renamed to be associated with a type in Swift

Description
We define a PSPDFDrawingPoint Objective-C struct (renamed to DrawingPoint in Swift) and global functions to work with the struct, and rename the global functions for Swift to be members of the DrawingPoint type.
When using DocC to generate the documentation of this type, the output is not deterministic and some symbols sometimes end up at the top-level framework tree instead of in the DrawingPoint type.
Please see the attached symbol graphs that were created from xcodebuild docbuild and $(xcrun -find clang) -extract-api for our framework.
When using only the Swift symbol graph, the output is predictable, correct and always the same across multiple DocC runs.
However when using the Swift and the Objective-C symbol graphs, the output is not deterministic and sometimes causes some symbols to be placed at the top-level instead of being associated with the type. The symbols that are associated with DrawingPoint or that appear at the top-level are different with each docc preview run (even using the same symbol graphs as input).
Please see attached the header of the Objective-C definition of the API, which should be mapped to the DrawingPoint Swift API and also documented there.

I filed this same issue as FB13585944 as well.
Attached symbol graphs: symbol-graphs.zip
Attached Objective-C header: PSPDFDrawingPoint.h.zip
Attached screenshot:

Checklist

[X] If possible, I've reproduced the issue using the main branch of this package.
[X] This issue hasn't been addressed in an existing GitHub issue.

Expected Behavior
Generated documentation of DrawingPoint is deterministic and includes all renamed Objective-C global functions that start with DrawingPoint.
Actual behavior
Generated documentation of DrawingPoint is not deterministic and different builds cause different API to show up in the DrawingPoint page, with the missing symbols being added to the top-level navigation.
Steps To Reproduce
This can be reproduced when running the following DocC command with the attached symbol graphs provided with --additional-symbol-graph-dir (with Xcode 15.2 as the selected Xcode version):
$(xcrun --find docc) preview \
  --fallback-bundle-version 1 \
  --fallback-display-name "PSPDFKit" \
  --fallback-bundle-identifier "com.pspdfkit.sdk.doc" \
  --output-dir "PSPDFKit.doccarchive" \
  --additional-symbol-graph-dir "${SYMBOL_GRAPHS_DIR}"

And then viewing the previewed documentation of DrawingPoint at http://localhost:8080/documentation/pspdfkit/drawingpoint/
Ideally all API that was renamed with something like NS_SWIFT_NAME(DrawingPoint....) to be part of the DrawingPoint namespace should be shown there. However this is not the case, and some of the API is missing from the DrawingPoint page.
Sometimes API appears at the top-level (and not associated with DrawingPoint) like in the screenshot attached. Note that the URL is still correct and has the drawingpoint path included (http://localhost:8080/documentation/pspdfkit/drawingpoint/init(cgpoint:)) but the actual definition of the symbol in DocC does not appear in the DrawingPoint page.
I also tested this with using docc from the main branch of this repo with swift run docc.
Swift-DocC Version Information
86ea063a41c7d8f3391af21115fa9ab2cd6fa10e
Swift Compiler Version Information
swift-driver version: 1.87.3 Apple Swift version 5.9.2 (swiftlang-<IP_ADDRESS>.56 clang-15<IP_ADDRESS>.5)
Target: arm64-apple-macosx14.0

Thank you so much for fixing this so quickly! I can confirm that this is now resolved.
Really appreciated!


add missing type

can you run bash tools/pre-commit.sh? Thanks!

@autoih @gabrieldemarmiesse Fixed.

Thanks!


Cache the walking of the CultureInfo tree in ResourceManagerStringLocalizer

Implemented caching of the walk of the CultureInfo tree to get resource names. Includes tests.
#15
@davidfowl @Eilon @muratg

Looks good, :shipit:

@DamianEdwards for better organization, can we introduce an interface named IResourceCache that resource cache adapters have to implement

@hishamco This isn't something that should be abstracted. It's an implementation detail of this specific IStringLocalizer. It doesn't make sense to create a provider/adapter model here.

Merged in 9384848cc7c0a4faf92c3d2157fcd7621ac3fe57


Add an option to disable brotli similar to the zopfli option

Seems like a duplicate of #583 so going to close


test: add test to VersionedConstants::try_from

This change is

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 70.15%. Comparing base (40723f3) to head (b22acae).

Additional details and impacted files
@@                              Coverage Diff                               @@
##           barak/versioned_constants/try_from_version    #1631      +/-   ##
==============================================================================
+ Coverage                                       70.09%   70.15%   +0.05%
==============================================================================
  Files                                              59       59
  Lines                                            8337     8337
  Branches                                         8337     8337
==============================================================================
+ Hits                                             5844     5849       +5
+ Misses                                           2019     2013       -6
- Partials                                          474      475       +1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

I've added a test for V0.13.1. There wasn't a test to the old TryFrom<&Path> and the V0.13.0 has a different JSON structure for the VersionedConstants, so it cannot be called here because the following fails:
let versioned_constants_from_path: VersionedConstants = serde_json::from_str(path).unwrap();
One option is to decide that this test tests only the latest version, another option is to add some new tests or find a new way to test both cases.
Anyway, AFAIK @eitanm-starkware works on loading this JSON both for V0.13.0 and for V0.13.1 in Papyrus (I think that the way we knew it works before is that Pathfinder works with it, so it's kind of the same)

crates/blockifier/src/versioned_constants_test.rs line 203 at r1 (raw file):
Previously, giladchase wrote…
Is there a correctness issue with adding derive(PartialEq) to the struct and assert_eqing the structs?

The os_constants and the os_resources members of VersiondConstants don't derive PartialEq and Eq and also part of their members so it becomes too much IMO. If you think it should be done I can add a TODO for that?


Fixes #374 - Revocation command update and crl renew

An issue was raised informing that the revocation command is incorrect.
This was diagnosed to indeed be the case. As the $name variable in
context of revoke.pp does not evalute to server name but instead
client name. The exec for the crl renew was updated to clarify which server
it's done for and to prevent duplicate exec resource names.
Fixes #374

@bastelfreak could you have a look at this?

I'm not very familiar with openvpn. Any chance to add an acceptance test for this?

@bastelfreak An acceptance test is written and tests valid. I've cleaned up the way the revoked client file is managed. The test I wrote succeeds, but it's failing on another part which I didn't touch.

ah, this pulls in a broken version of facter and is fixed in https://github.com/voxpupuli/puppet-openvpn/pull/380/files - but that introduced another error. we will have a look and come back to you.

might be fixed with https://github.com/voxpupuli/puppet-openvpn/pull/381

I'll subscribe to #381, I'll rebase to see if it's fixed then

looks good, please rebase :)

@bastelfreak Unsure why it's failing so massively now. Would it help to rerun the CI jobs?

This was caused by the beaker 4.23.0 release: https://rubygems.org/gems/beaker
4.23.1 was released which fixes it. I restarted the jobs.

Cheers. Seems all is good but it's not reflected back here.


Add GraphQL documentation

This adds documentation for our GraphQL API, which I wanted to link to from an updated Scheduled Builds documentation page:

I've just updated this with a better intro, mention of Relay, and pointers to the frontend repository:

Some more updates:

Thanks for the catches @harrietgrace! Good to go?


Automagically run a script to update our sandbox asset dates daily

This is a python script that...

Looks through our two Asset Sandbox user json files
Finds the most recent date in these files
Sets that date to today, and then scales all other dates proportionately

And then we have a workflow script that, in theory, runs this script once a day and commits the result.
I'm keeping this limited to assets for now, just so we can limit the damage in case something goes wrong.

(I should note this PR also includes what those two files look like after running the script_