Rewrite the backend in Rust?

First and foremost, I'd like to thank everyone who contributed to this project, which has been an excellent contribution to the Nix ecosystem. Inspired by @domenkozar work on devenv, I want to propose rewriting the backend in Rust. While some of the primary contributors may already be familiar with this language, I would want to summarize and highlight some of the features that this project would benefit the most from:

Fearless concurrency - Rust maintains memory safety, which is particularly beneficial in the context of concurrent programming because it prevents the majority of typical issues such as data races. More specifically, the publish endpoint may benefit from these because tasks like inserting a new record and indexing could be done concurrently.
Error handling - Rust distinguishes between recoverable and unrecoverable errors, making it easier to reason about all the possible edge cases of functions, as errors are part of the type signature Result<T, E> and need to be handled explicitly.

After some little research, I found that there are Rust clients for all of the services the application relies on:

Open Search - There is an official client.
GitHub - While there are a few alternatives here, it is also possible to call the GitHub API directly using a simple HTTP client like hyper or reqwest, which is quite similar to what current Python code does.
PostgreSQL - While there are a few native libraries to communicate directly with PostgreSQL, there are also database-agnostic options like SQLx that check queries at compile time.

Regarding web frameworks, axum appears to be one of the most popular based on overall performance. Before getting into more technical details, I wanted to get some feedback about this proposal, as I understand that rewriting a piece of software in a new language always involves some risk and has an impact on maintainers. Nonetheless, I'd like to put this on the table in order to start a conversation and, hopefully, answer all of the questions that arise.
Note: If this proposal gets approved, I would be pleased to submit a PR.

That sounds good to me, I'd happily accept the PR.
Using hyper/sqlx/axum sounds like a good choice.


Replace "require" with "require_relative" where possible

Allows bin/github_changelog_generator to be invoked from anywhere.
This facilitates easier ad hoc testing locally.
This commit leaves specs unchanged on purpose.
See: https://github.com/rubocop/rubocop/issues/8748

Fixes #947


Enums not seeing facilityguard

“Delegates” does not work on the method after the spawn of a guard and works after the spawn of all other characteristic roles.
public static AutoElement AutoElement { get; } = AutoElement.Create(Roles.HumanRoles, MyElement).UpdateEvery(TimeSpan.FromSeconds(0.7));
public static AutoElement AutoElement2 { get; } = AutoElement.Create(Roles.MilitaryRoles, MyElement).UpdateEvery(TimeSpan.FromSeconds(1.4));

thanks for pointing this out, rn its accidentally
    /// <summary>
    /// Gets the Facility Guard role id.
    /// </summary>
    FacilityGuard = 1 << RoleTypeId.Tutorial,

fixed, quick fix :3

will publish new release soon

Now AutoElement.Create is disappear(?


Link to the blog post?

README.md
'...Learn all about it by reading this blog post.'
Which blog post? The link is missing. :)

Just made a PR for this: https://github.com/elixirschool/live-view-chat/pull/6


Support Sketch 45 plugin update system

Hi there!
This is a quick note to remind you that Sketch 45 will include a plugin update system.
It would be awesome if you could add support to it (it's really easy!) before Sketch 45 comes out. Ideally, you should release an update for your plugin while we're still in Sketch 44, so your users will have a nice & easy experience when 45 is released.
For more details, please check http://sketchplugins.com/d/229-updating-plugins and http://developer.sketchapp.com/introduction/updating-plugins/
Thanks in advance!

This is just a demo project so there isn't really an appcast URL :-/

Sorry about that, I went a bit crazy with my copy & paste! 😬


[WIP] expand documentation

This is work in progress to make our documentation more structured and organized (#380). Please offer suggestions for topics, layout, or whatever else comes to mind.

I'm going to merge this and open another PR for ongoing documentation work.


TOC Table of Contents for Posts

Is your feature request related to a problem? Please describe.
The only problem I'm trying to solve is giving the reader (of a post) the option to skim the text with a table of contents. I write longer posts (10-20k words) with many headers. I think a TOC would be compassionate and helpful for readers that want to skip ahead.
Describe the solution you'd like
A table of contents feature that could be activated in the post's front matter, like a boolean TOC=true/false. The TOC would be limited to displaying the H1, H2, and H3 headers of the post.
Describe alternatives you've considered
Creating a TOC manually and pasting it in to the MDX post.
Additional context
I really like how the TOC feature is implemented in hugo-haperMod.

I like the idea too! I might implement as a component so you can insert it anywhere in the post like <TOC /> rather than in the frontmatter.

Implemented it in the recent pull request to master. Check it out over here - https://tailwind-nextjs-starter-blog.vercel.app/blog/new-features-in-v1#table-of-contents-component

@timlrx  I think it will be better if keep TOC STICKY on the right side of the blog.
When we scroll down TOC will be always visible and reader can click and navigate to any part of the post.
Like-

I prefer it inline for a blog. However, feel free to pass the toc object to layout and render it as you describe. It should be a relatively straightforward modification.

Thanks for implementing this @timlrx, it looks great!


GUI crashes when pressing left or right mouse button on an empty location

The simulator GUI crashes when pressing either the left or right mouse button on a location where no object is located. This is because the simulator doesn't always check if there is an object there, it just assumes there is. I've made a PR (#29) that fixes this issue.

Added fix to development branch. Will be tested and added to the next release.


Paper 1.18 | After Upgrade: Again broken for Chat

Hello,
After upgrading to 1.18 the Plugin seems to be broken again (chat-wise). You can't klick the Text in the Chat. Everything else seems to work just fine.

Can confirm the bug is happening for myself as well. Doing tests to figure out why.

@tininet, check out the new release for a version that works with 1.18.

Can confirm: Works again on paper1.18#59 - [33ea869].
Thanks mate!


[BUG] - Style tags not added when using externals

Describe the bug
Hello,
When I try to make 'vue' as external in vite config in order to use importmaps:
rollupOptions: {
        external: ['vue', 'vue-router', 'vuex'],

I have found that the style tags are no more added to the DOM. I even don't find the keyword data-v-ce in the generated sources.
In the provided reproduction link, I can not reproduce the issue as I couldn't replicate all the environment I have (transforming my vue3 app into a web component and using it in another container). I will try to create a full reproduction on a separate git repo.
I wanted to know if this is a known limitation ?
Thank you,
Reproduction
https://stackblitz.com/edit/github-ajr7vy?file=vite.config.ts
System Info
No response
Used Package Manager
yarn
Validations

[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a unplugin-vue-ce issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs instead.
[X] The provided reproduction is a minimal reproducible example of the bug.

In the reproduction repository you provided, I noticed that you seem to want to import vue from CDN. Sorry, unplugin-vue-ce is not supported.
Because the specific implementation code of unplugin-vue-ce comes from my own PR in vue/core, which is deeply bound to the vue runtime, but vue does not have a public method to deeply modify the runtime, so unplugin-vue- ce injects the implementation code into the vue runtime through compilation (as described in the README).
Therefore, using vue from cdn is not supported

@baiwusanyu-c thanks for this cool repo! I also did not get that "inject" means that we need to have it at build time, maybe you can update the note banner in the repo to be more precise about that, and use terms like here with patch and does not work for externals etc.
Is there any way we can patch the lib ourself? Like just adding the plugin does not seem to work for me. In my setup I have a app that dynamically loads a lib which should use the ce feature.

I also did not get that "inject" means that we need to have it at build time
Sorry to cause trouble to you, what I mean is that the plugin will modify the code content of vue during compilation to achieve the functions we want. This is actually risky, and I hope you can understand this. So it must be vite compiled.

In theory, it is possible to use plugins combined with rollup to build and distribute a vue separately, but I have not tried it. All my projects build the vue runtime code directly into the final product.


Ubuntu 12.04 no longer supported?

I installed a new 12.04.5 Deskop system (supporting an aging robot configuration) and set up the ROS Precise apt repo.
$ sudo apt-get install python-vcstool
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 python-vcstool : Depends: python:any (>= 2.7.5-5~)
E: Unable to correct problems, you have held broken packages.

AFAIK, 12.04.5 isn't going to get Python 2.7.5.   It's stuck at:
$ python --version
Python 2.7.3

Can the python-vcstool package in the ROS Precise apt repo be rolled back?  Is version 2.7.5-5~ actually required, or is that an artifact of a build server decision?  Or can you recommend a workaround?

Looks like the pip package installs and works.  I'm betting it's just a Debian packaging issue.

Thanks for pointing out the problem on Precise.
The Debian packages are not built by any build server but using the script from https://github.com/ros-infrastructure/ros_release_python which uses stdeb. It seems like that the Debian package embeds this Python version (done on Xenial using stdeb from Debian) which it didn't do before (on Trusty using stdeb from PIP). The following documentation update should prevent future problems: ros-infrastructure/ros_release_python#13
I have also released a new version of vcstool (0.1.17) with this updated process and it has the correct Python dependencies as far as I can see in the Debian control file. If you could please try it and confirm that it works for you too that would be great.


feat: macos runner support

#160

It turns out that it's not enough that the Docker package has an ARM build: https://github.com/peter-evans/create-pull-request/issues/40


support rhel9

What type of PR is this?
/kind feature

What this PR does / why we need it:
See pipeline about building of os-pkgs in https://github.com/tu1h/kubean/actions/runs/5795598956/job/15707502958

Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

/lgtm

/approve


Units in Grafana - GB and TB showing as EiB and ZiB

Hi people,
I am measuring Vmware datastore size and data units are set to gigabytes (using Zabbix plugin for Grafana). Please, can somebody explain how to tell Grafana to show me GB and TB units instead of EiB and ZiB?
Thank you in advance

What are the raw numbers?

Thank you very much for your response.
As nycnewman commented in #247, units are displayed correctly when I set Unit parameter to bytes or bits (showing GiB and TiB instead of EiB and ZiB).
My problem resolved. Thank you once again :)


Prepare lambdas for reloading all events

Disabled redshift delta
Turn off kinesis stream
Add retry kinesis stream
Change derived and collector tstamps to include 3 digit precision.

Pull Request Test Coverage Report for Build 449

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 98.116%

Totals

Change from base Build 447:
0.0%

Covered Lines:
562

Relevant Lines:
571

💛  - Coveralls


Simplify F.sigmoid test

This PR aims at rewriting sigmoid function test.
rel: #6071

Jenkins, test this please.

Jenkins CI test (for commit f02d72a02567c29c12e70ad7c0cd347935f02c26, target branch master) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)

Jenkins, test this please.

Jenkins CI test (for commit 2af81f22cdbd3dab80b04d7be65197259ead9652, target branch master) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)

The Jenkins failures are unrelated to the PR.


[UI] Unexpected Error logs and EOF, while starting meshery-ui server.

Current Behavior

Currently, whenever trying to start the local server using make server or even when using the build command make ui-server, it throws a bunch of error logs and an End of Function. Needed to resolve that.

Desired Behavior

No Error Logs.
Screenshots/Logs

Logs:
ERRO[2024-03-30T15:29:27+05:30] UNIQUE constraint failed: keys.id             app=meshery code=meshery-server-1312 probable-cause="Record already exist.Database connection is not reachable" severity=2 short-description="Unable to create record" suggested-remediation="Delete the record or try updating the record instead of recreating.Rest the database connection"
stream error: stream ID 21; CANCEL; received from peer stream error: stream ID 17; CANCEL; received from peer unexpected EOF stream error: stream ID 15; CANCEL; received from peer
Link to Similar discussion: https://discuss.layer5.io/t/404-page-while-running-meshery-locally/2448/2
Environment

Browser: Chrome
Host OS: Linux
Meshery Server Version: stable-v
Meshery Client Version: stable-v
Platform: Docker Kubernetes

Contributor Guides and Handbook

🎨 Wireframes and designs for Meshery UI in Figma (open invite)
🖥 Contributing to Meshery UI
🙋🏾🙋🏼 Questions: Discussion Forum and Community Slack

@MUzairS15


Remove lerna

WIP - I still need to fix TS errors.
The main purpose of this was to fix the postinstall script that's been giving us trouble - I think the main problem is it really needs to be at the root level rather than in the model-viewer package. However, during this update I found myself in a nasty catch-22 where the bootstrap process was somehow getting the old package.json and still looking for a non-existant postinstall script. I remembered that lerna bootstrap has been deprecated for some time, so figured this might be the right time to update to npm workspaces.
Since this is related to #4260 and #4363, @Beilinson and @btopro can you review this for me?

I looked into the issues and this seems like the best solution to me as well. Didn't even think about the yarn issue but it totally makes sense.

still running into this issue, would be great to get some progress here

still running into this issue, would be great to get some progress here

Same using NPM, can't install v3


Update New parms for 1901

@richardofsussex the ingest of rg13-overview-3.xml produced the following log information.
Extremely clean
1901_extract_freecen2_parms.txt

1901-modes-2.zip
First two log errors were 'missing at transfer'; the third was a (rare) inconsistency in the source syntax (it was Neath). The attached update fixes this and a handful of other tiny errors. Ready for sign-off?

@richardofsussex
Have looked in more detail and note that Yorkshire appears to be one county now not the 3 separate ridings.
However what is much more important is that we appear to be missing 200 pieces for Yorkshire.
From RS 13/4416 to RS 13/4613. They are on TNA

OK, I'll have a look when I get time.

Thx @richardofsussex just one additional piece of info. There are exactly 400 pieces in Yorkshire at present.

Putting the three Ridings together is something TNA have chosen to do - nothing we can do about that. In the process, they created an uber-county containing more than 30 Districts.  Only the first 30 were picked up by the (old) District extraction script because that's the default search result limit. I have now grabbed the remainder and will process them.

rg13-overview-4a.zip
Updated 1901 result.

Thanks @richardofsussex

Completed for now; suggest it be closed


How to change the OTA Server by command

Hi.
I think that the values:
#define OTA_HOST "<IP_ADDRESS>"
#define OTA_PORT 80

It should not be fixed.
How I can change this values by command?

The values are #defined so you can easily change them if you want to. This is just a sample, I can't see a scenario where you'd need to change this without it being acceptable to edit the file.

Thank you @raburton

Define your own host and port by command


Update to latest logging format and modify the accuracy method.

Update to latest logging format and modify the accuracy method.
Update to latest logging format in the ImageNet example and modify the accuracy method.
The accuracy method has been modified in https://github.com/pytorch/examples/blob/master/imagenet/main.py#L423 which they use reshape instead of view. I have found that in pytorch 1.7.0, setting the original line, it would get an error.
Fixes # (issue)

logging method has been replaced to latest self.log format.
replace view to reshape.

Hello @limberc! Thanks for updating this PR.

In the file pl_examples/domain_templates/imagenet.py:

Line 75:19: E225 missing whitespace around operator


Add rewriter that replaces cross joins with value joins

needs further changes to tree framework (i.e. stateful rewriting)

Requires merging https://github.com/opencypher/cypher-for-apache-spark/pull/583


Feature/boolean formatter tests

Hang on, rebasing.

Coverage increased (+9.02%) to 31.472% when pulling 737cf00603eb99cd80077467960a2528167c7fa5 on jeremiahsmall:feature/boolean-formatter-tests into 6855659fb18c6f45d95d94443494b82602689ff5 on DASPRiD:master.

Gah! Forgot to fix tests after rebasing.

Coverage increased (+7.0%) to 29.442% when pulling 9dbc7410a7ef5d7e43b66a1cdb4534e40b961eeb on jeremiahsmall:feature/boolean-formatter-tests into 6855659fb18c6f45d95d94443494b82602689ff5 on DASPRiD:master.


Access is denied

Hello,
after connecting for the first time with the geteduroam app on a Windows11, I missclicked and did not give it access to the network list.
Now I am facing this error which I do not know how to solve.

I tried to reset my network but this did not help.
Any insights?
Thanks!

I'm not aware of any network list permission dialog. Is it possible to reproduce on a different client, and share a screenshot of that dialog?
I kind of wonder if this is something specific to your profile. Do other profiles give you the same message?
You could try to download getgovroam, and manually load your eduroam's .eap-config into it - it's a different executable/App, it shouldn't share the permissions.

This is quite confusing. I juste completely reinstalled the windows as it is a new apparel to make it appear again. However, now the error is the following

However, I can now log in onto the wifi. I am quite puzzled but it seems to work now.

I

No need to re-open, but if you can still share what version of the App you're on, we can take archive this in case we stumble upon this again.

Hi @Ashwolaa, I see you closed this issue already, but this seems to be something that Microsoft changed in Windows 11 24H2. The app checks if the eduroam network is in-range, since 24H2 this requires the Location permission. I've created a test-version (only ARM64 so far) #60 that doesn't use Windows APIs that require Location access.
If you have this problem, you can go into Settings -> Privacy & security -> Location. In there, make sure Location services is on, and that Let desktop apps access your location is also on.
We're working to make sure this permission is not needed anymore in a future version of geteduroam for Windows, but the current version needs this permission in order to function.


Select for Compare disables context menu in OPEN EDITORS

VSCode Version: 1.14 Insiders
OS Version: Windows 10, macOS

Steps to Reproduce:

Open two files in the OPEN EDITORS section
Right click on one and choose Select for Compare
Now select another file in OPEN EDITORS and right click to try to bring up context menu

No content menu
This is a regression in 1.14, it doesn't repro in 1.13. Perhaps due to recent work on the Diff view for accessibility?

@gregvanl excellent catch!

@bpasero Should this go into the June recovery build?

@gregvanl last time I tried that, I got voted down because we wanted to get out a release and we have a 24h embargo, so I will not bother this time.
/cc @egamma @kieferrm

@bpasero I'm asking about the June Recovery build, not the June release. Right now this fix is in the July release bucket.

@gregvanl yeah thats a good idea, I pushed the commit to https://github.com/Microsoft/vscode/commits/release/1.14

I have experienced this issue also. Hope fix is coming.


ResponseError: NOWRITE You can't write against a non-write redis

Hi:
I encountered a problem that returned this error:
/env/lib/python2.7/site-packages/twisted/internet/defer.py\", line 577, in _runCallbacks"}
current.result = callback(current.result, *args, **kw)"}
/env/lib/python2.7/site-packages/txredisapi.py\", line 463, in handle_reply"}
{"":"    raise r"}
{"":"txredisapi.ResponseError: NOWRITE You can't write against a non-write redis."}

and I use txredisapi.ConnectionPool to build a connection pool.
The redis is a sharding cluster，master sometimes will encounter the hardware failure，and cause the master-slave switching. The problem is that the master-slave switching will cause the cluster 30S to be read-only.，so this error occurs.
I have checked the code, the error raise from:
    @staticmethod
    def handle_reply(r):
        if isinstance(r, Exception):
            raise r
        return r

My proplem is how can i handle this error？disconnect the current connection and reconnect it?  or disconnect all the connections from pool and recreate the pool?

Sorry, but txredisapi has no support for Redis Cluster yet. And I'm personally haven't used Cluster too.
So unfortunately, I can't help you here.
The cited code from handle_reply is just a common dispatcher all protocol errors are raised from.
Seems like the problem is that Redis node you are issuing write to is read-only. Probably txredisapi should be able to discover new master node, but for now it is only implemented for Redis Sentinel, but not for Redis Cluster.


"Launch Game with custom arguments"

Unsure what this error is. Moved the game from one drive to save space, this happened, moved it back, and tried fresh installation of the game and new version of the Mod Manager, still happening. It opens to the default launcher for the game when pressing continue. No mods loaded when starting it that way.
Unsure how to fix it, please help.

No fix here, sadly, ended up using the make collection and just turned on all the mods I was using for one set that I was using at the time. Hopefully something happens and it gets working again.

I got this error after reformatting PC and downloading, but not installing/launching Warhammer 3. Once I launched Warhammer 3 normally, changed my game/graphics settings, and exited I was able to launch normally using the mod manager.


atom editor plugin with beaker-notebook as server

I love beaker's autotranslation, however, I miss the editing power I have in Atom. There is a Jupyter plugin for Atom called Hydrogen, but - as far as I know - it doesn't have anything like autotranslate.
Any thoughts as to how difficult this would be to create? Or if it's a good idea?
My first thought to talk to a beaker-notebook docker container.

hey this is a great idea, thanks for the link to hydrogen.
glad you like autotranslation :)
this is doable now but it will be easier after our 2.0 refactor:
https://github.com/twosigma/beaker-notebook/issues/2835
that will simplify the client and allow things like batch execution of notebooks.
the container is a good way to run a beaker server, but i think any way of getting the server running will work for this, it's just another client.

Nice! Ok. I'm excited.


influxd db 9.2 takes too long to start

when starting influxdb service, it starts filling memory to reach upper than 12GB very slowly. during startup time, cpu usage is 100%. then starts responding on port 8086! before reaching this amount of memory usage no one is listening on port 8086.
There is no way to limit memory usage of influxdb currenty. some times influxdb stops responding to write post messages for about 1hour, so I need to restart influxdb service periodically which takes about 2 hours!!!
what is the problem?
Thanks in advance
This is my data folder size:
11441272        data/
I have installed influxdb 9.2 on Red Hat Enterprise Linux Server release 6.4 (Santiago) using instructions provided in https://influxdb.com/docs/v0.9/introduction/installation.html
this is my influxdb.config content
### Welcome to the InfluxDB configuration file.

# Once every 24 hours InfluxDB will report anonymous data to m.influxdb.com
# The data includes raft id (random 8 bytes), os, arch, version, and metadata.
# We don't track ip addresses of servers reporting. This is only used
# to track the number of instances running and the versions, which
# is very helpful for us.
# Change this option to true to disable reporting.
reporting-disabled = false

###
### [meta]
###
### Controls the parameters for the Raft consensus group that stores metadata
### about the InfluxDB cluster.
###

[meta]
  dir = "/var/opt/influxdb/meta"
  hostname = "localhost"
  bind-address = ":8088"
  retention-autocreate = true
  election-timeout = "1s"
  heartbeat-timeout = "1s"
  leader-lease-timeout = "500ms"
  commit-timeout = "50ms"

###
### [data]
###
### Controls where the actual shard data for InfluxDB lives and how it is
### flushed from the WAL. "dir" may need to be changed to a suitable place
### for your system, but the WAL settings are an advanced configuration. The
### defaults should work for most systems.
###

[data]
  dir = "/var/opt/influxdb/data"
  max-wal-size = 104857600 # Maximum size the WAL can reach before a flush. Defaults to 100MB.
  wal-flush-interval = "10m" # Maximum time data can sit in WAL before a flush.
  wal-partition-flush-delay = "2s" # The delay time between each WAL partition being flushed.

###
### [cluster]
###
### Controls non-Raft cluster behavior, which generally includes how data is
### shared across shards.
###

[cluster]
  shard-writer-timeout = "5s" # The time within which a shard must respond to write.
  write-timeout = "5s" # The time within which a write operation must complete on the cluster.

###
### [retention]
###
### Controls the enforcement of retention policies for evicting old data.
###

[retention]
  enabled = true
  check-interval = "10m"

###
### [admin]
###
### Controls the availability of the built-in, web-based admin interface. If HTTPS is
### enabled for the admin interface, HTTPS must also be enabled on the [http] service.
###

[admin]
  enabled = true
  bind-address = ":8083"
  https-enabled = false
  https-certificate = "/etc/ssl/influxdb.pem"

###
### [http]
###
### Controls how the HTTP endpoints are configured. These are the primary
### mechanism for getting data into and out of InfluxDB.
###

[http]
  enabled = true
  bind-address = ":8086"
  auth-enabled = false
  log-enabled = true
  write-tracing = false
  pprof-enabled = false
  https-enabled = false
  https-certificate = "/etc/ssl/influxdb.pem"

###
### [[graphite]]
###
### Controls one or many listeners for Graphite data.
###

[[graphite]]
  enabled = false
  # bind-address = ":2003"
  # protocol = "tcp"
  # consistency-level = "one"
  # name-separator = "."

  ## "name-schema" configures tag names for parsing the metric name from graphite protocol;
  ## separated by `name-separator`.
  ## The "measurement" tag is special and the corresponding field will become
  ## the name of the metric.
  ## e.g. "type.host.measurement.device" will parse "server.localhost.cpu.cpu0" as
  ## {
  ##     measurement: "cpu",
  ##     tags: {
  ##         "type": "server",
  ##         "host": "localhost,
  ##         "device": "cpu0"
  ##     }
  ## }
  # name-schema = "type.host.measurement.device"

  ## If set to true, when the input metric name has more fields than `name-schema` specified,
  ## the extra fields will be ignored.
  ## Otherwise an error will be logged and the metric rejected.
  # ignore-unnamed = true

###
### [collectd]
###
### Controls the listener for collectd data.
###

[collectd]
  enabled = false
  # bind-address = ""
  # database = ""
  # typesdb = ""

###
### [opentsdb]
###
### Controls the listener for OpenTSDB data.
###

[opentsdb]
  enabled = false
  # bind-address = ""
  # database = ""
  # retention-policy = ""

###
### [udp]
###
### Controls the listener for InfluxDB line protocol data via UDP.
###

[udp]
  enabled = false
  # bind-address = ""
  # database = ""
  # batch-size = 0
  # batch-timeout = "0"

###
### [monitoring]
###

[monitoring]
  enabled = true
  write-interval = "24h"

###
### [continuous_queries]
###
### Controls how continuous queries are run within InfluxDB.
###

[continuous_queries]
  enabled = true
  recompute-previous-n = 2
  recompute-no-older-than = "10m"
  compute-runs-per-interval = 10
  compute-no-more-than = "2m"

###
### [hinted-handoff]
###
### Controls the hinted handoff feature, which allows nodes to temporarily
### store queued data when one node of a cluster is down for a short period
### of time.
###

[hinted-handoff]
  enabled = true
  dir = "/var/opt/influxdb/hh"
  max-size =<PHONE_NUMBER>
  max-age = "168h"
  retry-rate-limit = 0
  retry-interval = "1s"

today it stopped responding to select queries too. select queries takes too long without response or timeout.
please tell me how can I debug influxdb queries to find out problem.

in startup influxdb uses only one core to bring data too ram. is there any solution for using multiple cores? it may help speeding up startup process

no idea?

@FarzinZaker the challenge is that we have no other similar reports, so it's tough to guess what might be happening. You've only got 11 MB of data, so there's no reason RAM should grow significantly beyond that.
Can you share some examples of your write statements?
Can you include your logs from startup?

As you see, data files size is 11GB not 11MB. I have about 161K measurements. each measurement may include 100 to 10000 data points.
Is it normal for influxdb to bring all data to ram at startup?
according to influxdb website:
On disk and in memory. It shouldn’t require a cluster of machines keeping everything in memory since most analytics data is cold most of the time.
so why it is bringing all data to ram?
I should mention that I have upgraded influxdb from 8.6 to 9.0 and 9.1 and 9.2 using rpm -Uvh. but data base is created after upgrading to 9.2.

It is not bringing all the data into RAM, it does load metadata however, which is an index of what series are in the shards.

so why it is consuming 12GB of ram on startup?

would disabling new shard creation on every 10 minutes help?

@FarzinZaker -- how do you know shards are being created every 10 minutes?

@otoolep I saw in previous issues for influxdb 8.x and in log file of 8.x version.

as you see, influxdb is consuming about 20GB one day after restart

if you think remote access to server helps detecting problem, give me your email address plz.

@DanielMorsing

Some profiles out of the system would be really helpful in tracking this down. To get a cpu profile and a memory profile run
go tool pprof -proto -output /tmp/memprofile http://serverhostname:8086/debug/pprof/heap
go tool pprof -proto -output /tmp/cpuprofile http://serverhostname:8086/debug/pprof/profile

If you send me the /tmp/cpuprofile and /tmp/memprofile files, I'll have a look

@DanielMorsing
memprofile
cpuprofile
thanks in advance

Looking at the profiles, there seem to be a lot of fields being created. What is the data that you're inserting?

I am using InfluxDB for historical data of stocks market. closing, min, max, low and high price plus stocks market related indicators like sma, ema, rsi and ...
I am not using fields or tags. I have created a measure for each property of each stocks item.
for example name of a measure is like dailyTrade_{itemID}closingPrice or indicator{itemId}_sma_7
so each measurement only keeps a value and date but I have about 161K measurements in this way

@FarzinZaker that is a less-than-optimal schema. I would strongly recommend writing to a few measurements and using tags to identify metadata.
Measurement: dailyTrade
Tags: ItemID, closingPrice
Field: value=
Also, a minor note, you are using fields, as it is not possible to write a point without at least one field. In InfluxDB, a field is the actual value stored with a metric. See https://influxdb.com/docs/v0.9/concepts/glossary.html for more context.

@beckettsean This type of design is because of limitations in version 0.8
sure, I will change it as you said
but you mean, stability problem, long start time and huge memory consumption is because of my wrong design?

0.9 has a brand new schema design, I highly recommend researching that and updating your code to reflect it. InfluxDB 0.9 is built with the assumption that there will be perhaps 100s of measurements in a given database, more likely a dozen or two.
I cannot blame any particular issue on the schema, but when there are problems and also a known bad practice at work, it's generally best to fix the bad practice first, rather than go down the rabbit hole of trying to tune something that's possibly fundamentally broken.
Practical effects are that your in-RAM series index is an incredibly broad, shallow index, rather than a deep branching index. What impact that has is hard to say a priori but it could easily have an impact on total RAM usage.
Another effect is that the database tracks field types per measurement. On startup, the system has to go and load the data types for each field for each measurement. That code is not at all tuned because there should be perhaps 50 field buckets to check. In your case there are 161000 buckets to check, and it's entirely possible that's a huge resource hog. It doesn't matter for those using a more congruent schema because a slow process that only happens a few dozen times is unnoticeable.
There are no doubt many more places where that number of measurements will lead to less than ideal behavior, simply because no one has gone poking around in those places yet from lack of need.

after migrating to new model, the problem solved and influxdb startup time is about 5 seconds now. thanks for your help.
the only remaining problem is that after about 2 or 3 days, write actions slow down from about 1ms for each point to 10ms. so influxdb should be restarted every 2 days.

Thanks for the update, @FarzinZaker. Future releases of 0.9 should eliminate any need to reboot to maintain performance.


Update http4s-circe, http4s-dsl to 0.23.16

Updates

org.http4s:http4s-circe
org.http4s:http4s-dsl

from 0.23.12 to 0.23.16.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.http4s" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "org.http4s" }
}]

labels: library-update, early-semver-minor, semver-spec-patch, commit-count:1

Superseded by #609.


Change diesel version and remove logic and fixes voting_nodes migration

Moves from diesel_migrations v2 to v1.4, to keep schemas compatible between Election DB and VitSS tests.
Removes logic from election-db crate, leaving just the schema.
Changes primary key type from NAME to VARCHAR, to get rid of diesel::sql_types in schema.

Why do we want to use 1.4 vs 2?
Vit-ss doesn't;t use this crate yet, and when/if it does, we should upgrade vit-ss.

@saibatizoku Can we fix conflicts and merge this PR, please?

Cancelling this, as it's obsolete nowl


Update examples to reflect fee calculation changes for query and transaction fees

Query fees should be addressed by #175 when COST_ANSWER is fixed to not require payment.
Transaction fees should be fixed by adding .setTransactionFee to all builder usages, or raising Client.DEFAULT_MAX_TXN_FEE.

Yes definitely! Setting Client.DEFAULT_MAX_TXN_FE will definitely be useful!

This shouldn't be needed if the default fee is now 1hbar. No fees should need to be explicitly defined.

Depending on transaction type and the hbar price, 1hbar may not be sufficient !

@mehcode upon using the latest maven repo (0.6.2), I actually need to also do client.setMaxTransactionFee(...) and then in individual transactions I need to set this too.
In testnet, I don't need to do this client.setMaxTxFee(), but in mainnet I definitely have to. JSilver advised me to do this too

@rahul-ki fees may be different between mainnet and testnet. If you set client.setMaxTransactionFee() to the highest value you have to set on an individual transaction builder then you shouldn't need to set fees on individual transactions.


I would like to add Deapth First Search using C

@anubhavitis @dheerajkotwani @tarun26091999 @avijit1999 @todi-2000
because it is important for traversing or searching tree or graph data structures. Please assign me this . I would love to make my first PR

c is not accepted and this issue is already assigned


What does the value in batteryCapacity represent?

I'm trying to get the battery size from the APIs and the closest thing I found is the batteryCapacity, however, from what I saw, the value returned for that parameter is always 12, do you know what that number represents exactly?
Thanks in advance for the response and for the great work documenting these APIs!!

FWIW, here are some actual responses I get to the two endpoints here:
BatteryStatusCheckResultRequest.php
{
  "status": 200,
  "responseFlag": "1",
  "operationResult": "START",
  "timeStamp": "2018-08-11 19:06:46",
  "cruisingRangeAcOn": "98496.0",
  "cruisingRangeAcOff": "102600.0",
  "currentChargeLevel": "0",
  "chargeMode": "220V",
  "pluginState": "CONNECTED",
  "charging": "YES",
  "chargeStatus": "CT",
  "batteryDegradation": "7",
  "batteryCapacity": "12",
  "timeRequiredToFull": {
    "hours": "",
    "minutes": ""
  },
  "timeRequiredToFull200": {
    "hours": "",
    "minutes": ""
  },
  "timeRequiredToFull200_6kW": {
    "hours": "",
    "minutes": ""
  }
}

BatteryStatusRecordsRequest.php
{
  "status": 200,
  "BatteryStatusRecords": {
    "OperationResult": "START",
    "OperationDateAndTime": "2018/08/11 20:06",
    "BatteryStatus": {
      "BatteryChargingStatus": "NORMAL_CHARGING",
      "BatteryCapacity": "12",
      "BatteryRemainingAmount": "7",
      "BatteryRemainingAmountWH": "",
      "BatteryRemainingAmountkWH": ""
    },
    "PluginState": "CONNECTED",
    "CruisingRangeAcOn": "98496.0",
    "CruisingRangeAcOff": "102600.0",
    "TimeRequiredToFull200": {
      "HourRequiredToFull": "6",
      "MinutesRequiredToFull": "0"
    },
    "NotificationDateAndTime": "2018/08/11 19:06",
    "TargetDate": "2018/08/11 19:06"
  }
}

This is using regionCode "NE" from Ireland for a late 2015 Tekna

It might be possible to determine the BatteryCapacity by looking at BatteryRemainingAmountWH.
Perhaps a 24kWh doesn't return a BatteryRemainingAmountWH
Perhaps a 30kWh does return a BatteryRemainingAmount and a SOC
Unknown for 40kWh leafs.
Later cars, I think after the initial 2016 24kWh Leaf, output the state-of-charge (SOC).  SOC gives the battery and so that can be used to get an accurate battery calculation.
Here's the output from my 30kWh Tekna (circa Nov 2017).
BatteryStatusRecordsRequest.php
{
  "status": 200,
  "BatteryStatusRecords": {
    "OperationResult": "START",
    "OperationDateAndTime": "04-Jan-2019 17:06",
    "BatteryStatus": {
      "BatteryChargingStatus": "NOT_CHARGING",
      "BatteryCapacity": "240",
      "BatteryRemainingAmount": "220",
      "BatteryRemainingAmountWH": "23440",
      "BatteryRemainingAmountkWH": "",
      "SOC": {
        "Value": "87"
      }
    },
    "PluginState": "NOT_CONNECTED",
    "CruisingRangeAcOn": "152000",
    "CruisingRangeAcOff": "170000",
    "TimeRequiredToFull": {
      "HourRequiredToFull": "5",
      "MinutesRequiredToFull": "30"
    },
    "TimeRequiredToFull200": {
      "HourRequiredToFull": "3",
      "MinutesRequiredToFull": "30"
    },
    "TimeRequiredToFull200_6kW": {
      "HourRequiredToFull": "2",
      "MinutesRequiredToFull": "0"
    },
    "NotificationDateAndTime": "2019/01/04 17:06",
    "TargetDate": "2019/01/04 17:06"
  }
}


Create 0000-01-02-andrarobinson.md

I've created a branch, created a file and made a commit, and opened a pull request so far.

ok

Got it!


Hub treating registered addresses as unregistered.

Currently querying the hub for results in many error messages of the form:
Wallet state service error for 0xA9F86DD014C001Acd72d5b25831f94FaCfb48717/0x114ce2440b207E43d7d1F6F1c8dD3504FD86A996 reason : Error: Unregistered wallet with no registration request provided.

This occurs even for addresses which are known to be registered on the hub.

fixed in 0x6cbed15c793ce57650b9877cf6fa156fbef513c4e6134f022a85b1ffdd59b2a1


populate README

This is one of the few things left to wrap up this project right? Ah yeah, and write a blog post about it if/when you can :)

yeah, that's right


dpkg was interrupted you must manually run sudo dpkg configure a to correct the problem

Tried to restart the vagrant from scratch and now I get this message.

Can you tell me what version of the Vagrantfile you are using?

Also, what version of PHP are you trying to install?

my vagrant file
# -*- mode: ruby -*-
# vi: set ft=ruby :

####
##
## GitHub Configuration
##
######

# if you want to maintain your own version of this project, feel free to
# fork it and change the following to reflect your own copy
gh_user   = "drmyersii"
gh_repo   = "vagrant-env-basher"
gh_branch = "master" # if you want to ensure consistency, use a specific tag (e.g. v0.1.0)
gh_url    = "https://raw.githubusercontent.com/#{gh_user}/#{gh_repo}/#{gh_branch}"

# path to provisioning scripts
scripts_url = "#{gh_url}/scripts"

# if environment is set to development, use local scripts instead
if ENV["ENV"] == "DEV"
    scripts_url = "./scripts"
end

####
##
## Vagrant Configuration
##
######

max_memory = 1024

Vagrant.configure(2) do |config|

    # set the base box
    config.vm.box = "ubuntu/trusty64"

    # set up network configuration
    config.vm.network :forwarded_port, guest: 10080,  host: 10080
    config.vm.network :forwarded_port, guest: 443, host: 10443
    config.vm.synced_folder ".", "/home/vagrant/app", type: "rsync",
  rsync__exclude: [".git/","dist/",".gitignore","node_modules/", "Vagrantfile","*.md","vendor/"],
  rsync__args: ["--update", "--archive", "--delete", "-z", "--copy-links", "--progress","-v"],
  rsync__auto: true
    ####
    ##
    ## Provider Configuration
    ##
    ######

        ####
        ## VirtualBox
        ####
        config.vm.provider "virtualbox" do |v, override|
            v.memory = max_memory
            v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
        end

    ####
    ##
    ## Provisioning Configuration
    ##
    ## - Uncomment the Necessary scripts
    ##
    ######

        ####
        ## base server configuration
        ####

        # @param: (optional) list of system packages to install separated by spaces. E.g. "git curl screen"
        args_base_packages = "git"

        # call base provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/base", args: [ args_base_packages ]

        ####
        ## mysql
        ####

        # @param: database name
        args_mysql_db_name = "dev"

        # @param: database user to create
        args_mysql_db_user = "dev"

        # @param: database user's password
        args_mysql_db_password = "dev"

        # @param: allowed hostname for connection to new database
        args_mysql_db_host = "localhost"

        # call mysql provisioner
        # config.vm.provision :shell, privileged: false, path: "#{scripts_url}/mysql", args: [ args_mysql_db_name, args_mysql_db_user, args_mysql_db_password, args_mysql_db_host ]

        ####
        ## postgresql
        ####

        # call postgresql provisioner
        # config.vm.provision :shell, privileged: false, path: "#{scripts_url}/postgresql", args: []

        ####
        ## php
        ##
        ## - Specify any version of php >= 5.3. I recommend using 5.5 or 5.6
        ##   since they don't need phpbrew to install
        ## - If you are comfortable with phpbrew, you can also specify semantic
        ##   versions (e.g. 5.4.40)
        ####

        # @param: version of php to install
        args_php_version = "5.6"

        # @param: (optional) list of php packages to install, note: if using PhpBrew, make sure you use the available variants. E.g. "+default +fpm +gd". For more info, check the cookbook: https://github.com/phpbrew/phpbrew/wiki/Cookbook
        args_php_package_list = "php5-mcrypt php5-mysql php5-gd php5-cgi php5-fpm"

        # @param: (optional) user to run php-fpm as, note: if left blank, user will be left as default
        args_php_user = "vagrant"

        # @param: (optional) group to run php-fpm as, note: if left blank, group will be left as default
        args_php_group = "vagrant"

        # @param: (optional) owner to run php-fpm as, note: if left blank, owner will be left as default
        args_php_owner = "vagrant"

        # call php provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/php", args: [ args_php_version, args_php_package_list, args_php_user, args_php_group, args_php_owner ]

        ####
        ## composer
        ####

        # @param: (optional) location to run `composer install`
        args_composer_install_dir = "/home/vagrant/app"

        # call composer provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/composer", args: [ args_composer_install_dir ]

        ####
        ## nginx
        ####

        # @param: path to the document root
        args_nginx_document_root = "/home/vagrant/app"

        # @param: hostname of the application
        args_nginx_hostname = "default"

        # @param: local ip address of the application
        args_nginx_ip_address = "<IP_ADDRESS>"

        # @param: (optional) user to run nginx as, note: if left blank, user will be left as default
        args_nginx_user = "vagrant"

        # @param: (optional) group to run nginx as, note: if left blank, group will be left as default
        args_nginx_group = "vagrant"

        # call nginx provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/nginx", args: [ args_nginx_document_root, args_nginx_hostname, args_nginx_ip_address, args_nginx_user, args_nginx_group ]

        ####
        ## node
        ####

        # @param: version of node to install (e.g. 4.2.1). defaults to 'node' for the latest stable version
        args_node_version = "node"

        # @param: global node packages to install
        args_node_packages = "npm pm2"

        # call node provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/node", args: [ args_node_version, args_node_packages ]

        ####
        ## npm
        ####

        # @param: (optional) location to run `npm install`
        args_npm_install_dir = "/vagrant"

        # call npm provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/npm", args: [ args_npm_install_dir ]

        ####
        ## ruby
        ####

        # @param: version of ruby to install (e.g. 2.3.0). defaults to 'ruby' for the latest stable version
        args_ruby_version = "ruby"

        # @param: (optional) list of ruby packages to install. the '--no-rdoc' and '--no-ri' flags disable documentation generation to help speed up the install process for gems.
        args_ruby_package_list = "--no-rdoc --no-ri bundler rails"

        # call ruby provisioner
        # config.vm.provision :shell, privileged: false, path: "#{scripts_url}/ruby", args: [ args_ruby_version, args_ruby_package_list ]
end

Currently trying to install PHP 5.6
Had to manually install it

fixed this error using
export DEBIAN_FRONTEND=noninteractive
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales

It looks like you're using an outdated version of the Vagrantfile, and you didn't lock the file by specifying a tag. My recommendation would be to download the latest version of the Vagrantfile and change the following line from this:
gh_branch = "master"

to this:
gh_branch = "v0.10.0"

This will also ensure that you don't have issues in the future when I have to make a breaking change to the configuration or scripts.

will try this again but I had to try another box....

I'm sorry about the issues you're having. I will add this to the project README, but in the Vagrantfile, I do suggest that you lock the version of the scripts you want to use to avoid this issue. One thing I can't help (and other similar projects will run into this too) is that the PPA used for PHP was just deprecated recently causing all older versions of the PHP script to stop working as intended.

The latest version of the project (v0.10.0) should be bug free. I definitely understand your frustration, but there's not a lot I can do when package maintainers deprecate their packages.

i have to admit I really liked your approach with the modular provisions. I will give this a try knowing what I know now.

It's a little difficult with no context to go off of, but I attempted to upgrade your Vagrantfile for you:
# -*- mode: ruby -*-
# vi: set ft=ruby :

####
##
## GitHub Configuration
##
######

# if you want to maintain your own version of this project, feel free to
# fork it and change the following to reflect your own copy
gh_user   = "drmyersii"
gh_repo   = "vagrant-env-basher"
gh_branch = "v0.10.0" # if you want to ensure consistency, use a specific tag (e.g. v0.1.0)
gh_url    = "https://raw.githubusercontent.com/#{gh_user}/#{gh_repo}/#{gh_branch}"

# path to provisioning scripts
scripts_url = "#{gh_url}/scripts"

# if environment is set to development, use local scripts instead
if ENV["ENV"] == "DEV"
    scripts_url = "./scripts"
end

####
##
## Vagrant Configuration
##
######

max_memory = 1024

Vagrant.configure(2) do |config|

    # set the base box
    config.vm.box = "ubuntu/trusty64"

    # set up network configuration
    config.vm.network :forwarded_port, guest: 80,  host: 10080
    config.vm.network :forwarded_port, guest: 443, host: 10443
    config.vm.synced_folder ".", "/home/vagrant/app", type: "rsync", rsync__exclude: [".git/","dist/",".gitignore","node_modules/", "Vagrantfile","*.md","vendor/"], rsync__args: ["--update", "--archive", "--delete", "-z", "--copy-links", "--progress","-v"], rsync__auto: true

    ####
    ##
    ## Provider Configuration
    ##
    ######

        ####
        ## VirtualBox
        ####
        config.vm.provider "virtualbox" do |v, override|
            v.memory = max_memory
            v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
        end

    ####
    ##
    ## Provisioning Configuration
    ##
    ## - Uncomment the Necessary scripts
    ##
    ######

        ####
        ## base server configuration
        ####

        # @param: (optional) list of system packages to install separated by spaces. E.g. "git curl screen"
        args_base_packages = "git"

        # call base provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/base", args: [ args_base_packages ]

        ####
        ## mysql
        ####

        # @param: database name
        args_mysql_db_name = "dev"

        # @param: database user to create
        args_mysql_db_user = "dev"

        # @param: database user's password
        args_mysql_db_password = "dev"

        # @param: allowed hostname for connection to new database
        args_mysql_db_host = "localhost"

        # call mysql provisioner
        # config.vm.provision :shell, privileged: false, path: "#{scripts_url}/mysql", args: [ args_mysql_db_name, args_mysql_db_user, args_mysql_db_password, args_mysql_db_host ]

        ####
        ## postgresql
        ####

        # @param: database name
        args_postgresql_db_name = "dev"

        # @param: database user to create
        args_postgresql_db_user = "dev"

        # @param: database user's password
        args_postgresql_db_password = "dev"

        # @param: allowed hostname for connection to new database
        args_postgresql_db_host = "localhost"

        # call postgresql provisioner
        # config.vm.provision :shell, privileged: false, path: "#{scripts_url}/postgresql", args: [ args_postgresql_db_name, args_postgresql_db_user, args_postgresql_db_password, args_postgresql_db_host ]

        ####
        ## php
        ####

        # @param: version of php to install (must be 5.5, 5.6, or 7.0)
        args_php_version = "5.6"

        # @param: (optional) list of php extensions to install, note: due to the new PPA, you will need to specify the version of php in the extension names as well
        args_php_extensions = "php5.6-cli php5.6-mcrypt php5.6-mysql php5.6-gd php5.6-cgi php5.6-fpm"

        # @param: (optional) user to run php-fpm as, note: if left blank, user will be left as default
        args_php_user = "vagrant"

        # @param: (optional) group to run php-fpm as, note: if left blank, group will be left as default
        args_php_group = "vagrant"

        # @param: (optional) owner to run php-fpm as, note: if left blank, owner will be left as default
        args_php_owner = "vagrant"

        # call php provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/php", args: [ args_php_version, args_php_extensions, args_php_user, args_php_group, args_php_owner ]

        ####
        ## composer
        ####

        # @param: (optional) location to run `composer install`
        args_composer_install_dir = "/home/vagrant/app"

        # call composer provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/composer", args: [ args_composer_install_dir ]

        ####
        ## nginx
        ####

        # @param: path to the document root
        args_nginx_document_root = "/home/vagrant/app"

        # @param: hostname of the application
        args_nginx_hostname = "_"

        # @param: local ip address of the application
        args_nginx_ip_address = "<IP_ADDRESS>"

        # @param: (optional) user to run nginx as, note: if left blank, user will be left as default
        args_nginx_user = "vagrant"

        # @param: (optional) group to run nginx as, note: if left blank, group will be left as default
        args_nginx_group = "vagrant"

        # call nginx provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/nginx", args: [ args_nginx_document_root, args_nginx_hostname, args_nginx_ip_address, args_nginx_user, args_nginx_group ]

        ####
        ## node
        ####

        # @param: version of node to install (e.g. 4.2.1). defaults to 'node' for the latest stable version
        args_node_version = "node"

        # @param: global node packages to install
        args_node_packages = "npm pm2"

        # call node provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/node", args: [ args_node_version, args_node_packages ]

        ####
        ## npm
        ####

        # @param: (optional) location to run `npm install`
        args_npm_install_dir = "/home/vagrant/app"

        # call npm provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/npm", args: [ args_npm_install_dir ]

        ####
        ## ruby
        ####

        # @param: version of ruby to install (e.g. 2.3.0). defaults to 'ruby' for the latest stable version
        args_ruby_version = "ruby"

        # @param: (optional) list of ruby packages to install. the '--no-rdoc' and '--no-ri' flags disable documentation generation to help speed up the install process for gems.
        args_ruby_package_list = "--no-rdoc --no-ri bundler rails"

        # call ruby provisioner
        # config.vm.provision :shell, privileged: false, path: "#{scripts_url}/ruby", args: [ args_ruby_version, args_ruby_package_list ]

        ####
        ## go
        ####

        # @param: version of go to install (e.g. 1.6).
        args_go_version = "1.6"

        # call go provisioner
        # config.vm.provision :shell, privileged: false, path: "#{scripts_url}/go", args: [ args_go_version ]
end

If your project is open source, I'd definitely be willing to get it working for you. I appreciate the effort you have put into using this project, but I also understand the need for clearer instructions. I'll start working on that soon as well.

Well I tried it again.... A fresh install on taco yosemite using your Vagrantfile as posted and got this

==> default: dpkg-preconfigure: unable to re-open stdin: No such file or directory
==> default: Running provisioner: shell...
default: Running: /var/folders/b2/0p413d516f57gbq62slh0kbr0000gn/T/vagrant-shell20160815-2898-g06l5b
==> default: gpg:
==> default: keyring /tmp/tmptd7czmgs/secring.gpg' created ==> default: gpg:  ==> default: keyring /tmp/tmptd7czmgs/pubring.gpg' created
==> default: gpg:
==> default: requesting key E5267A6C from hkp server keyserver.ubuntu.com
==> default: gpg:
==> default: /tmp/tmptd7czmgs/trustdb.gpg: trustdb created
==> default: gpg:
==> default: key E5267A6C: public key "Launchpad PPA for Ondřej Surý" imported
==> default: gpg: Total number processed: 1
==> default: gpg:               imported: 1  (RSA: 1)
==> default: dpkg-preconfigure: unable to re-open stdin: No such file or directory
==> default: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
==> default: Creating config file /etc/php/5.6/mods-available/calendar.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/ctype.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/exif.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/fileinfo.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/ftp.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/gettext.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/iconv.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/pdo.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/phar.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/posix.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/shmop.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/sockets.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/sysvmsg.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/sysvsem.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/sysvshm.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/tokenizer.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/json.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/opcache.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/readline.ini with new version
==> default: Creating config file /etc/php/5.6/cli/php.ini with new version
==> default: Creating config file /etc/php/5.6/apache2/php.ini with new version
==> default: apache2_switch_mpm Switch to prefork
==> default: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
==> default: apache2_invoke: Enable module php5.6
==> default: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
==> default: dpkg-preconfigure: unable to re-open stdin: No such file or directory
==> default: dpkg: error processing archive /var/cache/apt/archives/fonts-dejavu-core_2.34-1ubuntu1_all.deb (--unpack):
==> default:  unable to sync file '/var/lib/dpkg/tmp.ci//control': Input/output error
==> default: rm:
==> default: cannot remove ‘/var/lib/dpkg/tmp.ci/control’
==> default: : Read-only file system
==> default: rm:
==> default: cannot remove ‘/var/lib/dpkg/tmp.ci/conffiles’
==> default: : Read-only file system
==> default: rm:
==> default: cannot remove ‘/var/lib/dpkg/tmp.ci/md5sums’
==> default: : Read-only file system
==> default: dpkg: error while cleaning up:
==> default:  subprocess rm cleanup returned error exit status 1
==> default: dpkg: error while cleaning up:
==> default:  unable to securely remove '/var/lib/dpkg/reassemble.deb': Read-only file system
==> default: dpkg: error processing archive /var/cache/apt/archives/fontconfig-config_2.11.0-0ubuntu4.1_all.deb (--unpack):
==> default:  error ensuring /var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system ==> default: dpkg: error processing archive /var/cache/apt/archives/libfontconfig1_2.11.0-0ubuntu4.1_amd64.deb (--unpack): ==> default:  error ensuring /var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system
==> default: dpkg: error processing archive /var/cache/apt/archives/libjpeg-turbo8_1.3.0-0ubuntu2_amd64.deb (--unpack):
==> default:  error ensuring /var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system ==> default: dpkg: error processing archive /var/cache/apt/archives/libjpeg8_8c-2ubuntu8_amd64.deb (--unpack): ==> default:  error ensuring /var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system
==> default: dpkg: error processing archive /var/cache/apt/archives/libjbig0_2.1-3.1+deb.sury.org~trusty+1_amd64.deb (--unpack):
==> default:  error ensuring /var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system ==> default: dpkg: error processing archive /var/cache/apt/archives/libtiff5_4.0.3-7ubuntu0.4_amd64.deb (--unpack): ==> default:  error ensuring /var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system
==> default: dpkg: error processing archive /var/cache/apt/archives/libwebp5_0.4.4-1+deb.sury.org~trusty+1_amd64.deb (--unpack):
==> default:  error ensuring /var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system ==> default: dpkg: error processing archive /var/cache/apt/archives/libxpm4_1%3a3.5.10-1_amd64.deb (--unpack): ==> default:  error ensuring /var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system
==> default: dpkg: error processing archive /var/cache/apt/archives/libgd3_2.2.3-3+deb.sury.org~trusty+0_amd64.deb (--unpack):
==> default:  error ensuring /var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system ==> default: dpkg: error processing archive /var/cache/apt/archives/libmcrypt4_2.5.8-3.1ubuntu1_amd64.deb (--unpack): ==> default:  error ensuring /var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system
==> default: dpkg: error processing archive /var/cache/apt/archives/php5.6-cgi_5.6.24-1+deb.sury.org~trusty+1_amd64.deb (--unpack):
==> default:  error ensuring /var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system ==> default: dpkg: error processing archive /var/cache/apt/archives/php5.6-fpm_5.6.24-1+deb.sury.org~trusty+1_amd64.deb (--unpack): ==> default:  error ensuring /var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system
==> default: dpkg: error processing archive /var/cache/apt/archives/php5.6-gd_5.6.24-1+deb.sury.org~trusty+1_amd64.deb (--unpack):
==> default:  error ensuring /var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system ==> default: dpkg: error processing archive /var/cache/apt/archives/php5.6-mcrypt_5.6.24-1+deb.sury.org~trusty+1_amd64.deb (--unpack): ==> default:  error ensuring /var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system
==> default: dpkg: error processing archive /var/cache/apt/archives/php5.6-mysql_5.6.24-1+deb.sury.org~trusty+1_amd64.deb (--unpack):
==> default:  error ensuring `/var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system
==> default: dpkg: error: unable to create new file '/var/lib/dpkg/available-new': Read-only file system
==> default: No apport report written because MaxReports is reached already
==> default: No apport report written because MaxReports is reached already
==> default: No apport report written because MaxReports is reached already
==> default: No apport report written because MaxReports is reached already
==> default: touch:
==> default: cannot touch ‘/var/lib/update-notifier/dpkg-run-stamp’
==> default: : Read-only file system
==> default: sh: 1:
==> default: cannot create /var/lib/update-notifier/updates-available: Read-only file system
==> default: E
==> default: :
==> default: Sub-process /usr/bin/dpkg returned an error code (2)
==> default: E
==> default: :
==> default: Problem executing scripts DPkg::Post-Invoke 'if [ -d /var/lib/update-notifier ]; then touch /var/lib/update-notifier/dpkg-run-stamp; fi; if [ -e /var/lib/update-notifier/updates-available ]; then echo > /var/lib/update-notifier/updates-available; fi '
==> default: E
==> default: :
==> default: Sub-process returned an error code
==> default: sed: can't read /etc/php/5.6/fpm/pool.d/www.conf: No such file or directory
==> default: sed: can't read /etc/php/5.6/fpm/pool.d/www.conf: No such file or directory
==> default: sed: can't read /etc/php/5.6/fpm/pool.d/www.conf: No such file or directory
==> default: ln:
==> default: failed to create symbolic link ‘/run/php/php-fpm.sock’
==> default: : No such file or directory
==> default: php5.6-fpm: unrecognized service
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

This is so odd... I actually just tested your Vagrantfile myself (the one I provided), and it ran without any issues at all... When you tried to re-provision, did you actually do a vagrant destroy -f, or did you just run vagrant provision?

practically destroyed the boxes and started all over from scratch

Did you actually destroy them though? I just want to be sure, because I'm having no issues on my end running the Vagrantfile above from scratch. Now, if you didn't actually destroy the box, and you just ran the provisioning again, that can easily cause a lot of issues.

Destroyed.... vagrant destroy + removed .vagrant folder

I absolutely understand if you don't want to do any more testing to find the cause, but I would like to know as much as possible to prevent issues for others in the future. That's the reason I'm asking so much. I'm not sure why we are getting different results.

If you're willing, can you give me your OS (including version), version of Vagrant, and version of VirtualBox?

Also, is the project you are launching it for something you can share for me to test on my own?

@drmyersii here is my project https://github.com/karneaud/vagrant-env-basher-trial give it a go let me know what I am doing wrong

So, this was definitely not the result I was expecting, but it ran without any issues on my machine...

What version of Vagrant, VirtualBox, and OS are you running?

I'm running Vagrant 1.8.5 with VirtualBox 5 on OS Yosemite ....i'm running off of an attached sdcard

tried it again and got

Failed to fetch http://ppa.launchpad.net/ondrej/php/ubuntu/pool/main/p/php5.6/php5.6-fpm_5.6.24-1+deb.sury.org~trusty+1_amd64.deb  rename failed, Read-only file system (/var/cache/apt/archives/partial/php5.6-fpm_5.6.24-1+deb.sury.org~trusty+1_amd64.deb -> /var/cache/apt/archives/php5.6-fpm_5.6.24-1+deb.sury.org~trusty+1_amd64.deb).

strange PHP was working fine a while before I started logging issues with you

The only issue I can think of now is this: https://github.com/oerdnj/deb.sury.org/issues/56
If your locale is not set to UTF-8 by default, the PPA won't download. This is not something you should have to do, and I think I can actually fix this in the script itself. Once I fix the script, if you are willing to do another test, I can confirm this is the issue at hand.

Can you vagrant ssh into your machine to run echo $LC_ALL && echo $LANG, and then paste the result here?

And if you could also run locale and paste those results too, I think it would help.

echo $LC_ALL && echo $LANG

en_US.UTF-8

locale

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Just to note that at the time I had followed the workaround you pointed out at  oerdnj/deb.sury.org#56

Just updated the PHP script. If you can change the specified tag in the Vagrantfile from v0.10.0 to v0.10.1, and then run vagrant destroy -f && vagrant up`, it should hopefully work (assuming the locale was the issue).

@drmyersii I believe it may just well be the issue as I did a vagrant provision and so far installations have been progressing without some of the previous issues. Will let you know ig things do not work out.

Just to note I seem to be running to this or of error  with the

ROFS: read-only file system, write

I could only assume that the provision has been installing in sudo mode?

So, the provisioning is all set to run as the default user (in this case, vagrant), but I did notice that your rsync setup mounts the folder as root instead of vagrant. I don't use rsync very often, but I assume there's a way to change that?

Looks like you should be able to add this to your config.vm.synced_folder line:
owner: "vagrant", group: "vagrant"

hmmm actually I did not know that.... will try this.

@drmyersii
Ok so I did a vagrant destroy and tried to vagrant up again with a fresh install and branch set to v1.10.1 and got as far as

==> default: gpg:
==> default: keyring /tmp/tmp7top_e_o/secring.gpg' created ==> default: gpg:  ==> default: keyring /tmp/tmp7top_e_o/pubring.gpg' created
==> default: gpg:
==> default: requesting key E5267A6C from hkp server keyserver.ubuntu.com
==> default: gpg:
==> default: /tmp/tmp7top_e_o/trustdb.gpg: trustdb created
==> default: gpg:
==> default: key E5267A6C: public key "Launchpad PPA for Ondřej Surý" imported
==> default: gpg:
==> default: Total number processed: 1
==> default: gpg:
==> default:               imported: 1
==> default:   (RSA: 1)
==> default: dpkg-preconfigure: unable to re-open stdin: No such file or directory
==> default: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
==> default: Creating config file /etc/php/5.6/mods-available/calendar.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/ctype.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/exif.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/fileinfo.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/ftp.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/gettext.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/iconv.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/pdo.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/phar.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/posix.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/shmop.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/sockets.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/sysvmsg.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/sysvsem.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/sysvshm.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/tokenizer.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/json.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/opcache.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/readline.ini with new version
==> default: Creating config file /etc/php/5.6/cli/php.ini with new version
==> default: Creating config file /etc/php/5.6/apache2/php.ini with new version
==> default: apache2_switch_mpm Switch to prefork
==> default: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
==> default: apache2_invoke: Enable module php5.6
==> default: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
==> default: dpkg: unrecoverable fatal error, aborting:
==> default:  unable to fsync updated status of `libjbig0:amd64': Input/output error
==> default: touch:
==> default: cannot touch ‘/var/lib/update-notifier/dpkg-run-stamp’
==> default: : Read-only file system
==> default: sh: 1:
==> default: cannot create /var/lib/update-notifier/updates-available: Read-only file system
==> default: E
==> default: :
==> default: Sub-process /usr/bin/dpkg returned an error code (2)
==> default: E
==> default: :
==> default: Problem executing scripts DPkg::Post-Invoke 'if [ -d /var/lib/update-notifier ]; then touch /var/lib/update-notifier/dpkg-run-stamp; fi; if [ -e /var/lib/update-notifier/updates-available ]; then echo > /var/lib/update-notifier/updates-available; fi '
==> default: E
==> default: :
==> default: Sub-process returned an error code
==> default: W
==> default: :
==> default: Not using locking for read only lock file /var/lib/dpkg/lock
==> default: E
==> default: :
==> default: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
==> default: sed: can't read /etc/php/5.6/fpm/pool.d/www.conf: No such file or directory
==> default: sed: can't read /etc/php/5.6/fpm/pool.d/www.conf: No such file or directory
==> default: sed: can't read /etc/php/5.6/fpm/pool.d/www.conf: No such file or directory
==> default: ln:
==> default: failed to create symbolic link ‘/run/php/php-fpm.sock’
==> default: : No such file or directory
==> default: php5.6-fpm: unrecognized service
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

was there something else to be done?

my Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

####
##
## GitHub Configuration
##
######

# if you want to maintain your own version of this project, feel free to
# fork it and change the following to reflect your own copy
gh_user   = "drmyersii"
gh_repo   = "vagrant-env-basher"
gh_branch = "v0.10.1" # if you want to ensure consistency, use a specific tag (e.g. v0.1.0)
gh_url    = "https://raw.githubusercontent.com/#{gh_user}/#{gh_repo}/#{gh_branch}"

# path to provisioning scripts
scripts_url = "#{gh_url}/scripts"

# if environment is set to development, use local scripts instead
if ENV["ENV"] == "DEV"
    scripts_url = "./scripts"
end

####
##
## Vagrant Configuration
##
######

max_memory = 1024

Vagrant.configure(2) do |config|

    # set the base box
    config.vm.box = "ubuntu/trusty64"

    # set up network configuration
    config.vm.network :forwarded_port, guest: 80,  host: 10080
    config.vm.network :forwarded_port, guest: 443, host: 10443
    config.vm.synced_folder ".", "/home/vagrant/app", owner: "vagrant", group: "vagrant", type: "rsync", rsync__exclude: [".git/","dist/",".gitignore","node_modules/", "Vagrantfile","*.md","vendor/"], rsync__args: ["--update", "--archive", "--delete", "-z", "--copy-links", "--progress","-v"], rsync__auto: true

    ####
    ##
    ## Provider Configuration
    ##
    ######

        ####
        ## VirtualBox
        ####
        config.vm.provider "virtualbox" do |v, override|
            v.memory = max_memory
            v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
        end

    ####
    ##
    ## Provisioning Configuration
    ##
    ## - Uncomment the Necessary scripts
    ##
    ######

        ####
        ## base server configuration
        ####

        # @param: (optional) list of system packages to install separated by spaces. E.g. "git curl screen"
        args_base_packages = "git zip unzip curl wget"

        # call base provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/base", args: [ args_base_packages ]

        ####
        ## mysql
        ####

        # @param: database name
        args_mysql_db_name = "dev"

        # @param: database user to create
        args_mysql_db_user = "dev"

        # @param: database user's password
        args_mysql_db_password = "dev"

        # @param: allowed hostname for connection to new database
        args_mysql_db_host = "localhost"

        # call mysql provisioner
        # config.vm.provision :shell, privileged: false, path: "#{scripts_url}/mysql", args: [ args_mysql_db_name, args_mysql_db_user, args_mysql_db_password, args_mysql_db_host ]

        ####
        ## postgresql
        ####

        # @param: database name
        args_postgresql_db_name = "dev"

        # @param: database user to create
        args_postgresql_db_user = "dev"

        # @param: database user's password
        args_postgresql_db_password = "dev"

        # @param: allowed hostname for connection to new database
        args_postgresql_db_host = "localhost"

        # call postgresql provisioner
        # config.vm.provision :shell, privileged: false, path: "#{scripts_url}/postgresql", args: [ args_postgresql_db_name, args_postgresql_db_user, args_postgresql_db_password, args_postgresql_db_host ]

        ####
        ## php
        ####

        # @param: version of php to install (must be 5.5, 5.6, or 7.0)
        args_php_version = "5.6"

        # @param: (optional) list of php extensions to install, note: due to the new PPA, you will need to specify the version of php in the extension names as well
        args_php_extensions = "php5.6-cli php5.6-mcrypt php5.6-gd php5.6-cgi php5.6-fpm"

        # @param: (optional) user to run php-fpm as, note: if left blank, user will be left as default
        args_php_user = "vagrant"

        # @param: (optional) group to run php-fpm as, note: if left blank, group will be left as default
        args_php_group = "vagrant"

        # @param: (optional) owner to run php-fpm as, note: if left blank, owner will be left as default
        args_php_owner = "vagrant"

        # call php provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/php", args: [ args_php_version, args_php_extensions, args_php_user, args_php_group, args_php_owner ]

        ####
        ## composer
        ####

        # @param: (optional) location to run `composer install`
        args_composer_install_dir = "/home/vagrant/app"

        # call composer provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/composer", args: [ args_composer_install_dir ]

        ####
        ## nginx
        ####

        # @param: path to the document root
        args_nginx_document_root = "/home/vagrant/app"

        # @param: hostname of the application
        args_nginx_hostname = "mia-dev.dev"

        # @param: local ip address of the application
        args_nginx_ip_address = "<IP_ADDRESS>"

        # @param: (optional) user to run nginx as, note: if left blank, user will be left as default
        args_nginx_user = "vagrant"

        # @param: (optional) group to run nginx as, note: if left blank, group will be left as default
        args_nginx_group = "vagrant"

        # call nginx provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/nginx", args: [ args_nginx_document_root, args_nginx_hostname, args_nginx_ip_address, args_nginx_user, args_nginx_group ]

        ####
        ## node
        ####

        # @param: version of node to install (e.g. 4.2.1). defaults to 'node' for the latest stable version
        args_node_version = "node"

        # @param: global node packages to install
        args_node_packages = "npm pm2"

        # call node provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/node", args: [ args_node_version, args_node_packages ]

        ####
        ## npm
        ####

        # @param: (optional) location to run `npm install`
        args_npm_install_dir = "/home/vagrant/app"

        # call npm provisioner
        config.vm.provision :shell, privileged: false, path: "#{scripts_url}/npm", args: [ args_npm_install_dir ]

        ####
        ## ruby
        ####

        # @param: version of ruby to install (e.g. 2.3.0). defaults to 'ruby' for the latest stable version
        args_ruby_version = "ruby"

        # @param: (optional) list of ruby packages to install. the '--no-rdoc' and '--no-ri' flags disable documentation generation to help speed up the install process for gems.
        args_ruby_package_list = "--no-rdoc --no-ri bundler rails"

        # call ruby provisioner
        # config.vm.provision :shell, privileged: false, path: "#{scripts_url}/ruby", args: [ args_ruby_version, args_ruby_package_list ]

        ####
        ## go
        ####

        # @param: version of go to install (e.g. 1.6).
        args_go_version = "1.6"

        # call go provisioner
        # config.vm.provision :shell, privileged: false, path: "#{scripts_url}/go", args: [ args_go_version ]
end

Just noting when I ssh into the box i get

WARNING! Your environment specifies an invalid locale.
This can affect your user experience significantly, including the
ability to manage packages. You may install the locales by running:

sudo apt-get install language-pack-UTF-8
or
sudo locale-gen UTF-8
To see all available language packs, run:
apt-cache search "^language-pack-[a-z][a-z]$"
To disable this message for all users, run:
sudo touch /var/lib/cloud/instance/locale-check.skip

Wow! I didn't realize the language pack had to be installed to specify
it... I will have to add that line as well then.

@drmyersii drmyersii let me know and I'll ty again

Just updated. The new version is v0.10.2.

Ok tried it out this is what happened with v0.10.2

==> default: Generating locales...
==> default:   en_US.UTF-8...
==> default: up-to-date
==> default: Generation complete.
==> default: gpg:
==> default: keyring /tmp/tmpfjk2aa3b/secring.gpg' created ==> default: gpg:  ==> default: keyring /tmp/tmpfjk2aa3b/pubring.gpg' created
==> default: gpg:
==> default: requesting key E5267A6C from hkp server keyserver.ubuntu.com
==> default: gpg:
==> default: /tmp/tmpfjk2aa3b/trustdb.gpg: trustdb created
==> default: gpg:
==> default: key E5267A6C: public key "Launchpad PPA for Ondřej Surý" imported
==> default: gpg:
==> default: Total number processed: 1
==> default: gpg:
==> default:               imported: 1
==> default:   (RSA: 1)
==> default: dpkg-preconfigure: unable to re-open stdin: No such file or directory
==> default: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
==> default: Creating config file /etc/php/5.6/mods-available/calendar.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/ctype.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/exif.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/fileinfo.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/ftp.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/gettext.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/iconv.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/pdo.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/phar.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/posix.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/shmop.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/sockets.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/sysvmsg.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/sysvsem.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/sysvshm.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/tokenizer.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/json.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/opcache.ini with new version
==> default: Creating config file /etc/php/5.6/mods-available/readline.ini with new version
==> default: Creating config file /etc/php/5.6/cli/php.ini with new version
==> default: Creating config file /etc/php/5.6/apache2/php.ini with new version
==> default: apache2_switch_mpm Switch to prefork
==> default: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
==> default: apache2_invoke: Enable module php5.6
==> default: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
==> default: E
==> default: :
==> default: Failed to write temporary StateFile /var/lib/apt/extended_states.tmp
==> default: /tmp/vagrant-shell: line 58: /usr/bin/sudo: No such file or directory
==> default: /tmp/vagrant-shell: line 65: /usr/bin/sudo: No such file or directory
==> default: /tmp/vagrant-shell: line 70: /usr/bin/sudo: No such file or directory
==> default: /tmp/vagrant-shell: line 75: /usr/bin/sudo: No such file or directory
==> default: /tmp/vagrant-shell: line 79: /usr/bin/sudo: No such file or directory
==> default: /tmp/vagrant-shell: line 82: /usr/bin/sudo: No such file or directory
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

I have another question... When is the last time you updated your base box for ubuntu/trusty64?

@drmyersii  believe it or not when i was running the test it just asked me to some I'm currently trying to update... would that solve it?

I'm not entirely sure if it will solve it, but these issues are not something I've run into in the past, and it seems like our systems are somehow different even though we are using the same base box.

Well i'm attempting another build from scratch would let you know

did it again and got as far as

==> default: E
==> default: :
==> default: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/z/zip/zip_3.0-8_amd64.deb  Error writing to output file - write (30: Read-only file system) [IP: <IP_ADDRESS> 80]
==> default: E
==> default: :
==> default: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

I take it this is a result of

args_base_packages = "git zip unzip curl wget"

That's so odd though. Wasn't that part working just fine before?

Based on our issues and the fact that we are experiences different results with the same box, I'm thinking this must be a locale bug. I am currently looking into a way to change the locale for package sources.

Hmmmm....that is odd from the last attempt I thought it was fixed....no fear I'm looking to see if this may be my internal problem as well. Will let you know

I'm not sure if this will work, but can you try to vagrant ssh into your machine and run the following?
locale-gen en_US.UTF-8
echo 'export LC_ALL=en_US.UTF-8' | tee --append ~/.profile

and once you do that, can you try a vagrant provision again?

Actually, you don't even need to do a vagrant provision. You can probably just run sudo -E apt-get install git zip unzip wget curl.

Did what you said and got

lib/dpkg/lock
E: Unable to write to /var/cache/apt/
E: The package lists or status file could not be parsed or opened.

Whoops. You might need to run a sudo -E apt-get -qq update first.

Oh, and I just realized I never had you run this...
source ~/.profile

Ok i'm not too familiar lets start back at the top what's the whole command to run?

Sure thing. Here you go:
# first, let's generate the correct locale
locale-gen en_US.UTF-8

# next, let's set the locale automatically upon login
echo 'export LC_ALL=en_US.UTF-8' | tee --append ~/.profile

# now, we need to actually load the locale for our current session (to avoid having to log out and back in
source ~/.profile

# then we need to update our packages list
sudo -E apt-get update -qq

# and finally, we need to try to install those packages
sudo -E apt-get install -qq git zip unzip curl wget

Looks like it worked.... I ran a vagrant provision and everything installed successfully

I can confirm that your suggestion worked. Would like to try this again from the top when you get a chance to update the project files. Let me know

Okay. I just pushed the changes. You can now change the version to v0.11.0, and you will need to add this right after the args_base_packages = "git" line:
# @param: (optional) locale to set for LC_ALL global
args_base_locale = "en_US.UTF-8"

You will also need to add args_base_locale to the args array for the config.vm.provision line.

@karneaud Have you had a chance to test yet?

@drmyersii well not really did a couple changes but did not attempt a full stack build. Will give it a go when I get a chance...thanks for the help

No problem! I'm going to go ahead and close this issue for now. Feel free to open it again if there are still  bugs. Thanks!


Remove change event handler because autocomplete double enters token

On the first use of the tokenfield, hitting enter to select the first browser (not jquery UI) autocomplete entry will enter the same text twice.
Removing the element.on('change', ... handler resolves this.

It's 100% reproducible but only on a fresh page load. It can be tricky initially to repro.


Fix FTS enabled check

What
Text search tests fail during Android testing because of SQLite idiosyncrasies on Android.
Why
We need to ensure that text search will work on Android mobile devices as well as we need to ensure that our build tests pass without failures.
How
Since the problem is that the PRAGMA compile_options command is returning an empty cursor when executed on Android, change the FTS availability check to instead create a SQL FTS virtual table.  Successful table creation means that FTS is available whereas a failed table create means that FTS is not enabled.
Tests

IndexManagerTest: removed the check for ENABLE_FTS3 and ENABLE_FTS3_PARENTHESIS compile options in validateTextSearchIsAvailable(), since this check will fail in Android.
Add conditional logic to two enhanced query syntax tests to check for ENABLE_FTS3 and ENABLE_FTS3_PARENTHESIS and only execute the content of the tests if enhanced query syntax is available.  This conditional logic allows us to still run the enhanced query syntax tests during Java SE testing.

reviewer @mikerhodes
reviewer @rhyshort
BugId: 46093

+1

Do we need to update any docs where we say that if we say text search is enabled you can use the enhanced syntax?

@alfinkel tells me offline that we don't need to update docs.
:+1:

The docs are already up to date.  They state that which ever syntax is enabled is the syntax the developer can use.  They also state that the likelihood out of the box is that standard query syntax will likely be enabled on the Android platform.


Getting Please provide a valid path to your results file with the -f argument.

Always get an error "Getting Please provide a valid path to your results file with the -f argument."

Trying to integrate PROVAR generated Test result with TestRail.

Can you please try using ' instead of " as a delimeter for the report_file_path configuration?
From the screenshot, it was not clear if the command actually succeeded or not? Did it push the results? or did it aborted the CLI command?


drupal/drupal, drupal/core: Lets clean-up the mess

drupal/drupal is on Packagist and Drupal Packagist. Both sites have a different understanding of this package, because Drupal Packgist does the automatic parsing of Info Files (and YAML).
Both sites are used in conjuction most of the time. Composer merges the package defintions from both sites.

Keep 7.* verions of drupal/drupal on Drupal Packagist, the 7.x branch has no composer.json. We need Drupal Packagist to generate one. People need drupal/drupal for their existing D7 workflows.

Remove 8.* versions of drupal/drupal from Drupal Packagist, the 8.x branches have a composer.json and Packagist handles it just fine.

Open an issue on drupal.org infrastructure to setup a webhook for drupal/drupal on Packagist.

Keep drupal/core as in on Packagist. drupal/core is a valid composer package. Its not necessary to mirror it on Drupal Packagist.

What causes the drupal/drupal discrepancy between the two sites in the first place? There should be no additional requirements other than those in drupal/drupal's composer.json', do they? Why does Drupal Packagist not provide recent releases, when Packagist does?

Fixed the drupal/drupal package. https://packagist.drupal-composer.org/packages/drupal/drupal


Handling signals while using CliRunner

I wonder is there an easy way to implement sending signals to CliRunner for the process while it invoked?

Is Click preventing you from doing this? Interprocess communication is outside Click's scope, so that's something you'll need to implement on your own.