New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Internals - Set up standardized environment for testing and development #13578

Closed
niden opened this Issue Nov 3, 2018 · 13 comments

Comments

Projects
3 participants
@niden
Copy link
Member

niden commented Nov 3, 2018

There is a need for a standardized environment to be used for testing and/or development

Requirements

  • Easy to setup
  • Offer all the necessary services for the framework
  • Ability to run the testing suite locally

Implementation

  • The use of docker and nanobox.io satisfies the above needs
  • Installation for various platforms
  • Containers offer the necessary services for the application
  • Can compile Phalcon and run suite

Status

  • Set up environment with the boxfile.yml
  • Add all the necessary services and related extensions (Redis, Postgresql etc.)
  • Rebuild the test suite to cover as many methods as possible (for now)
  • Create Integration test suite
  • Create Cli test suite
  • Create Unit test suite

Working Branch

https://github.com/niden/cphalcon/tree/T13578-setup-phalcon-environment

Coding standard

  • We are using the Cest format of Codeception.
  • Each test file represents a method of a component.
  • Tests are written for each method accordingly.
  • Keep each test file as small as possible to improve readability
  • Keep each test with as few assertions as possible and as few steps as possible. It makes it easier to read
  • Docblocks on each test are required
  • The name of each test is the namespace and method and then the purpose. For instance

Phalcon\Acl\Adapter\Memory :: allow() has a test of aclAdapterMemoryAllow.

  • Each test must have a call to $I->wantToTest() describing what is being tested. This helps with reading the output and identifying where an error has happened. The message contains the namespace/component and the method (see also docblock). For instance

$I->wantToTest('Acl\Adapter\Memory - allow() - try to allow twice');

@niden niden self-assigned this Nov 3, 2018

@niden niden added this to the 4.0.0 milestone Nov 3, 2018

@dschissler

This comment has been minimized.

Copy link
Contributor

dschissler commented Nov 4, 2018

It also needs be very easy to use it in a forked repo for development without relying on phalcon/cphalcon. It also should be able to use any repo or copy of Zephir as well. Before I ended up just using an ongoing PR to run the tests and so I was mocked for not having mergeable code since people didn't realize that I was routing around a difficult development process that I didn't care to learn.

@niden

This comment has been minimized.

Copy link
Member Author

niden commented Nov 4, 2018

@dschissler Agreed. The environment should allow you to use any Zephir version from the relevant repo and compile Phalcon as needed.

niden added a commit to niden/cphalcon that referenced this issue Nov 4, 2018

niden added a commit to niden/cphalcon that referenced this issue Nov 4, 2018

niden added a commit to niden/cphalcon that referenced this issue Nov 4, 2018

niden added a commit to niden/cphalcon that referenced this issue Nov 4, 2018

@dschissler

This comment has been minimized.

Copy link
Contributor

dschissler commented Nov 5, 2018

Consider adapting and improving the Webird provision system. I adapt this to all of my projects and sometimes I feed the refinements back into Webird. I was disgusted by needing to install plugins into a provision system in order to install plugins for my plugins and so I did it all in bash.

https://github.com/perchlayer/webird/blob/master/setup/provision-system.sh

Its also very flexible in that I can just comment out a "list" line with a pound symbol to have it not install that package and to not install it or to leave documentation about something. There are lists files for pecl and system packages and on some systems I use a npm list for global install. A init script can read a list file by a bash function that is exported into the init script.

This is a package list file for example:

# languages
language-pack-en
language-pack-de
language-pack-ru
language-pack-uk
# translation
# utilities
vim
git
curl
gcc
make
pkg-config
re2c
# environments
nodejs
nginx-extras
mariadb-server
mariadb-client
php-pear
php-common
php-cli
php-fpm
php-curl
php-mbstring
php-zip
php-mysql
#php7.2-phalcon
# dev libraries
php-dev
composer
libpcre3-dev
libczmq4
libczmq-dev

This is the pecl list file for example:

# You must add -alpha or -beta if the package is not yet stable
# Manually downloading, patch and installing mailparse
# in pecl init script until mbstring issue is resolved
#mailparse
apcu
ev
zmq-beta
msgpack

Here is the exports file that gets sourced and exported into every init script. It allows for me to change it up to build phalcon from release tarball or tree. I plan to someday improve the variables here but its easy and gets the job done.

#!/usr/bin/env bash

if [[ -z "$DATABASE_PASSWORD" ]]; then
  export DATABASE_PASSWORD=open
fi


export PHP_VERSION=7.2
export NODE_VERSION=8.11.1

# export PHALCON_COMPILE=

export PHALCON_COMPILE=tarball
export PHALCON_VERSION=3.3.2

# export PHALCON_COMPILE=tree
# export PHALCON_VERSION=3.4.x

export ZEPHIR_VERSION=0.10.9
export ZEPHIR_PARSER_VERSION=1.1.2

export PHP_ETC=/etc/php/$PHP_VERSION
export NGINX_ETC=/etc/nginx
export SSL_DIR=$NGINX_ETC/ssl

export DEBIAN_FRONTEND=noninteractive

The init scripts just go in order from 00 to 99 and an init file can be ignored by simply prefixing the name with a pound symbol (commented out file).

00-prepare.sh
10-package.sh
#20-node.sh
21-npm.sh
30-php.sh
31-pecl.sh
32-phalcon.sh
80-mysql.sh
80-nginx.sh
99-finalize.sh

Here is the Phalcon and Zephir init script. Currently I'm installing Phalcon from system packages so "PHALCON_COMPILE" isn't set and this script just exits with a success error code. This script could be easily improved to merge too variables together and to explode it for easier setup and also to allow a forked repo to be used as well.

#!/usr/bin/env bash
# Environment variables OS_DIR and TEMP_DIR are available

# If Phalcon compile is not set then don't compile.
[[ -z "$PHALCON_COMPILE" ]] && exit 0

# You can skip compiling Phalcon by manually exporting this.
[[ ! -z "${SKIP_PHALCON+x}" ]] && exit 0

# Install Zephir
echo "Installing Zephir"
ZEPHIR_INSTALL_DIR=/opt/zephir
rm -Rf "$ZEPHIR_INSTALL_DIR"
cd "$TEMP_DIR"
wget "https://github.com/phalcon/zephir/archive/${ZEPHIR_VERSION}.tar.gz"
[[ $? -ne 0 ]] && exit $?
tar -xf "${ZEPHIR_VERSION}.tar.gz"
[[ $? -ne 0 ]] && exit $?
mv "$TEMP_DIR/zephir-${ZEPHIR_VERSION}" "$ZEPHIR_INSTALL_DIR"
cd "$ZEPHIR_INSTALL_DIR"
./install -c > /dev/null

# Install Zephir parser
echo "Installing zephir_parser extension "
cd "$TEMP_DIR"
wget "https://github.com/phalcon/php-zephir-parser/archive/v${ZEPHIR_PARSER_VERSION}.tar.gz"
[[ $? -ne 0 ]] && exit $?
tar -xf "v${ZEPHIR_PARSER_VERSION}.tar.gz"
[[ $? -ne 0 ]] && exit $?
cd "$TEMP_DIR/php-zephir-parser-${ZEPHIR_PARSER_VERSION}"
./install
php-extension-enable zephir_parser 50
echo "Zephir parser extension installed."

# Install Phalcon
echo "Installing phalcon extension"
cd "$TEMP_DIR"
case "$PHALCON_COMPILE" in
"tree")
  git clone --depth=1 -b "$PHALCON_VERSION" git://github.com/phalcon/cphalcon.git "$TEMP_DIR/cphalcon" > /dev/null
  [[ $? -ne 0 ]] && exit $?
  cd "$TEMP_DIR/cphalcon"
  ;;
"tarball")
  wget "https://github.com/phalcon/cphalcon/archive/v${PHALCON_VERSION}.tar.gz"
  [[ $? -ne 0 ]] && exit $?
  tar -xf "v${PHALCON_VERSION}.tar.gz"
  [[ $? -ne 0 ]] && exit $?
  cd "$TEMP_DIR/cphalcon-${PHALCON_VERSION}/"
  ;;
*)
  echo "Invalid Phalcon compile source.  Aborting."
  exit 1
  ;;
esac
zephir build
[[ $? -ne 0 ]] && exit $?
echo "Phalcon extension installed."

php-extension-enable phalcon 50

exit 0

In short I really like my scripts because I can read them after not working with them much for 6-12 months. The system always has bash available and so I can easily just open up the 5-15 init files to quickly scan them to see what is going on. I've had very good luck running these scripts multiple times on a development system and idea is to make the process idempotent (although I never can trust that in production but it works great in development). I spent countless hours years ago running this entire system over and over again until it finished and also could repair or upgrade.

@dschissler

This comment has been minimized.

Copy link
Contributor

dschissler commented Nov 5, 2018

Additionally multiple OSs can be supported at once. For example; the latest Fedora, Ubuntu LTS and Debian could be offered.

niden added a commit to niden/cphalcon that referenced this issue Nov 5, 2018

niden added a commit to niden/cphalcon that referenced this issue Nov 5, 2018

niden added a commit to niden/cphalcon that referenced this issue Nov 5, 2018

niden added a commit to niden/cphalcon that referenced this issue Nov 5, 2018

niden added a commit to niden/cphalcon that referenced this issue Nov 5, 2018

niden added a commit to niden/cphalcon that referenced this issue Nov 5, 2018

niden added a commit to niden/cphalcon that referenced this issue Nov 5, 2018

@dschissler

This comment has been minimized.

Copy link
Contributor

dschissler commented Nov 6, 2018

I looked at nanobox.io and it might be great but unless its The Thing then needing to pick that up and learn it in a time crunch just seems miserable. I think that the question needs to be asked if you are more interested in getting new blood into the project with just a few small commits here and there or if you want to have the best and most tricked out environment for the extended team. If you want to get new people into the project then nanobox.io is perhaps too much as it also assumes fluent docker knowledge as well. I can see someone working with Phalcon and noticing a single bug and then wanting to fix it and knowing how to but then not having the time to learn a bunch of new other stuff in addition to learn a new programming language. This is why I think that my provision script wins out in this use case because you can just git clone and then run ./provision ubuntu1804 and then reboot and then there is a full working Phalcon dev environment. I personally loathe having to learn a DSL just to enter a project before I can do what I was there to do. Perhaps there can be a place for both sorts of provision system.

@niden

This comment has been minimized.

Copy link
Member Author

niden commented Nov 6, 2018

@dschissler Valid points.

The issue is not to get more people to use nanobox. We don't own stock there or anything like that. It has been however used for over a year now and it has worked as advertised. There is no need to know docker or anything like that. All you do is run a command.

The goal of this issue is to create quickly an environment so that people can develop in Zephir for Phalcon and be able to run the test suite without having to install a bunch of prerequisites.

The reason we are leaning towards nanobox is that there are no complex scripts or anything like that to provision the environment.

Your approach takes into account the environment (ubuntu, fedora etc.) which nanobox does not. That could very well be something we might want to check a bit later.

For now, the goal is to create this environment and to do so a lot of the tests have to be rewritten and organized so this is the focus for now.

@danhunsaker

This comment has been minimized.

Copy link
Member

danhunsaker commented Nov 6, 2018

@dschissler I'm a former Nanobox employee, so I expect my input will be ignored or at least glossed over, but the fact it uses Docker under the hood doesn't at all mean it requires knowledge thereof. I'm not sure which aspects of Nanobox you investigated, but the version of the product being used, here, is a single config file that sets up the entire dev environment, no knowledge of the build system itself required, nor the stack it runs within. Since Docker is readily available on any Linux OS, and can be installed on macOS and Windows, and Nanobox itself will happily install VirtualBox and configure its own Docker VM (the same way macOS and Windows are supported by Docker's so-called "Native" versions) if you like, it bypasses most or all of the OS-specific issues folks face. Maybe you saw some early documentation on the Dockerfile approach which still hasn't been released?

At any rate. This approach requires users to install Nanobox, then run the nanobox run command, to ensure a full working dev environment which won't interfere or otherwise directly interact with other environments on the host. Your approach, while solid and tested, seems to install dependencies directly onto the host, so it misses those advantages.

That said, alternative approaches could be used. Some have been considered internally, and at the moment Nanobox has won out. It might be helpful to increase the transparency around this decision, here?

I'm not technically part of the Phalcon team (I'm assigned to Zephir at the moment), but I'm more than willing to provide what insight I have, as desired.

@dschissler

This comment has been minimized.

Copy link
Contributor

dschissler commented Nov 6, 2018

@niden

Your approach takes into account the environment (ubuntu, fedora etc.) which nanobox does not. That could very well be something we might want to check a bit later.

I've encountered major bugs in even an Ubuntu LTS for a PECL extension that I had to figure out and then usually the patch existed in just one place but for some reason was not yet applied. How do you deal with weird stuff like that on the major supported distros?

@danhunsaker

Your approach, while solid and tested, seems to install dependencies directly onto the host, so it misses those advantages.

Its meant to be run in a VM guest and I also used Docker to repeatedly run it in the early phase.

I haven't run this in forever and I can see that it runs xenial instead of bionic, but it can easily be applied to any system without worrying about the pre-setup. The script to get it all going is just 54 lines with comments and reasonable spacing.

https://github.com/perchlayer/webird/blob/master/Dockerfile


I know that my shit already works now for setting up Phalcon and Zephir (or at least my private version does if the Webird is currently not perfect) and its really a separate matter just to run the tests. So just make the tests easier to get going and with more than just one way in mind and then other good stuff can happen if there is interest.

@danhunsaker

This comment has been minimized.

Copy link
Member

danhunsaker commented Nov 6, 2018

For my part, if you're willing to maintain those scripts, we can easily list the link to them in the README, for those who want an alternative approach.

niden added a commit to niden/cphalcon that referenced this issue Nov 7, 2018

niden added a commit to niden/cphalcon that referenced this issue Nov 7, 2018

niden added a commit to niden/cphalcon that referenced this issue Nov 7, 2018

@dschissler

This comment has been minimized.

Copy link
Contributor

dschissler commented Nov 7, 2018

For my part I can do that before after years of neglect I'm not going to jump into something with manic enthusiasm until something has been accomplished.

niden added a commit to niden/cphalcon that referenced this issue Nov 9, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 3, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 3, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 3, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 4, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 4, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 4, 2018

[phalcon#13578] - Merge branch '4.0.x' into T13578-setup-phalcon-envi…
…ronment

* 4.0.x:
  Textarea output is automatically escaped
  Fixes phalcon#11759 and deletes expired keys
  Doc Add the ability to use FrontendInterface to serialize Model and ResultSet
  [NFR] Add FrontendInterface to serialize Model and Resultset

niden added a commit to niden/cphalcon that referenced this issue Dec 4, 2018

@niden niden referenced this issue Dec 4, 2018

Merged

T13578 setup phalcon environment #13628

3 of 3 tasks complete

niden added a commit to niden/cphalcon that referenced this issue Dec 4, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 4, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 4, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 4, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 4, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 4, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 4, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 4, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 5, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 5, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 5, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 5, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 5, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 5, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 5, 2018

niden added a commit to niden/cphalcon that referenced this issue Dec 5, 2018

niden added a commit that referenced this issue Dec 5, 2018

T13578 setup phalcon environment (#13628)
* Moved tests to temp folder; Added initial boxfile with services

* Codeception bootstrap

* Escaper tests

* WIP - Modifying tests

* [#13578] - Updated docblocks, started work for Config

* [#13578] - Adjusted docblocks

* [#13578] - Added copyright notice; Refactored Config tests

* [#13578] - Refactored Debug/Dump tests

* [#13578] - Work on Messages

* [#13578] - Refactored Filter tests

* [#13578] - Moved back _ci folder

* [#13578] - Refactored Security tests

* [#13578] - PHPCS fixes

* [#13578] - Refactored validation messages

* [#13578] - PHPCS fixes

* [#13578] - Refactored Text tests

* [#13578] - WIP Tag test refactoring

* [#13578] - Refactored Tag

* [#13578] - Corrected tests; Added iconv in the boxfile

* [#13578] - Minor refactor in assets; Added Asset Filter tests

* [#13578] - Added necessary extensions in boxfile. Prepared some tests for refactoring; Work on image/assets

* [#13578] - PHPCS fixes

* [#13578] - Test corrections

* [#13578] - Assets refactoring; DiTrait to setup services; Refactoring on old tests

* [#13578] - Added fixtures in the autoloader

* [#13578] - Refactored Acl tests

* [#13578] - Test corrections

* [#13578] - Refactored Forms

* [#13578] - WIP - Http\Response Request

* [#13578] - Refactored Response tests

* [#13578] - Corrected Http tests; Refactored fixtures

* [#13578] - Enabled acpu extension; Refactored annotation tests

* [#13578] - PHPCS fixes

* [#13578] - Refactored Logger tests

* [#13578] - Refactored Flash tests

* [#13578] - Refactoring Loader tests

* [#13578] - Added zephir in composer for dev - will be reworked later on

* [#13578] - Moved old changelogs to the resources folder

* [#13578] - Changes to the boxfile to clean up folders

* [#13578] - Work on the dialects and fixtures; Refactored Version tests

* [#13578] - Refactored Text tests

* [#13578] - Added test stubs for every method and component of Phalcon; WIP to add relevant tests

* [#13578] - WIP: Message tests

* [#13578] - Added zephir dev as a requirement

* [#13578] - Minor correction to the test

* [#13578] - Refactored Messages\Message tests

* [#13578] - Refactored Messages tests

* [#13578] - Moved wip folder outside the test structure for the tests

* [#13578] - Work on the Tag tests; Refactored helpers for Tag

* [#13578] - PHPCS fixes and removed Exception test stubs

* [#13578] - Refactoring Tag tests

* [#13578] - Refactoring on Translation tests

* [#13578] - More tests added

* [#13578] - Added Image/factory; Removed Exception test stubs

* Removed unused variables

* WIP - Assets

* Refactoring asset inline js

* Moved a lot of tests from the wip/toCheck folders in the main folder. More work needed to refactor all of them

* Acl Role/Resource tests; Corrected names for constructor tests

* Added Registry tests

* Work on the dialect tests

* WIP - Db Dialect tests

* [#13578] - Work on skipped tests and extensionLoaded in the unit tester

* [#13578] - Renamed underscored files for PHPCS

* [#13578] - Rename of files with underscore in their names

* [#13578] - Renaming files; Work on Loader/Factory; Work on Cache

* [#13578] - Reformatting tests (cosmetic); Work on factory tests and backend cache

* [#13578] - Moved test stubs in unit

* [#13578] - Skipped a test (will check later)

* [#13578] - Initial structure for integration tests; Work on Assets

* [#13578] - Validation/Validator tests

* [#13578] - Renamed tests to give better output on console

* [#13578] - Test renaming for clarity; Work on validator tests

* [#13578] - Added descriptions for tests for better printout and information

* [#13578] - Added descriptions for Version tests

* [#13578] - Adding descriptions for tests

* [#13578] - Minor refactor of the validation tests

* [#13578] - Added comments and output for Text and Tag

* [#13578] - Added CLI suite and stubs

* [#13578] - Enabled unit helper in integration; Moved Db stubs in integration suite

* [#13578] - Work on Version

* [#13578] - Comments for all tests; Renamed tests according to namespaces; Added MemorySession for Codeception/Phalcon

* [#13578] - Corrected method names

* [#13578] - Corrected docblocks and messages

* [#13578] - Added more tests for __toString

* [#13578] - Added crypt trait to check for openssl

* [#13578] - Restored file I deleted by mistake

* [#13578] - Refactored Escaper tests

* [#13578] - Copyright notices

* [#13578] - Added db client libraries in the container

* [#13578] - Work on db tests; Added more packages to the boxfile

* [#13578] - Added more integration tests; moved fixtures around

* [#13578] - Events tests

* [#13578] - Added cache and di tests

* [#13578] - Added more tests from the toCheck

* [#13578] - Removed tests from deprecated projects

* [#13578] - Removed not needed files; Added pgsql import for nanobox; Added forms test

* [#13578] - More DB tests from "unit-tests"

* [#13578] - phpcs fixes and optimizations

* [#13578] - Added xcache in nanobox; Moved cache tests from unit-tests

* [#13578] - More tests moved (db from unit-tests)

* [#13578] - Moved dbdescribe tests from unit-tests

* [#13578] - Refactored Micro and Router tests; Reorganized assets

* [#13578] - Mvc Url and router tests

* [#13578] - Changed "boolean" to "bool" to ensure consistency

* [#13578] - Reorganized fixtures for views

* [#13578] - Work on the tests; skipped some to check later

* [#13578] - Added gitkeep to keep the cache folder there in the tests

* [#13578] - Fixed imports for the dbs for travis

* [#13578] - PHPCS fixes

* [#13578] - DbProfiler unit-test tests

* [#13578] - Work on models

* [#13578] - Added some debugging code

* [#13578] - Force disable travis cache for composer

* [#13578] - Removed zephir from composer; Started using the phar file in travis and nanobox

* [#13578] - Zephir version 11.6 in travis and boxfile

* [#13578] - Test correction

* [#13578] - Fixed test path

* [#13578] - More corrections to the test

* [#13578] - Added namespaces to models

* [#13578] - Work on the CI and db import scripts

* [#13578] - Corrections to the tests

* [#13578] - Added skips for this test

* [#13578] - Corrected models namespace

* [#13578] - Corrected some interfaces and implementations

* [#13578] - Removed php 7.0/7.1

* [#13578] - Beanstalk tests

* [#13578] - Fixing interfaces

* [#13578] - Removed APC, Memcache and XCache adapters (deprecated)

* [#13578] - Updated changelog

* [#13578] - Added di setup for view simple

* [#13578] - Fixing array access

* [#13578] - Simple view tests

* [#13578] - Fixed compilation errors

* [#13578] - Interface changes

* [#13578] - Trying compiling without the return type

* [#13578] - Interface corrections

* [#13578] - Fixing more interfaces

* [#13578] - Trying to use the NTS version

* [#13578] - Removed the lines I added before

* [#13578] - Fixed interfaces and compilation errors

* [#13578] - Changes to travis to reinstall php

* [#13578] - Triggering another build to install php again

* [#13578] - More interface changes

* [#13578] - Added dots....

* [#13578] - Interface corrections

* [#13578] - Removed unecessary tests

* [#13578] - More interface corrections

* [#13578] - One more correction to the interfaces

* [#13578] - More interface corrections

* [#13578] - Restored the folder I deleted by mistake (duh)

* [#13578] - Fixed interfaces for messages

* [#13578] - Corrected interface error

* [#13578] - Added missing class

* [#13578] - More interface corrections

* [#13578] - Corrected interface for the session test class

* [#13578] - Work on the environment variables and codeception

* [#13578] - Moved in the new suite the volt syntax tests; Adjustments to the travis for variables

* [#13578] - Fixing the environment for Travis

* [#13578] - Removed unecessary copy line

* [#13578] - Converted more Router tests

* [#13578] - Adjustment to Travis; Added more fixtures

* [#13578] - Work in volt compiler tests; reorganized delete strategy

* [#13578] - Skipping some tests to check travis

* [#13578] - Work on namespaces and env variables (again)

* [#13578] - Added boxfiles for 7.2/3, refacored the env and added env in integration tests

* [#13578] - Removed unwanted files; Refactoring of constants and env variables

* [#13578] - Added dispatcher tests

* [#13578] - Minor corrections

* [#13578] - Removing db from the bootstap

* [#13578] - Setup for CLI tasks

* [#13578] - Fixed environment file

* [#13578] - Work in models

* [#13578] - Db\Column tests; work on fixtures/models

* [#13578] - Fixing travis sqlite db

* [#13578] - Corrected setup db file

* [#13578] - Merge from 4.0; Zephir 11.8; Adjusted tests

* [#13578] - Added cache folder back

* [#13578] - Corrected tests

* [#13578] - Correcting interface

* [#13578] - Changed the cache backend "get" lifetime to only accept numbers

* [#13578] - Updated the changelog for the cache backend "get" lifetime

* [#13578] - Moved Micro test stubs in integration; Added micro collection test

* [#13578] - Corrected the interface

* [#13578] - Aligned cache interfaces

* [#13578] - Corrected controllers in micro collection

* [#13578] - Reverting changes to cache "get" interfaces

* [#13578] - Trying xenial for travis

* [#13578] - More interface corrections

* [#13578] - Added mysql service in travis

* [#13578] - Mysql 5.7 in travis

* [#13578] - Corrections to tests and php settings

* [#13578] - Corrected Volt test; Disabled run for integration for now

* [#13578] - Minor adjustment to the annotations tests

* [#13578] - Change to the reader cest for annotations

* [#13578] - More debug output

* [#13578] - Changes to the environment variables

* [#13578] - Marking some tests skipped to check them later

* [#13578] - Moved Forms tests in integration; Refactored all the old "unit-test" tests

* [#13578] - Moved pagination tests to the integration suite

* [#13578] - Code quality cleanup

* [#13578] - Moved Validation to integration suite; Added paginator tests

* [#13578] - Refactored a lot of MVC tests

* [#13578] - Refactored Session tests

* [#13578] - Corrections to Tag tests; Reenabled CLI tasks

* [#13578] - Final refactoring (I hope) and removing unused files

* [#13578] - Updates to the readme and changelog

* [#13578] - Corrections based on review

* [#13578] - Updated nanobox setup files

* [#13578] - Changes based on review

* [#13578] - Added boxfile to the .gitignore

* [#13578] - Added more instructions in the tests/README

* [#13578] - Updated README; Adjusted tests after the merge

* [#13578] - Corrected schema file for Postgresql

* [#13578] - Minor correction; Zephir 0.11.8

* [#13578] - Triggering the build

* [#13578] - Correction to the case statement

* [#13578] - Corrected something in the file - cannot see what character was throwing the scanner off

* [#13578] - Check env variables

* [#13578] - Work on the db environment for travis

* [#13578] - Refactored tests to use dataProviders

* [#13578] - Added again the travis environment variables
@niden

This comment has been minimized.

Copy link
Member Author

niden commented Dec 5, 2018

This has been addressed

@niden niden closed this Dec 5, 2018

4.0 Release automation moved this from In progress to Done Dec 5, 2018

@dschissler

This comment has been minimized.

Copy link
Contributor

dschissler commented Jan 7, 2019

I plan to support the following:

export PHP_VERSION=7.2

export ZEPHIR_PARSER_VERSION=1.1.4

# export ZEPHIR_VERSION=tarball:0.11.8
export ZEPHIR_VERSION=phar:0.11.8

# export PHALCON_VERSION=repository:stable
# export PHALCON_VERSION=repository:mainline
# export PHALCON_VERSION=repository:nightly
# export PHALCON_VERSION=tarball:3.4.2
# export PHALCON_VERSION=tarball:4.0.0-alpha1
# export PHALCON_VERSION=tarball:https://github.com/phalcon/cphalcon/archive/v4.0.0-alpha1.tar.gz
# export PHALCON_VERSION=git:4.0.x
# export PHALCON_VERSION=shell:"git clone https://github.com/dschissler/cphalcon"

For the time being it will just be a matter of uncommenting a line. In the case of the tarball I'll get it with curl so the file:// protocol could be used on a local file.

The PHP_VERSION was already necessary for the /etc/php` directory and now it seems it has additional use for the Phalcon repository package.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment