feat: support user-configured Google Analytics ID override

Allow manual configuration of the Google Analytics ID used to report aggregate
user behaviour analytics via new git config property: homebrew.analyticsid.
Eg, to set a custom GA ID:
$ git -C "$(brew --repository)" config homebrew.analyticsid 'UA-XXXXXXXX-1'

And to restore Homebrew defaults:
$ git -C "$(brew --repository)" config --unset homebrew.analyticsid

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[ ] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew typecheck with your changes locally?
[x] Have you successfully run brew tests with your changes locally?

+1 to wanting this.

thanks for taking a look, @carlocab!
I'm very happy to modify the interface used to configure this —for context, I initially opted to use Homebrew-local git config because I expect this to be somewhat of a power-user setting and not something individual users frequently touch; in this way, it seemed most similar to the anonymous user UUID setting (homebrew.analyticsuuid), which itself uses Homebrew-local git config.
If it's desirable to surface this closer to the user, we could opt for a more complex interface like HOMEBREW_NO_ANALYTICS, which supports toggling via:

environment variable ($HOMEBREW_NO_ANALYTICS)
Homebrew-local git config using the homebrew.analyticsdisabled key
and  the porcelain brew analytics off command

I am happy to expand this PR to do so if y'all think that's a worthy ROI / trade-off.
Thanks again for taking a look!

heya @MikeMcQuaid, thanks so much for taking the time to review this 🙏 I know your time is extremely valuable and I appreciate the comment and consideration.
would you be more open to accepting a setting if it were additive instead of an override? ie: continue emitting to the existing Homebrew Google account, but allow users to also collect their data in their own Google account?

OK, I'm no rubyist, but I did my best to make this idiomatic 😅
I'm very open to feedback and happy to iterate to get this to a good state.
thanks again, everyone!

thanks for the review, @MikeMcQuaid 🙏
I've renamed the variable, rebased on master, squashed down, and updated the PR title and description to match the new description/requirements.
please let me know if there's anything else I can do —and thanks again! 🚀


Android Studio/Flutter unit test 'debug' bug

Steps to Reproduce

Create an Future method
Create unit test to call future along lines below
Execute unit test via 'debug'
Make change to test such that output should change
Execute unit test via 'debug'

I am using Android Studio 3.5 and Flutter plugin V40.0.2.
I created a unit test to test a http call. For kicks I put in a print statement to see what was being returned.
void main()   {
  test("Get current.json", () {
    Repository repository = Repository();
    repository.getCurrentJson().then(expectAsync1((regions) {
      print(regions.toJson().toString());
      expect(regions.regions.length, 2);
    }));
  });

I click the 'debug'icon, the test is executed, and I see the Json printed  in the console.
{initialRegion: NewEngland, regions: [{dates: [2019-10-02, 2019-10-03, 2019-10-04, 2019-10-05, 2019-10-06, 2019-10-07, 2019-10-08], name: NewEngland, printDates: [Wednesday
...
I then comment out the print statement:
void main()   {
  test("Get current.json", () {
    Repository repository = Repository();
    repository.getCurrentJson().then(expectAsync1((regions) {
//          print(regions.toJson().toString());
      expect(regions.regions.length, 2);
    }));
  });

When I click the debug icon I STILL see the print results on the console!
If I click the 'run' icon, the test then runs correctly with no print statement appearing in the log.
Any changes to the unit test are not 'picked up' when executing via 'debug' unless I execute the code first in 'run' mode.

 flutter doctor -v
[✓] Flutter (Channel beta, v1.9.1+hotfix.4, on Mac OS X 10.13.6 17G8030, locale en-US)
    • Flutter version 1.9.1+hotfix.4 at /Users/ericfoertsch/Flutter SDK/flutter
    • Framework revision cc949a8e8b (5 days ago), 2019-09-27 15:04:59 -0700
    • Engine revision b863200c37
    • Dart version 2.5.0

[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/ericfoertsch/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[✗] Xcode - develop for iOS and macOS
    ✗ Xcode installation is incomplete; a full installation is necessary for iOS development.
      Download at: https://developer.apple.com/xcode/download/
      Or install Xcode via the App Store.
      Once installed, run:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install:
        sudo gem install cocoapods
        pod setup

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 40.0.2
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] Connected device (1 available)
    • moto e5 play • ZY323KXS9W • android-arm • Android 8.0.0 (API 26)

! Doctor found issues in 2 categories.

@efoertsch Thank you, it's interesting! Can you please try is it specifically for Android Studio? Is behavior the same if you run debug from command line, not through the studio button?

Hello @efoertsch !
Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thank you for your contribution.
P.S. If anyone still experience the same problem, please file a new issue with the information required in the template.
All system setups can be slightly different so it’s always better to open new issues and reference related issues.


Add RISCV64 ABI and cpu features to the ndk/guides

Android support ABIs are documented in https://developer.android.com/ndk/guides/abis. It needs to mention RISC-V too.

[ ] [#102]
[ ] [#103]
[ ] [#101]

(we won't be adding support for risc-v to the long-deprecated ndk cpufeatures library. i've filed https://github.com/google/android-riscv64/issues/101 for the updates to the text on https://developer.android.com/ndk/guides/cpu-features though.)

(i've unlinked #87 because i don't think that's really related, nor is there any dependency in either direction, but i've created new bugs for the specific CDD and d.a.c changes we need. arguably CDD isn't 100% related, but since CDD references d.a.c, there's a dependency here.)


Switch biocgenerics.format_table with biocutils.print_wrapped_table.

Also take advantage of more biocutils utilities for pretty-printing.

Amongst other things, we can now see the NumPy type:
from biocframe import BiocFrame
import numpy as np
X = BiocFrame({"A": np.array([1,2,3,4])})
X
## BiocFrame(data={'A': array([1, 2, 3, 4])}, number_of_rows=4, column_names=['A'])

int(X)
## BiocFrame with 4 rows and 1 column
##                    A
##     <ndarray[int64]>
## [0]                1
## [1]                2
## [2]                3
## [3]                4


var.subnet_ids should be optional

what

var.subnet_ids should be optional

why

It's only required if awsvpc is the launch_type since it's only used for aws_ecs_service's network_configuration
This makes it easier for EC2 (non fargate) tasks

references
N/A

/test all

/test all

/

/test all


docs: :memo: update badges, add tools and frameworks

Issue:
What I did

Removed link to npm
Changed circle CI badge to github actions
Added some notes about tools and frameworks used in Ripple 2

How to test

Checklist

For all PR's

[x] I've added relevant changes to the project Readme if needed.
[ ] I've updated the documentation site as needed.
[ ] I have added unit tests to cover my changes (if not applicable, please state why in a comment)

For new components only

[ ] I have added a story covering all variants
[ ] I have checked a11y tab in storybook passes
[ ] Any events are emitted on the event bus

Just realised I've hit some kind of limit on markdown render - https://651e1821217e21000880240c--ripple-docs.netlify.app/design-system/develop/usage I'll need to break the Usage page up


Mined 18 blocks. Before synced to network. Confirmed transactions.

This happened. Am I getting paid?
VGDALEVICH-2711:bin vgdalevich$ ./siac wallet transactions
    [height]                                                   [transaction id]    [net siacoins]   [net siafunds]
           1<PHONE_NUMBER>22d9fe491b57ab6d3ff27db0a5d4b682fb824e16f21c07ac738db4      299999.00 SC             0 SF
           2   000000000e122f40c260dae59e0d36f7c84782f09b7d6e6338220a46f0482af4      299998.00 SC             0 SF
           3<PHONE_NUMBER>2d5bfe8902913474084a392e265d08598cc78cc52737f027b6655b      299997.00 SC             0 SF
           4<PHONE_NUMBER>511a4829a947a0a93a4fbd1c21ff41fc7641f8551744a6f071f514      299996.00 SC             0 SF
           5   000000001a60615cfc2299334e100e50045a617ec904499ae954c228c1e3d8bd      299995.00 SC             0 SF
           6   000000001c7b5ac6c0a42f92797dd5a364aa07b3a93844c8702dd3ae08651700      299994.00 SC             0 SF
           7<PHONE_NUMBER>b7113a66271be2fede640e38eb70ace0b66f4938ce0e5ae5823ea2      299993.00 SC             0 SF
           8   000000000efb1a7f3b8af0dfffe1bec401f57a3fd9be0d2eba9b45c744c3a3d0      299992.00 SC             0 SF
           9<PHONE_NUMBER>751c166869ca9f89a4b741682e3e957d6cb92b1e1ea5095ae8bea2      299991.00 SC             0 SF
          10   000000001dda8efdf0727cc31d5d6c27b733ccdddc18a2b9d08a963352ac70ea      299990.00 SC             0 SF
          11<PHONE_NUMBER>7f6ba1b2de6e6a66b8cb8abd3af5f68c47058771386730923a95c6      299989.00 SC             0 SF
          12<PHONE_NUMBER>79896bbfc0fb90fac0928854b06321b59c0fba19be65f0d18bcae4      299988.00 SC             0 SF
          13   000000001cc309145b4ed7941f72b6bb5a93380a1ef7fe72e968390ea63528f0      299987.00 SC             0 SF
          14   000000000b896edc6cf1f9f0f0e5a0db2da4a0812deda6fef309d1c0feb9cf1e      299986.00 SC             0 SF
          15   000000000c41330ab0c3c1f93b47cfcd020b0e9cb2c9386f178785e3d03cebfb      299985.00 SC             0 SF
          16<PHONE_NUMBER>c7631b515a6cf368a5f1097d7df20fd7a58dc032693867b9cb1ba4      299984.00 SC             0 SF
          17<PHONE_NUMBER>0f864735eb950dc30b8b5c17ca2a369c79189dcb1a28fdbad31364      299983.00 SC             0 SF
          18<PHONE_NUMBER>13d90ce1c4505e1885f4bf30864e8103ebb5847cca02805a742ed2      299982.00 SC

Currently
Sia Client v1.3.1
Sia Daemon v1.3.1

Mined on 1.3.0

Looks like you started your own chain, congratulations! You did in fact successfully mine the first 18 blocks of your chain. These coins are however worth nothing on the real chain.
I guess this happened because you have not connected to any peers. When you do connect to some peers your own chain should be discarded and it should start downloading the real chain.

Thanks what I thought, got very excited at first. :) all synced up now.


Fixes an issue in the sln file that despite not having been changed, git reports as changed.

THANK YOU!!!!


The SDK assumes a trace_sample_rate of 0 means we don't want to trace

Environment
When running v2.13, setting the SENTRY_TRACES_SAMPLE_RATE to 0.0 will disable the tracing integration.
Whilst this is understandable when serving the frontend via Laravel, this does not work well when using Laravel as an API only.
Our use case has a VueJs frontend, and a Mobile client.
We are enabling performance monitoring and initially hoped to have the sampling decision set on the VueJs frontend for this initial phase.
Due to how couldHavePerformanceTracingEnabled is implemented, a 0 value causes tracing not to be loaded.
https://github.com/getsentry/sentry-laravel/blob/acbf23632582ec058a8fb51be2c5bc3a2283a52c/src/Sentry/Laravel/BaseServiceProvider.php#L47-L52
Steps to Reproduce

Enable the SDK with a DSN and 0 Sample rate
Have a front end with a positive sampling decision to make a request to the Laravel application.

Expected Result
A backend trace should be sent to Sentry with its parent set to the frontend id
Actual Result
The backend tracing integration was not enabled, and no trace was sent

For reference this issue was sparked by a conversation in the Sentry Discord: https://discord.com/channels/621778831602221064/621964286952210432/1030461140913897482.
This is assumed to be undefined or at the very least unclear behaviour of the SDK and we should decide how to proceed because it would still be nice to have the SDK not do all the tracing bits if the user is never going to use it, but our very naive heuristic at the moment is obviously also not ideal or correct behaviour.
A workaround for now could be defining your own trace_sampler callback:
'traces_sampler' => function (\Sentry\Tracing\SamplingContext $context): float { return 0.0; },

However this is not ideal of course but does workaround the issue until we figure out how to fix it correctly.

Just confirmed, we have to respect the sampling decision of the HEAD SDK, so we should instrument this regardless.

We should do this right away in a bug-fix release.

@AAllport First of all, thanks for reporting this. We actually discovered the underlying issue to be in our generic PHP SDK and will need to fix this there first.

Oh wow, didn't realise there was an issue with both of the SDKs.
I can totally understand how this happened, and it's somewhat of a non-issue for us now we've decided to just enable the sampling decision on all of the backend requests!
My point is, there's no rush from our end!


cleanups as suggested by errorprone

Description
This PR applies errorprone as in below diff and applies the suggested changes for the first few projects. The permanent application of errorProne is removed within the scope of this PR as most projects will give positives.
commit 9f9a2b6b7e094537fea75f633d355f983d4c15d7
Author: Daan Hoogland<EMAIL_ADDRESS>Date:   Thu Jan 12 19:32:35 2023 +0100

    errorprone

diff --git a/pom.xml b/pom.xml
index 204c74cc76..13c46d7521 100644
--- a/pom.xml
+++ b/pom.xml
@@ -817,6 +817,32 @@
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>${cs.compiler-plugin.version}</version>
+                <configuration>
+                    <source>8</source>
+                    <target>8</target>
+                    <encoding>UTF-8</encoding>
+                    <compilerArgs>
+                        <arg>-XDcompilePolicy=simple</arg>
+                        <arg>-Xplugin:ErrorProne</arg>
+                    </compilerArgs>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>com.google.errorprone</groupId>
+                            <artifactId>error_prone_core</artifactId>
+                            <version>2.18.0</version>
+                        </path>
+                        <!-- Other annotation processors go here.
+
+                        If 'annotationProcessorPaths' is set, processors will no longer be
+                        discovered on the regular -classpath; see also 'Using Error Prone
+                        together with other annotation processors' below. -->
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
         </plugins>
         <pluginManagement>
             <plugins>
@@ -1074,15 +1100,26 @@
                     <configuration>
                         <source>${cs.jdk.version}</source>
                         <target>${cs.jdk.version}</target>
-                        <fork>true</fork>
-                        <meminitial>128m</meminitial>
-                        <maxmem>512m</maxmem>
+                        <encoding>UTF-8</encoding>
                         <compilerArgs>
                             <arg>-XDignore.symbol.file=true</arg>
                             <arg>--add-opens=java.base/java.lang=ALL-UNNAMED</arg>
                             <arg>--add-exports=java.base/sun.security.x509=ALL-UNNAMED</arg>
                             <arg>--add-exports=java.base/sun.security.provider=ALL-UNNAMED</arg>
+                            <arg>-XDcompilePolicy=simple</arg>
+                            <arg>-Xplugin:ErrorProne</arg>
+                            <arg>--illegal-access=warn</arg>
                         </compilerArgs>
+                        <annotationProcessorPaths>
+                            <path>
+                                <groupId>com.google.errorprone</groupId>
+                                <artifactId>error_prone_core</artifactId>
+                                <version>2.18.0</version>
+                            </path>
+                        </annotationProcessorPaths>
+                        <fork>true</fork>
+                        <meminitial>128m</meminitial>
+                        <maxmem>512m</maxmem>
                     </configuration>
                 </plugin>
                 <plugin>

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)
[x] CI/build

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[x] Major
[ ] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[x] Minor
[ ] Trivial

Screenshots (if appropriate):
How Has This Been Tested?

Testing should be usual regression and monkey testing

no time to go through all the projects now, I will stop working on this for a while. I think it is worth the trouble though. Any additions/suggestions are welcome.

@DaanHoogland if codecov, sonar are enough should we drop this? I had proposed this but recently I've found the project backers were let go and this may require more effort than initially thought.

Thanks @DaanHoogland given we've sonar and codecov, we can revisit this in future; you may close the PR.

@blueorangutan package

@DaanHoogland a [SF] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: el9 :heavy_multiplication_x: debian :heavy_multiplication_x: suse15. SL-JID 6491

@blueorangutan package

@DaanHoogland a [SF] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: el9 :heavy_check_mark: debian :heavy_check_mark: suse15.  It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@blueorangutan package

Packaging result [SF]: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: el9 :heavy_multiplication_x: debian :heavy_multiplication_x: suse15. SL-JID 6548

@blueorangutan package

@DaanHoogland a [SF] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: el9 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 6549

@blueorangutan test

@DaanHoogland a [SF] Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

[SF] Trillian test result (tid-7148)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 41002 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr7088-t7148-kvm-centos7.zip
Smoke tests completed. 112 look OK, 1 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File

test_01_migrate_VM_and_root_volume
Error
79.74
test_vm_life_cycle.py

test_02_migrate_VM_with_two_data_disks
Error
52.41
test_vm_life_cycle.py

test_01_secure_vm_migration
Error
151.20
test_vm_life_cycle.py

let's test again
@blueorangutan package

@DaanHoogland a [SF] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: el9 :heavy_multiplication_x: debian :heavy_check_mark: suse15. SL-JID 7210

@blueorangutan test

@DaanHoogland a [SF] Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

[SF] Trillian test result (tid-7824)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 48470 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr7088-t7824-kvm-centos7.zip
Smoke tests completed. 112 look OK, 1 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File

test_05_vmschedule_test_e2e
Failure
270.98
test_vm_schedule.py


Organize examples

Just a placeholder for the time being...
Fixes #1586

Note to self
Before removing the WIP marker, remember to:

[ ] Check for broken refs to the following files in docs

[ ] add_header
[ ] modify_response_body
[ ] nonblocking
[ ] libpathod_pathoc
[ ] stickycookies
[ ] stream_modify
[ ] stream
[ ] tcp_message

I think this is ready. Should I squash the commits?

@thiagoarrais: Squashing @l33tLumberjack's commits would be great, yes. I see our CI systems are still not happy with the changes here, can we get the tests fixed as well? :smiley:

Commits squashed. Used the message from PR #1600. @l33tLumberjack, would you mind giving us a LGTM here?

Will check the tests next.

LGTM

Tests fixed.

Ready to be merged.

@mhils We have green lights across the board here ready to merge

Thanks guys!
I'll let @cortesi finish his docs update and then merge your PR and adjust the paths. We don't want the poor @cortesi deal with sphinx more than necessary. :wink:

@mhils: I think most of the major refactoring and moving stuff around is done now.
Should we try to get this PR ready again to merge it?
(rebase & fix conflicts)


[Docs]: work on TODOS

What type of suggestions?
Missing Information
What page is concerned?
No response
What is the issue?
There are many TODO: itens in the documentation.
Task:

look for todo: word in the /docs folder
fix them

Code of Conduct

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

there are two todo's waiting for video, I wont have the time to produce it for 1.11 and will skip it.
[//: # (todo: need new getting started video for github local)
](https://raw.githubusercontent.com/kubefirst/kubefirst/main/docs/kubefirst/local/explore.md)
https://raw.githubusercontent.com/kubefirst/kubefirst/main/docs/kubefirst/github/explore.md

documented reviewed, there are no TODO sticker note in the docs
I closed some todo's in other PR https://github.com/kubefirst/kubefirst/pull/1139/files


RestClient HttpClient Timeout

Can you set the timeout to 60 minutes just like on the ChunksDownloader? Is quite useful for long running queries. I can raise a PR but not sure if you accept any.

I have a pull request up for something unrelated to this, been there a while. Not sure if he checks them.

Can you also increase the timeout as part of the same PR? Is a trivial change.

@george-int21h Sure, thanks! I've changed timeout to 1 hour, updated package version will be released soon.

@george-int21h Done. Version 4.0.0 has increased timeout (1h) for http client.

Looks good. Thank you


gsn2x panics

Hi Jonas,
this example input file
G1:
text: This is a Goal
undeveloped: true
with the command line...
gsn2x bug2.yaml
causes...
: c:\bin\gsn2x bug2.yaml
thread 'main' panicked at 'called Option::unwrap() on a None value', src\dirgraphsvg\graph.rs:78:34
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
Let me know if you need a backtrace.
Many thanks...
gary

@DoctorGM I just released v2.1.0 that should fix the problems you found. Thanks again for the feedback.


Sybase jTDS driver error handling

Sometimes when running 'CREATE TABLE' statements for Sybase databases, I get this error message: 2762 ...'CREATE TABLE' command is not allowed within a multi-statement transaction ...
In other tools, like Squirrel and RapidSQL, this error is handled properly and does not cause tempdb to fill up and stops the execution of the script. However, using DBeaver, tempdb does fill up and causes database outages.
My question or issue is:

Is this something that I should try to correct in the SQL? If so, can the forum give me some advice on this?
Can the DBeaver tool be enhanced so as to not have tempdb fill up?

Maybe you need to switch to auto-commit mode?
This can be done in main toolbar or in main menu Database->Transaction mode.

Thanks @serge-rider. Switching to auto-commit mode in Dbeaver worked for me.


Allow from_text to produce numbers

Currently from_text always produces strings:
from_text """
a,b,c
1,2,3
"""

WITH table_1 AS (
  SELECT
    '1' AS a,
    '2' AS b,
    '3' AS c
)
SELECT
  a,
  b,
  c
FROM
  table_1 AS table_0

-- Generated by PRQL compiler version:0.5.0 (https://prql-lang.org)

'3' AS c could instead be just 3 AS c
That's because here, we always cast to a string:
https://github.com/PRQL/prql/blob/3f637524f4658a81c4c6795820f55496fe679515/prql-compiler/src/semantic/transforms.rs#L935
Two options for selecting the correct type:

Use our existing parser
Write a couple lines to decide whether it's a number or not

One other consideration — we may also need to demote all values in a column to strings if one value isn't a number. An alternative to this would be forcing the user to use quotes ('2') for numbers in a string column. Assuming the CSV parser handles the latter option correctly, that would be the closest option so we can make progress.
This would make a good early contribution for anyone who is up for a Rust PR.

Hi 👋😄
Thanks a lot for all your work 🙇♂ !
I tried to tackle this issue and end up with the following PR
I think the code could be improved and refactored but before doing that I would like to get a feedback around the proposed solution based on your 1st suggested option, i.e. "Use our existing parser".
The proposed solution rationale is: try to get the Literals from the parsed statements and fallback to the already in place Literal::String in case of any statements not matching a Literal value.
JFYI this PR has been worked on in the context of [] 😄

I don't like this, because parsing CSV columns as numbers automatically may produce unexpected results:
This is parsed as int column:
a
"1"
"2"

This is parsed as float column:
a
"1"
"2.2"

This is parsed as string column:
a
"1"
"2,2"

It all makes sense, but it stops making sense when you have a bad CSV file with 1000 rows where a single row contains a decimal dot instead of decimal comma.
I think this feature falls into category of "magic things that are great, until they stop working and you have to understand how they work".
Instead, I would propose that we keep parsing CSV fields as strings and start introducing functions for dealing with conversions from strings to numbers. This way the conversion is explicit and any errors can be traced back to the conversion.
(I hope I don't sound too discouraging :D )

It all makes sense, but it stops making sense when you have a bad CSV file with 1000 rows where a single row contains a decimal dot instead of decimal comma.

I can empathize but this is somewhere where we want to be easy rather than robust. This isn't going to be used for production; this is going to be used for things like "how does PRQL work when I aggregate a column of numbers?", and being able to execute an encapsulated query on DuckDB without having to prepare input data.
Having to coerce the types gets in the way of that.
An alternative would be to offer a stricter option, like DuckDB does: https://duckdb.org/docs/data/csv.html
WDYT?

That's a good point, this function is (currently) for demo queries anyway.
Ok, I'm -0 on implementing this.

Perhaps it makes sense to adopt the same types as json (string, numeric, boolean)?
I don't think an automatic guess function is needed to distinguish between these in json.
(This will cause the strings to need to be enclosed in quotes...)

JSON is different because it does define how to represent numbers, bools and null.
(and CSV already uses quotes for distinguishing between column-separating commas and commas in a field)

OK, so I'm def +1 on implementing this, so assuming others are OK with it, let's do it. (thanks @aljazerzen for the -0, think these are good ways of aggregating our views, and hopefully also creates the space for others to come and say "I'm -1")
I'll add some salient questions to the PR, appreciate any responses

Closing because of relation literals


Only last element in autocomplete list is selectable in android

Hello @Muirik , How did you resolved this issue?


[Bug] [dinky-web] dinky web startup error

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
dinky web startup error

What you expected to happen
dinky web start normally
How to reproduce
startup  dinky-web server by npm run dev
Anything else
no
Version
dev
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

找到变更历史 回滚该文件


Kubernetes v1.24: SecretEngineMount Type: KV / KV version 2

Hi,
this issue is also related to #66 #59
Now I try to create a SecretEngineMount:
apiVersion: redhatcop.redhat.io/v1alpha1
kind: SecretEngineMount
metadata:
spec:
authentication:
path: prod1/klst-kubernetes
role: klst-secret-engine-admin
config:
defaultLeaseTTL: ""
forceNoCache: false
listingVisibility: hidden
maxLeaseTTL: ""
options:
version: "2"
path: prod1/klst
type: kv
status:
conditions:
- lastTransitionTime: "2022-08-16T15:22:54Z"
message: unable to find token secret name for service accountklst/default
observedGeneration: 1
reason: LastReconcileCycleFailed
status: "True"
type: ReconcileError
note this happens for kv  and kv version2
In a Kubernetes Cluster < V1,24 the same deployment works perfect.
Thanks for your help and let me konw in case I can assist

this issue was resolved recently, did you update to the latest?
On Tue, Aug 16, 2022 at 11:37 AM klst9498 @.***> wrote:

Hi,
this issue is also related to #66
https://github.com/redhat-cop/vault-config-operator/issues/66 #59
https://github.com/redhat-cop/vault-config-operator/issues/59
Now I try to create a SecretEngineMount:
apiVersion: redhatcop.redhat.io/v1alpha1
kind: SecretEngineMount
metadata:
spec:
authentication:
path: prod1/klst-kubernetes
role: klst-secret-engine-admin
config:
defaultLeaseTTL: ""
forceNoCache: false
listingVisibility: hidden
maxLeaseTTL: ""
options:
version: "2"
path: prod1/klst
type: kv
status:
conditions:
- lastTransitionTime: "2022-08-16T15:22:54Z" message: unable to find
token secret name for service accountklst/default
observedGeneration: 1
reason: LastReconcileCycleFailed
status: "True"
type: ReconcileError
note this happens for kv and kv version2
In a Kubernetes Cluster < V1,24 the same deployment works perfect.
Thanks for your help and let me konw in case I can assist
—
Reply to this email directly, view it on GitHub
https://github.com/redhat-cop/vault-config-operator/issues/71, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABPERXFA5RCBDY3HZFR42ILVZOYSVANCNFSM56WJYMHQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
ciao/bye
Raffaele

I redeployed the whol with "quay.io/redhat-cop/vault-config-operator:v0.6.2" but still the same error:
`
apiVersion: redhatcop.redhat.io/v1alpha1
kind: SecretEngineMount
metadata:
name: kv
namespace: team-a-dev
spec:
authentication:
path: prod1/team-a-kubernetes
role: team-a-secret-engine-admin
config:
defaultLeaseTTL: ""
forceNoCache: false
listingVisibility: hidden
maxLeaseTTL: ""
path: prod1/team-a
type: kv
status:
conditions:

lastTransitionTime: "2022-08-16T22:37:25Z"
message: unable to find token secret name for service accountteam-a-dev/default
observedGeneration: 1
reason: LastReconcileCycleFailed
status: "True"
type: ReconcileError
`
Thanks for your support
Klaus

what is the version of your kubernetes? also have you create the service account token secret (https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/#token-controller)?
Btw, I want to work on an improvement to remove the need for this step.

yes you are right
apiVersion: v1 kind: Secret metadata:   name: default   namespace: test   annotations:     kubernetes.io/service-account.name: default type: kubernetes.io/service-account-token
solves the problem.
Sorry for the ticket, and thanks for the help

see also #72


Tune up Boise Startup Week

Added support for sched.com in the schema, added an example for Boise Startup Week.
It is fine to keep the old iCal URL if there might be additional events that don't fit Sched, but soon enough having to have an iCal just to get start-end time of these larger events on https://gemstate.io won't be necessary. (A larger event's start/end can be inferred from the start/end of all the sessions on Sched, and there really shouldn't be anything more to do. I am not going to list individual sessions on gemstate.io; Sched handles the conference scenario very well.)

Tagging @domramirez who added the iCalendar URL for Boise Startup Week originally.


[Import] - Rework bulk import process for better performance

Currently we are using standard way of Symfony to insert batches of data but here is better way that is faster and more memory efficient.
Current implementation looks like:
$batchSize = 20;
for ($i = 1; $i <= 10000; ++$i) {
    $user = new CmsUser;
    $user->setStatus('user');
    $user->setUsername('user' . $i);
    $em->persist($user);
    if (($i % $batchSize) === 0) {
        $em->flush();
        $em->clear(); // Detaches all objects from Doctrine!
    }
}
$em->flush(); //Persist objects that did not make up an entire batch
$em->clear();

The produced SQL looks like this example:
START TRANSACTION
INSERT INTO navigation_timings (dns_duration, connect_duration,..) VALUES (1, 4,...)
INSERT INTO navigation_timings (dns_duration, connect_duration,..) VALUES (2, 3,...)
INSERT INTO navigation_timings (dns_duration, connect_duration,..) VALUES (3, 6,...)
COMMIT

There is a possibility where we can merge all 3 insert queries in one single query:
START TRANSACTION
INSERT INTO navigation_timings (dns_duration, connect_duration,..) VALUES (1, 4,...), VALUES (2, 3,...), VALUES (3, 6,...)
COMMIT

I found this GIST that helps me to merge the inserts in one single insert:
https://gist.github.com/gskema/a182aaf7cc04001aebba9c1aad86b40b
I also measured with implementing the more performance only at small portion of the import logic and I noticed performance improvements.
Inserted 4400 beacons 3 times:

#
Bulk Insert (sec.)
Standard batch (sec.)

1
14.51
17.03

2
14.8
17.12

3
14.92
16.89

I notice about 2 seconds improvement in this test and I expect this to become even faster when I implement it for all cases.

I reworked the bulk import part and managed to reduce the import time to ~ 12 sec. This is very good result so far.
Closing the issue.


Setup synthetic metrics and test alerts on COS

I also wanted to know whether we would be adding more data into mock_data.py down the line?

Yes, after this approach is accepted, we will add additional metrics(and corresponding alerts) in mock_data.py , and we can keep adding it in the future if we think we need more cases.


Improve the class and module spec API on State

Introduce interior mutability to the Maps that store class and module specs on the State. This patch makes the def_class and def_module APIs easier to work with.
The returned spec is wrapped in a Rc<RefCell<_>> which means a single Rc can be used mutably and immutably. This also removes the panic from attempting to mutate a spec after it has been used as a parent or as a super class.

Latest commits eliminate panics from the spec API. class_spec and module_spec return option and the class_spec_or_raise and module_spec_or_raise macros ergonomically return nil and raise from within C funcs defining mrb methods.

TODO: Now that we're returning proper Rcs from the spec APIs, we can expose wrappers on the Mrb type to make the API easier to use. This isn't super high priority given the new macros I've introduced though.


large CPU and Memory usage on open Vue devtool window

My application uses a web socket to update markers and show transport .
When I open devtool, I see a huge amount of events [ready $emit by LGeoJson]
Chrome uses 2GB, the CPU goes to a zone above 60%
On my map about 20 static LGeoJson and 100 static event markers are displayed.
Even with such a small number of objects, I get crash vue devtool.
If I go to tab "Events" and push "clear" events, the memory is released, there is no load CPU and no crush devtool.
Next, I add transport objects whose coordinates change dynamically on a web socket and see events [update: latLng $emit by LMarker]
There are a lot of them and it is very difficult to track down the desired event.
I understand that the problem is most likely in dev tools, but is it possible to disable map objects from $emit?
Browsers Affected

[ ] Chrome  75.0.3770.80
vue devtool 5.1.0

Versions
Leaflet: v1.5.1
Vue: v2.6.7
Vue2Leaflet: v2.1.1

At the moment we have no way to disable the events, and yes it's a vue dev tool issue that occur in other cases as well.
Would you consider a PR to add a kill switch for events?


Streets for interactive mapping

Changed the projection to allow for new github mapping feature!

@MitsueIwata Good start, but let's look at a couple of other items:

[ ] Keep the geojson file consistent with the other file names, i.e., Transportation.geojson
[ ] Meanwhile, let's go ahead and delete the other files in data/. Let's just keep one data file in the repo so there isn't confusion or out-of-sync issues.

Do you think we should have the geojson file be human readable? We have in the past, but it's less clear to me. What do you think? Worthwhile or no?
/Same comment applies to the other PRs.

I changed the geojson for bike routes, pedways, and streets so that they're readable. Also now the same file names. What do you suggest for the building permits dataset?

You mean building footprint?
I'd leave it be, it's too hairy. Just need to zip it up.


How can Dynablox be used for motion planning?

Hello, great job! As we know, Voxblox is used not only for reconstructing 3D meshes but also for generating ESDF maps for robot motion planning. My question is: How can Dynablox be used for motion planning?
The planning example for Voxblox mentioned here https://voxblox.readthedocs.io/en/latest/pages/Using-Voxblox-for-Planning.html states that you should use esdf_server node and subscribe to the incremental mapping data in the planner node. However, in Dynablox, it uses tsdf_server instead. I am wondering if there is an easy method to generate an ESDF map while also considering dynamic obstacle detection using Dynablox?
I sincerely seek your guidance and hope to receive your kind advice.

Hi @9woods123
Thank you for your interest! Planning on dynablox should be very easy! You can either:

directly use the TSDF layer to perform occupancy checks,
Add an ESDF integrator and compute the esdf from the tsdf and plan on this (this is exactly the pipeline voxblox uses, c.f. here)

In addition, having the dynamic objects output by dynablox should boost your planner in dynamic scenes. Hope this helps!

Thank you for your response！Your suggestion helped me better understand the ESDF server framework.
I am considering running the ESDF as a separate process for map building ( as the planning example for Voxblox mentioned here https://voxblox.readthedocs.io/en/latest/pages/Using-Voxblox-for-Planning.html), and at the same time, ensuring that the point clouds from dynamic obstacles are not used to build the voxel map. I have made some small modifications, which I would like to share with you.
  esdf_server_=std::make_shared<voxblox::EsdfServer>(nh_voxblox, nh_voxblox);
  esdf_server_->setTraversabilityRadius(3);
  esdf_server_->publishTraversable();

  // tsdf_server_ = esdf_server_.

  tsdf_layer_.reset(esdf_server_->getTsdfMapPtr()->getTsdfLayerPtr());

and
  sensor_msgs::PointCloud2::Ptr  static_object_pointcloud_msg=
  getStaticObjectPointcloud(msg,T_M_S,cloud,cloud_info);
  // The point cloud was obtained, and the points corresponding to dynamic obstacles were filtered out.
  // Only the  points corresponding to static obstacles are input into processPointCloudMessageAndInsert()
  // for  building esdf_map.
  esdf_server_->processPointCloudMessageAndInsert(static_object_pointcloud_msg, T_G_C, false);
  esdf_server_->publishPointclouds();

I hope this helps with future work on online motion planning in dynamic environments. If needed, I would be happy to upload a PR and contribute to this great work.

Hi @9woods123
It should actually be much easier than this. The code you posted performs TSDF integration and motion detection in dynablox, and then takes the resulting static points to do TSDF and ESF integration again in voxblox. You should be able to directly take the TSDF from dynablox (which already integrates and updates dynamic points accordingly), and then perform ESDF integration only on that layer. Hope that helps!
If you want to follow the voxblox multi-node architecture you should also be able to publish the TSDF from dynablox, and subscribe to it and do esdf integration in a separate node.
Hope this helps!

Thank you for your response! I have adjusted my approach based on your suggestions. However, I have encountered something that confuses me. When using the "fast" or "merged" TSDF integrator in Voxblox, I observed that dynamic objects are not effectively filtered out, as shown in the screenshot below:
The situation looks like

It appears that dynamic objects become integrated into the mesh structure. Conversely, the "projective" integrator seems to handle dynamic object filtering more effectively. I have reviewed the implementation of the "projective" integrator in voxblox/include/voxblox/integrator/projective_tsdf_integrator.h, but I couldn't ascertain how it achieves this dynamic object filtering.
Could you kindly direct me to any relevant papers, documentation, or specific sections of the Voxblox source code that explain how dynamic object filtering is achieved in the "projective" integrator? Your guidance would be greatly appreciated.

Hi @9woods123,
We've only updated the projective integrator to build the free-space map needed for motion detection. In general, we strongly recommend using only the projective integrator in general, as it is a strictly preferable option over the ray-casting-based ones (fast and merged).
I think the only difference required to run dynablox is that some small field (last observed or so) is set, so by adding this to the other integrators they could also work. The rest of the work is done by the tracking integrator in dynablox.
Hope this helps!


Thoughts on "schemes"?

Hey @greymd, in my workflow as it pertains to tmux-xpanes I use what I call "schemes."
For example, I have an iTerm profile called "XP::Packages" that executes this script after login:
${HOME}/.config/tmux-xpanes/schemes.bash pkgmgnt
function pkgmgnt() {
    title Package management

    xpanes -t -d -l t -c "{}" "title gems; gem outdated" \
           "title macports; port outdated" \
           "title yarn global; yarn global upgrade-interactive" \
           "title composer global; composer global outdated"
}

Would it be possible to build in such a feature?

Hi @paxperscientiam,
I am afraid that I didn't get what you mean, sorry.
I understood you have the script that runs after login, and various package managers update packages simultaneously. cool.
I am sure that a new window is opened and title is set as "Package management".
The window has new tmux session and four panes will be created by xpanes.
What point is difficult or troublesome ?
Perhaps, do you hope the feature to set more definite pane's title like title command ?

hi @greymd ,
Maybe I could have been clearer. xpanes works great! I was suggesting an enhancement.
Like, inclusion of "schemes" like in OP under lib/schemes/ or something like that.

Hi,
Thank you for using xpanes anyway ;)
I am welcome to any PRs or suggestions !
By the way, I've got the new idea recently.
I am wondering it might be similar to what you expect #106 .


Disable color

I want to have the guiding lines but not bracket coloring. Is that possible?

if you're ok with not having the guidelines be colored, you could make all the colors the same
bracket-pair-colorizer-2.colors

@that70schris

if you're ok with not having the guidelines be colored, you could make all the colors the same
bracket-pair-colorizer-2.colors

yes, but it would be more awesome if we can just disable it. because if we do it by the colors, we have to do it again everytime we change the theme, and for users of the peacock extension it will be more work also than neccessary.
@tstreamDOTh  i think "Disable color for brackets only" would be a better title

I agree, however it's my understanding that bracket-pair-colorizer-2.colors is not something that themes generally modify, and even if they did, user settings should still take precedence.  So, although it's still a workaround, at least you shouldn't have to redo it every time you change themes and should still work with the Peacock extension.
Does this sound right or am I missing something?

@that70schris Yeah, makes sense.
Sorry for this statement:

and for users of the peacock extension it will be more work also than neccessary
I just had started using the extension that day, (for some reasons ^^') I assumed it changes syntax highlighting too...

However

I agree, however it's my understanding that bracket-pair-colorizer-2.colors is not something that themes generally modify, and even if they did, user settings should still take precedence

That's right, the theme will not change brackets color explicitly, but it will be the theme's default color for text.
Let's say am using a dark theme and my text is white on dark bg, so i set all bracket-pair-colorizer-2.colors to white so it feels normal; if i switch to a light theme where text is black on white, then all braces won't be visible unless i change bracket-pair-colorizer-2.colors .
That's kind of extreme, but it shows what am trying to explain.

:+1:  I really love the extension but the ability to simply disable colors would be great. I personally want to use the vertical line and the gutter display of brackets without the colors.
Thanks !

I too would love the "Disable color for brackets only" setting.

Same here, I would use it if my IDE would not look like a rainbow. Guidelines are nice doh.

Any workarounds for this? How to disable brackets and just keep the scope lines?


DocPad

How is this any different then DocPad?

Hi @jtwebman - there is a small note on the rtfd.org site regarding this comparison (it's the first bullet point):

DocPad: Powerful, but complex interface for users and developers. Roots has the same power, and is > complex for developers, but simple for users.

@jenius can probably give a more detailed breakdown of the differences if asked, but he is occupied with the adventure of a life time at the moment, so do not be alarmed by sparse response times. :)
Speaking from limited experience with DocPad, I much prefer Roots' simple configuration and file-extension based workflow, without detracting the ability of hooking very deep into internals if need be with it's super powerful extension system.
If it's not the internals and abilities Roots provides, it's the completely awesome level of warm, friendly support you get from the team here and their persistent encouragement  for and welcoming nature towards contributions, even going so far as to provide the necessary starting point when one is clueless as to where to begin adding a feature or fixing a bug.
Since I started using Roots some time ago, back when it was still early 0.2.0 - I have seen my productivity and development speed shoot up exponentially and have even grown as a developer through reading the very well-documented and clean source code and discussing things here with the Roots team, so much so that it has positively affected my career in ways I could never have imagined and opened me up to opportunities I'll never forget, which is not something a lot of self-taught 22 year olds can say for themselves.
I urge you to give Roots a try and form an opinion of your own - and please do share that opinion, every bit of feedback helps. :)

Yeah Declan covered it quite well. This question is essentially the same as asking "how does using snapchat differ from texting a picture then deleting it?". At it's core the two products aim after the same problem, building static sites, but they handle it in very different ways. You could ask the same thing about middleman, grunt, brunch, or any of the other large numbers of static site builders. What it comes down to is that you should watch some of the tutorial videos on the site and try it out yourself. While you might come out with a static site from any of these tools, it's simply a different experience building it.
Closing this issue as it's not an actual issue under active management, but feel free to continue discussion here!

I actually think it is very different then asking the grunt and gulp question and I feel the analogy is a little off. After watching the videos and playing around with a site I think it is like the difference between Instagram videos and Vine videos. I think maybe you guys have never used DocPad because from what I see they are exactly the same thing with only minor differences like 8 sec video vs 15 secs video.
Here is what I see and some of what I think is missing that Docpad has:

The config looks like it forces me to use coffee script. I am one of those people that really doesn't like CoffeScript. Docpad lets me write the config in javascript or even json if it is simple.

Accord just makes it a little easier when you start out but that really is it. Docpad just does this with plugins. The plugins way is much better because I don't have to wait till accord supports the library or send you a pull request. Also maybe my library isn't public so it wouldn't make sense for you to put it in Accord. I can just build the Docpad plugin with no other dependencies. In Roots I am guessing I could write my own extension to do this just seems strange having accord and extensions when it could all be done with extensions.

I am concerned that your employee page was dynamic. In Docpad you could easily have done it with collections and then markdown or yaml or what ever you wanted. Unless maybe the employees could update the data themselves. Roots-record requires json Docpad it could be anything. Paging also is no issue in Docpad. It can be easily setup to generate each page. The advantage being that it all gets indexed by google.

Client-templetes was a really nice feature that Docpad is missing though if I needed it for something I don't think it would be hard to add in. I would love to see it done with React vs Jade. My only concern is client-templetes is dependent on Accord.

The Wordpress thing is cool but Docpad does that as well as you can use Tumblr, Medium, MongoDB (Really and DB).

Templetes was nice but Docpad has skeletons which are very close to the exact same thing.

Last, when I played around with the code you end up changing the config so much but then you have to restart the watcher. Doesn't seem like a hard task to add in that the watch auto resets when the config changes.

So from my point of view you are rebuilding Docpad. You both even like CoffeeScript. Image if you guys would have just worked with Docpad and added maybe client-tempeltes how much farther along both of these would have been. This is why I asked the question because you guys are both doing the same thing. Comparing to Wordpress or Grunt doesn't make sense but Docpad and you do the same thing, almost exactly.

 Appreciate you taking the time to write this out and your point of view. Unfortunately, I just can't totally agree with you. You started out saying that they are the same and we are rebuilding docpad. You then followed this up by pointing out that there are a bunch of things that are different between docpad and roots, but that you like docpad better. I could make a very similar comment to this for brunch, middleman, grunt, and gulp quite easily. It would say that some things were the same, some things were different, but I preferred X or Y. On top of that, roots is not like a new thing we just started. We started building roots more than three years ago, when docpad was in its infancy and not even similar to what it is now.
Let me respond to the concerns you brought up here:

We considered adding a javascript config option, but never followed through because there wasn't enough demand for it. Coffeescript is just cleaner for simple things like config files. You aren't doing any heavy lifting with the code, just config. It would be a very easy feature to add if someone was interested and sent in a PR.

Are there any languages you plan on using that are not supported by accord? I see where you are coming from in theory, but you'll find that in reality accord provides a much simpler and more trustworthy way to deal with compiled languages. You don't need to sort through and find one of potentially a few third party extensions, figure out which one is still maintained, then load it in with any of its dependencies. You just install the compiler direct, add the extension, and that's it. You can trust that accord is actively maintained and thoroughly tested. The team behind this project is quite active and you'll find that getting another language accepted to accord takes no time at all if you have written a thorough implementation and tests. And if you haven't, we'll work with you to get it up to speed.

The employees update the data themselves through an API. It could easily be static if we wanted. In fact, we could easily convert it back to static using roots-records, we just haven't got around to it yet. Most of carrot.is is controlled by a CMS.

You seem to be worried about accord, but I don't get why. Have you had problems with it? Client templates work perfectly fine, give them a shot. We already have full support for jsx in accord and a template for a working react app in roots and have had this for a while. I'm interested in using react with jade instead of jsx as well and it is feasible, just have not implemented all the adapters for it yet, personally. I'm traveling this year and have less working time than usual. But if anyone is interested in speeding up this process would be happy to work with them. Honestly it shouldn't take more than a day or two to get the tools in place for this.

We could and would add any of these services if we had a need for them. It generally takes us about one work day from a single employee to add a vendor-specific extension. Wordpress extension took me about a day. We build things as we need them. If there's something you need, we would be happy to work with you and make it happen.

We have an entirely separate and very robust library for this called sprout. In fact, as you have seen with accord, much of roots is actually split out into other independent libraries. Anyone is welcome to use these libraries independent of roots. Roots is just the glue.

Wouldn't be hard, just hasn't been a high value feature for us. If anyone wants this it shouldn't be tough to add.

If you like docpad better, that's entirely ok, you are welcome to use it, and not use roots. If you have a docpad feature that you like and wish roots had, we can discuss that particular feature and I'd be happy to break down why we made the decision that we did. But if you think that roots is "rebuilding docpad", it simply could not be further from the truth. They are two entirely different products that handle building static sites in different ways. The only thing that's similar between them is that they produce a static site in the end.