Opened 12 years ago

Closed 12 years ago

#86 closed Task (fixed)

Publish a new "Releaser" to generate nightly builds

Reported by: Frederico Caldeira Knabben Owned by: Frederico Caldeira Knabben
Priority: Must have (possibly next milestone) Milestone:
Component: General Version:
Keywords: Cc:

Description

Today we have a .Net program used to generate the public distributable version of our dev SVN version of the editor code. It removes some unnecessary files and directories, "pre-process" any packaging directives (like @Packager.RemoveLine) and generate the compressed version of the code. This is a manually activated process.

We need a new solution that can be run automatically (cron) to generate the nightly builds.

Today, the scripts compression makes use of CKPackager a commercial and closed source software.

As the packaging and compression is a key thing for FCKeditor, I've decided to open CKPackager in a sub project called FCKpackager.

To make it possible to run it in every environment, it will be rewritten in PHP. It will be possible to execute it as a command line program, as well as integrate it on web pages.

Change History (7)

comment:1 Changed 12 years ago by Frederico Caldeira Knabben

Status: newassigned

comment:2 Changed 12 years ago by Alfonso Martínez de Lizarrondo

I don't understand the part where it says that it will be rewritten in PHP but it also says that it will be possible to run as a command line.

Will I need to install some PHP engine in order to run it?

Couldn't it be possible to just run the current packager under Mono in the server?

comment:3 Changed 12 years ago by Brian Klug <brian.klug+fckeditor@…>

Alfonsoml: Yes - the free PHP engine can be run from the command line (if you desire).

I am excited about this change. We'll making a system to check out the latest code from SVN, merge our customizations in, then compress it into 1 file. Using PHP instead of .NET will make this process much easier to automate and we look forward to the change.

comment:4 in reply to:  2 Changed 12 years ago by Frederico Caldeira Knabben

Replying to alfonsoml:

I don't understand the part where it says that it will be rewritten in PHP but it also says that it will be possible to run as a command line.

Will I need to install some PHP engine in order to run it?

Actually, PHP is the engine. It can be used to run web applications as well as CLI applications. We'll end up with something like "php fckpackager.php" to execute it.

The nice thing, is that we'll be also able to embed php.exe fckpackager.php generating an exe that can be executed directly, like "fckpackager.exe".

Even more... I'm writing it in a way that it can be also included in web pages, so one can run the packager from a web application.

Couldn't it be possible to just run the current packager under Mono in the server?

While most server installations have PHP, very few runs Mono.

comment:5 Changed 12 years ago by Alfonso Martínez de Lizarrondo

It's good that the PHP engine can be run without the need to install anything.

Now I've been thinking about other details:

I think that in the nightly test enviroment it would be better to run the original sources, if someone has a problem at least he can have a change to find out where's the problem, but if the sources are compressed then he will get just an error in a very long line.

Also I'm not sure that we should encourage the people to run the packager in their webserver, this should be run only after changing the sources, if the people see that they must run it from their server you can bet that there will be a few people that will try to run just after they have downloaded it, or every now and then. And the people will find that it gives errors due to permissions and it can lead to people lowering their security (just as some people leave the connectors enabled and even ask for easy ways to change directories through javascript) and/or people filing bugs because the packager fails.

Last (but not least) what we should encourage is for people to submit back patches so they can be integrated in the core if they are really fixing or improving the code, if they can be turn instead into a plugin that's also good as it can keep the base code smaller and other people can review their code and suggest improvements.

comment:6 in reply to:  5 Changed 12 years ago by Frederico Caldeira Knabben

Replying to alfonsoml:

I think that in the nightly test enviroment it would be better to run the original sources, if someone has a problem at least he can have a change to find out where's the problem, but if the sources are compressed then he will get just an error in a very long line.

The compressed is preferable only because people may get angry to wait all the source files to load. As today, for the few cases that someone reports things like "Error: A is not defined in line 23 col 1726", then we must ask to re-test with fcksource=true in the URL. Usually we are able to catch the error point ourselves.

Also I'm not sure that we should encourage the people to run the packager in their webserver, this should be run only after changing the sources, if the people see that they must run it from their server you can bet that there will be a few people that will try to run just after they have downloaded it, or every now and then. And the people will find that it gives errors due to permissions and it can lead to people lowering their security (just as some people leave the connectors enabled and even ask for easy ways to change directories through javascript) and/or people filing bugs because the packager fails.

Actually the packager will be available only in the SVN or as a separated download. All public distributions (including nightlies) will not have it by default.

The SVN trunk is what we call the development version. Users that checkout it, must "compile" the editor using the packager, that will probably be available inside "_dev". Public distributions will not have the "_dev" directory, nor "_test" and maybe we could also exclude "_testcases" from it. As you have commented, we don't want to confuse our final users.

People who want to have the trunk version will have the option to either get the nightly or checkout the SVN. The former is usually dedicated to advanced developers who also want to contribute to the project.

Other than that, the FCKpackager will be a generic sub-project. People will be able to package any js script with it. Just another gift from FCKeditor :)

Last (but not least) what we should encourage is for people to submit back patches so they can be integrated in the core if they are really fixing or improving the code, if they can be turn instead into a plugin that's also good as it can keep the base code smaller and other people can review their code and suggest improvements.

I hope the new dev site will help us on it.

comment:7 Changed 12 years ago by Frederico Caldeira Knabben

Resolution: fixed
Status: assignedclosed

Ok, after a week of intensive work, the FCKpackager and FCKreleaser sub-projects have been committed (browse). I've not include their source code in the main FCKeditor tree as there is not need to pollute it with tools code. So, only the "single file" version of FCKreleaser can be found at _dev.

I've also updated the Nightly generation scripts to use the new system. The Nightly is now coming from svn.fckeditor.net. So, we can now really point users to the SVN for fixes. I've update the SVN page with more info about it.

The Bugs page has also been updated, asking for users to try the nightly before reporting bugs.

Note: See TracTickets for help on using tickets.
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy