Education ClassRoom/Previous Logs/Introduction
[11:03] ericb2 The principle is : I expose the points, without people talk
[11:03] ericb2 to avoid spare time
[11:03] ericb2 once the first part is finished, questions are welcome
[11:04] ericb2 in the middle of several points, I'll propose to practice by yourself
[11:04] * sandeep (email@example.com) has joined #education.openoffice.org
[11:04] ericb2 and the channel is the right place to discuss *afterwards* about those exercices
[11:04] ericb2 Let's go :)
[11:04] ericb2 For any newcomer, interested to contribute, the number of questions, the right order to ask them is different, and there is no magic method nor solution, to teach that.
[11:05] ericb2 Worst, a lot of time is needed before the autonomy arrives. Don't give up, and be patient.
[11:05] ericb2 What we propose is a mix of both courses and -sort of- personal support.
[11:05] ericb2 Of course, things are not perfect, and there is certainly a better way to do that. But let's try first, and then improve with you !
[11:05] ericb2 The Rule is: wait for the end of the "course ", before to ask questions. thanks :-) ... but *ask* (a lot of) questions, when that's the moment ( yes please do !! )
[11:06] ericb2 Important: if ever we don't have the answer (can occur), we'll notice the question, and provide you what we found later.
[11:06] ericb2 This course alone does not make sense: attendees must practice, and search by themselves (I tried to prepare some exercices for the courageous one ).
[11:06] ericb2 If ever people who searched don't find the answer to their problems, then they must ask on (e.g.) #education.openoffice.org IRC channel. We'll help them with pleasure !
[11:06] ericb2 Disclaimer: only vanilla OpenOffice.org source code will be described here
[11:07] ericb2 About the Community "behaviour"
[11:07] ericb2 This course aims to share the knowledge, and create a community of people helping together. Now, if you think you can propose a ClassRoom, because you have some skill, please do !! ( contact me). I'll be glad if ever I can share everything I have learned since I contribute to the project.
[11:07] ericb2 Don't forget that be regular and serious is a key for success
[11:07] ericb2 Last but not least, we need contributors and people involved, because there is always a lot to do.
[11:08] ericb2 A) Short description of the OpenOffice.org Project
[11:08] ericb2 Shortly: the name OpenOffice.org means both the software and the organisation.
[11:08] * valeuf_ (firstname.lastname@example.org) has joined #education.openoffice.org
[11:08] ericb2 For the history, please read the website, or wikipedia, everything is written ten times already :)
[11:08] ericb2 For us, everything is project in OpenOffice.org, and everything is a framework.
[11:08] ericb2 About Projects, there are :
[11:08] ericb2 - Accepted projects
[11:09] ericb2 http://projects.openoffice.org/accepted.html
[11:09] ericb2 - Native Lang Community Projects :
[11:09] ericb2 http://projects.openoffice.org/native-lang.html
[11:09] ericb2 - Incubator Projects : i.e. Education Project. ( US !! )
[11:09] ericb2 Fortunaly, everything can be summarized in two links :
[11:10] ericb2 - http://www.openoffice.org
[11:10] * Remaille (email@example.com) has joined #education.openoffice.org
[11:10] * ChanServ gives channel operator status to Remaille
[11:10] ericb2 - http://wiki.services.openoffice.org/wiki/Main_Page
[11:10] Remaille hi
[11:11] ericb2 Nobody else than you can do it for you : visit these links, be curious and discover
[11:12] ericb2 Open Question : what about create a FAQ on the wiki, somewhere in Education Project ?
[11:12] ericb2 1) Discover the OpenOffice.org Developer World
[11:12] ericb2 Composed of tools, methods and resources
[11:12] ericb2 The tools are : IssueZilla, EIS, cvs , LXR, vi, emacs , Xcode , ..etc
[11:13] ericb2 Resources are mostly IssueZilla , mailing lists archives, coding guidelines .. and the source code !
[11:14] ericb2 Methods are e.g. QA related ( out o scope today)
[11:14] ericb2 the tools first :
[11:14] ericb2 1.1) Check the code: cvs ( there is work in progress for another tool )
[11:14] ericb2 with it, you can modify the code, create your patches, commit: cvs , diff and patch
[11:15] ericb2 to check for changes in the code: bonsai is a powerfull tool
[11:18] ericb2 Vincent Vikram wrote several questions, and I'll try to provide tracks ..
[11:18] ericb2 2) Where is the code ?
[11:19] ericb2 Answer : hosted by machines, we'll call " cvs repository" No need to know more about the machines
[11:19] ericb2 2.1) cvs
[11:19] ericb2 cvs uses a "repository". OpenOffice.org has an anonymous ( means read only ) repository.
[11:19] ericb2 You can checkout any code you want very easely.
[11:20] ericb2 The principle is:
[11:20] ericb2 you duplicate/copy on your machine the same code the repository has. Means, for a given milestone, the code will always remain the same. Exactly 0 difference.
[11:20] ericb2 As OpenOffice.org repositories we have anoncvs.services.openoffice.org (for all) and tunnel (for domain developers, using ssh connexion for commits )
[11:21] ericb2 Summary:
[11:21] ericb2 - The repository does contain all versions.
[11:21] ericb2 - you copy one on your machine, for building OpenOffice.org, add new code.. whatever.
[11:21] ericb2 - At any time, you can analyse the difference , for a given milestone, between your copy, and the one on the repository ( gussing your internet connexion is not broken)
[11:22] ericb2 - Tools are : cvs + diff . theywill help you to create the delta, and the last tool is patch, to apply / reverse the patch you created
[11:22] ericb2 2.2) Some Vocable :
[11:22] ericb2 Master Work space: gives a version of OpenOffice.org.
[11:22] ericb2 e.g. : SRC680 == OpenOffice.org 2.x source code , DEV300 == OpenOffice.org 3.x source code
[11:23] ericb2 -> Between two different consecutive Master workspaces, we accumulate Milestones.
[11:23] ericb2 For example: Master workspace DEV300_m0 is based on SRC680_m248 (end of life for 2.x )
[11:23] ericb2 A Milestone itself contains several child workspaces.
[11:23] ericb2 a Child Workspace is a change in the code, dedicated to a new feature or a bugfix, and synchronized with a given milestone
[11:24] ericb2 a Child Workspace can involve several modules
[11:29] ericb2 3) I got the code... now where do I start in the code?
[11:29] ericb2 OpenOffice.org is a framework, means everything, including tools is included in the tree.
[11:29] ericb2 More information: http://wiki.services.openoffice.org/wiki/Source_code_directories
[11:29] ericb2 Approximativaly 160 modules ( means subdir) do constitute your tree.
[11:29] ericb2 -> everything has it's role, and an outdated description is given at the URL : http://wiki.services.openoffice.org/wiki/Source_code_directories
[11:29] ericb2 As you can see, there is an associated project for every module. Means, when you have questions about this or another module,
you'll have to send a mail to the correspondig mailing list.
[11:29] ericb2 Or at least, read the archives first cannot be bad :)
[11:30] ericb2 Important modules are:
[11:30] ericb2 - config_office contains everything for configure command line. -> the Makefile corresponding to your tree is created from config_office.
[11:30] ericb2 - solenv does contain a lot of environment variables, means for the build process
[11:30] ericb2 - dmake is the make-like tool used for the build
[11:30] ericb2 - in every module, an output directory is created during the build (binaries, incudes, .jar .. whatever )
[11:30] ericb2 - for every module, the content of the output directory is send in the solver, following rules
[11:31] ericb2 One link to be added in your list : http://tools.openoffice.org
[11:31] ericb2 4) The build process, first part
[11:31] ericb2 4.1) build.lst and d.lst
[11:32] ericb2 In every module, you'll find a " prj " direectory containing build.lst and d.lst files . The first line of build.lst gives the prerequisites: the current module can be built if and only if the one listed in build.lst ( first line) are built.
[11:32] ericb2 For d.lst: at the end of the build for every module, the files listed are copied from the output tree ( the one in the current module) into the solver, sort of collection of all products built at the end of the process.
[11:32] ericb2 4.2) Dependencies
[11:32] ericb2 Because of the dependencies mentionned in build.lst, everything cannot be built in same time: first tools are built ( e.g. dmake, doing ./bootstrap )
[11:33] ericb2 The common order (solution is not uniq ! ) is:
[11:33] ericb2 - low level modules are built first
[11:33] ericb2 - then the second level one ( depending on the first listed above)
[11:33] ericb2 - .. until the most on top , like the final sw, sc, sd .libs depending on everything
[11:33] ericb2 - at the end, all the products delivered by every module in the solver , are used to create the final package in instsetoo_native
[11:33] * lgodard has quit ("Leaving.")
[11:33] ericb2 Summary:
[11:33] ericb2 - checkout all the sources
[11:33] ericb2 - run configure with the right options
[11:34] ericb2 - do ./bootstrap from the root dir, to create dmake
[11:34] ericb2 - build everything (to be explained later) following the right order.
[11:35] ericb2 Sorry for being so long. Yes ~15 lines and questions will start
[11:35] ericb2 5) What d I need to know in advance
[11:35] ericb2 OpenOffice.org is written in 90% C++ , <5% of C, objectiveC / C++ and Java .. bash , python
[11:35] ericb2 -> C++ and bash skills is a good prerequisite
[11:35] ericb2 The C++ used in OpenOffice.org is academic C++ : e.g. for portability reasons, in vcl, there is a core lib, sort of collection of empty boxes, containing the real implementation, built only for the current building system.
[11:36] ericb2 stl and templates are used, gcc , and g++ skill cannot be bad either.
[11:36] ericb2 Know well OpenOffice.org coding Guidelines
[11:36] ericb2 That's all for the first time. Next time (when possible) : configure, and build OpenOffice.org, rebuild one module only , and debug it
[11:36] ericb2 Questions ? :-)
[11:38] ericb2 nobody has questions ?
[11:38] ericb2 chacha_chaudhry: ?
[11:38] chacha_chaudhry yes
[11:38] chacha_chaudhry ChanServ ChaoticGood
[11:38] ericb2 chacha_chaudhry: go ahead :)
[11:39] >Remaille< bonjour :)
[11:39] chacha_chaudhry Developers guide is also important, I suppose
[11:39] chacha_chaudhry ChanServ ChaoticGood
[11:39] ericb2 chacha_chaudhry: yes, sure
[11:40] ericb2 chacha_chaudhry: everything I mentionned is my experience, since 4 years contributing for the OpenOffice.org Project
[11:40] ericb2 5 years soon ..
[11:40] chacha_chaudhry ericb2: :)
[11:41] ericb2 chacha_chaudhry: did you already all the exercices I proposed ? Will you try them ?
[11:41] chacha_chaudhry ericb2: cehcking out code
[11:41] chacha_chaudhry ericb2: I have a slow connection -- doing it now
[11:41] sandeep where can i find help on bash?
[11:42] ericb2 sandeep: here
[11:42] ericb2 sandeep: what is your problem ?
[11:42] chacha_chaudhry sandeep: what kind of help?
[11:43] sandeep i am a layman in programming and wish to learn about developing and debuging. where should i start from?
[11:43] * stx12 (n=st@nat/sun/x-c96e4329c2e8c890) has joined #education.openoffice.org
[11:44] ericb2 sandeep: I think the good first exercice to do is to build OpenOffice.org
[11:44] ericb2 sandeep: and once done, discover some modules
[11:44] chacha_chaudhry ericb2: I don't undestand the relation between milestones and Child Workspaces ..
[11:44] ericb2 chacha_chaudhry: let me retrive a link
[11:44] chacha_chaudhry ericb2: sure
[11:45] ericb2 chacha_chaudhry: can you connect to : http://eis.services.openoffice.org/
[11:45] chacha_chaudhry ericb2: yes
[11:45] ericb2 chacha_chaudhry: use the link automatic guest
[11:45] ericb2 https://tools.services.openoffice.org/EIS2/GuestLogon
[11:46] ericb2 then click on child workspaces
[11:47] ericb2 chacha_chaudhry: if everything is fine, you'll have list on left -> click on " Browse "
[11:47] ericb2 chacha_chaudhry: then " per Milestone "
[11:47] chacha_chaudhry yes ....doing ..
[11:48] ericb2 chacha_chaudhry: once you clicked on "per Milestone ", tell me what you see
[11:49] chacha_chaudhry I get some folders these must be Master Workspaces , or I am wrong ?
[11:49] ericb2 chacha_chaudhry: exact ! Then click on the DEV300 triangle
[11:50] chacha_chaudhry ericb2: yes m1 .... m12
[11:50] ericb2 chacha_chaudhry: you see all milestones
[11:50] chacha_chaudhry ericb2: yes
[11:50] ericb2 chacha_chaudhry: now, click on say, m11
[11:50] ericb2 (the triangle)
[11:51] chacha_chaudhry yes done So these are child workspaces
[11:51] ericb2 chacha_chaudhry: yes. And you can even do more : click on one of them
[11:51] ericb2 chacha_chaudhry: say the first one : ab49
[11:51] chacha_chaudhry done
[11:51] ericb2 chacha_chaudhry: what happens ?
[11:52] chacha_chaudhry ericb2: displays --> Data for child workspace DEV300/ab49 in box
[11:52] ericb2 chacha_chaudhry: exact, and this information is extremely helpfull for developers
[11:52] chacha_chaudhry ericb2: :)
[11:53] ericb2 chacha_chaudhry: as you probably understood, EIS is for the source code scheduling,
[11:53] ericb2 and between two milestones, we add child workspaces
[11:53] sandeep i still can't figure it out, how does this info helps?
[11:53] chacha_chaudhry ericb2: yes
[11:54] ericb2 sandeep: when you write code, you need to create changes based on a well defined reference -> a milestone
[11:54] sandeep ericb2: i still can't figure it out, how does this info helps?
[11:54] sandeep ok
[11:54] sandeep then?
[11:54] ericb2 sandeep: OpenOffice.org source code is a continuous
[11:55] ericb2 sandeep: you need time to write your code, and integrate it in the source
[11:55] ericb2 sandeep: this is a process
[11:55] ericb2 sandeep: you cannot ignore what other devs do when you write code
[11:55] sandeep ok
[11:55] sandeep :)
[11:56] ericb2 sandeep: of course, we can isolate a milestone, work on the code, and resynchronize later
[11:56] sandeep sm|CPU stx12
[11:56] ericb2 sandeep: but maybe one dev will have modified the same file as the one you modified
[11:56] ericb2 sandeep: don't forget, a lot o people are writing code together
[11:57] ericb2 sandeep: for the beginning, you can ignore the scheduling, yes
[11:57] sandeep eicb2: yes
[11:57] ericb2 sandeep: I just tried to explain chacha_chaudhry what a milestone was
[11:57] ericb2 sandeep: what is yur programming language ?
[11:57] sandeep sm|CPU stx12
[11:57] sandeep sm|CPU stx12
[11:57] sandeep ericb2: C, C++
[11:58] ericb2 sandeep: ok. and you OS ?
[11:58] ericb2 s/you/your/
[11:58] ericb2 sandeep: Linux ?
[11:58] sandeep sm|CPU stx12
[11:58] sandeep ericb2: ubuntu
[11:58] sandeep yes
[11:58] ericb2 sandeep: ok, then the first step for you is to build OpenOffice.org.
[11:58] sandeep sm|CPU stx12
[11:58] sandeep ericb2: yes
[11:59] ericb2 sandeep: once done, you can start with the modules: what is done where
[11:59] sandeep sm|CPU stx12
[11:59] ericb2 sandeep: and, for example, study sal, or whatever module, depending on the questions you have, and what you want to do
[11:59] ericb2 sandeep: for tracing, this is easy : gdb works fine
[12:00] ericb2 sandeep: excepted in some cases, but for what you want to do, that's really enough
[12:00] ericb2 sandeep: e.g you can try as starting point 1) to build a Linux version 2) understand what happens when you launch OpenOffice.org 3) trace it to verify
[12:01] ericb2 sandeep: if you will only concentrate on C++ , help us for starmath baseline implementation is great
[12:01] ericb2 sandeep: and you'll be welcome
[12:02] sandeep ericb2: what is starmath baseline implementation?
[12:02] ericb2 sandeep: issue 972
[12:02] IZBot Formula editor ENHANCEMENT STARTED P3 Alignment of baselines of formula and text in writer http://qa.openoffice.org/issues/show_bug.cgi?id=972
[12:02] ericb2 sandeep: IZBot is great ;-)
[12:03] chacha_chaudhry :)
[12:03] sandeep ericb2: k, i'll try it out after the discussion. :)
[12:03] ericb2 sandeep: and read : http://wiki.services.openoffice.org/wiki/Education_Project#Education_Project_Effort
[12:03] ericb2 sandeep: exactly http://wiki.services.openoffice.org/wiki/Education_Project/Effort#Implement_Math_Baseline_Alignement_.28click_me.29
[12:04] ericb2 sandeep: other applications are proposed, and volunteers are warmly welcome
[12:05] sandeep ericb2: i'm just learning java, and have basic programming knowledge about c/C++. don't know whether i'll be of much help or not
[12:05] sandeep but i'll try :)
[12:05] ericb2 sandeep: maybe yo can contact cbosdonnat
[12:05] ericb2 sandeep: he proposed something more Java oriented. Don't fear to ask him
[12:06] ericb2 sandeep: http://wiki.services.openoffice.org/wiki/Education_Project/Effort#Make_the_uno- skeletonmaker_tool_templatable_.28click_me.29
[12:06] sandeep ericb2: where wud he be, on irc?
[12:06] ericb2 sandeep: do you see the list of people on the channel ?
[12:07] sandeep yes , i c him.
[12:07] ericb2 sandeep: else cedricbosdo @openoffice.org should work if you want further information
[12:07] cbosdonnat sandeep: Hi
[12:08] * chacha_chaudhry still waiting for checkout to complete :P
[12:08] ericb2 sandeep: what I suggest you: join education project (as member) and join firstname.lastname@example.org mailing list
[12:08] sandeep cbosdonnat: hi i'm learning java. n e thing dat u cud sugest
[12:08] cbosdonnat ericb2: what I proposed on the uno-skeletonmaker is mainly C++ coding
[12:08] ericb2 sandeep: then, don't fear to ask questions
[12:09] ericb2 cbosdonnat: ah, sorry
[12:09] ericb2 sandeep: then ask Juergen Schmitdt
[12:09] sandeep cbosdonnat: i have sum basic knowledge bout c++.
[12:09] ericb2 sandeep: sorry, I'm not Java skilled ;-)
[12:10] cbosdonnat sandeep: Where would you like to help ?
[12:11] sandeep cbosdonnat: not sure. i hv nvr done nething like this b4. always hv been doin the dummy programs at school n colege?
[12:11] cbosdonnat sandeep: If you don't fear handling OOo Java extensions build, I could propose you to continue the work I've started on a Maven plugin
[12:11] sandeep cbosdonnat: where can i get info on dat?
[12:12] ericb2 @all :this is lunch time here, and if you have questions, I'll be back in ~1 hour 15
[12:12] sandeep cbosdonnat: wat wud b d purpose of dis pluggin?
[12:12] ericb2 thanks a lot, and see you later
[12:12] sandeep ericb2: thnx a lot :)